如何在 ACM 导入的证书即将到期时收到通知?

3 分钟阅读
0

我导入了 AWS Certificate Manager(ACM)证书,想在证书过期之前收到重新导入证书的提醒。

简短描述

ACM 不为导入的证书提供托管续订。要续订导入的证书,请先向证书颁发者申请新证书。然后,手动将证书重新导入 ACM

要收到证书即将到期的通知,请使用以下方法之一:

  • 使用 Amazon EventBridge 中的 ACM API 来配置 ACM 证书即将到期事件。
  • 创建自定义 EventBridge 规则,以便在证书即将到期时接收电子邮件通知。
  • 使用 AWS Config 检查即将到期的证书。

如果您使用 AWS Config 来解决此问题,请注意以下几点:

  • 在设置 AWS Config 规则之前,请创建 Amazon Simple Notification Service(Amazon SNS)主题和 EventBridge 规则。这可以确保所有不合规的证书在到期日期之前触发通知。
  • 激活 AWS Config 会根据使用情况产生额外费用。更多有关信息,请参阅 AWS Config 定价

解决方法

在 EventBridge 中配置“ACM 证书即将到期”事件

ACM 通过 Amazon CloudWatch 发送有关即将到期事件的通知。默认情况下,ACM 证书即将到期事件在事件到期前 45 天发送通知。要配置此通知的时间,请先将此事件作为规则添加到 EventBridge 中:

1.    打开 Amazon EventBridge 控制台

2.   在导航窗格中,选择规则,然后选择创建规则

3.    为规则输入 Name(名称)。Description(描述)字段可选。

**注意:**您必须为位于相同 AWS 区域和同一事件总线上的规则指定唯一名称。

4.    对于 Event bus(事件总线),选择要与此规则关联的事件总线。要将此规则与来自您账户的事件相匹配,请选择 AWS default event bus(AWS 默认事件总线)。在这种情况下,当您账户中的 AWS 服务发出事件时,它始终会转至账户的默认事件总线。

5.    对于 Rule type(规则类型),选择 Rule with an event pattern(包含事件模式的规则),然后选择 Next(下一步)。

6.    对于 Event source(事件源),选择 AWS events or EventBridge partner events(AWS 事件或 EventBridge 合作伙伴事件)。

7.    对于 Creation method(创建方法),选择 Use pattern form option(使用模式表单选项)。

8.    在 Event pattern(事件模式)部分中,按照说明填写以下字段:

对于 Event source(事件源),选择 AWS Services(AWS 服务)。

对于 AWS service(AWS 服务),选择 Certificate Manager

对于 Event type(事件类型),选择 ACM Certificate Approaching Expiration(ACM 证书即将到期)。

9.    选择 Next(下一步)。

10.    对于 Target types(目标类型),选择 AWS Service(AWS 服务)。

11.   对于 Select a target(选择目标),选择 SNS topic(SNS 主题),然后选择要为其配置到期通知的主题。

12.   选择 Next(下一步)。

可选)添加标签。

13.    选择下一步

14.   查看规则的详细信息,然后选择 Create rule(创建规则)。

创建此规则后,您可以更改到期通知的时间。在 ACM API 的 PutAccountConfiguration 操作中,为 DaysBeforeExpiry 输入 1-45 之间的某个值。有关更多信息,请参阅 ACM 证书即将到期事件

如果您想设置为在活动到期前 45 天以上触发通知,请使用以下替代方法。

创建自定义 EventBridge 规则

使用带有 EventBridge 规则的自定义事件模式来匹配 AWS Config 托管规则 acm-certificate-expirate-check。然后,将响应路由到某个 Amazon Simple Notification Service 主题。

1.    如果您未创建 Amazon SNS 主题,请按照 Amazon SNS 入门中的说明创建一个。

**注:**Amazon SNS 主题必须与您的 AWS Config 服务位于同一 AWS 区域。

2.    打开 EventBridge 控制台,然后选择 Rules(规则)。

3.    选择 Create rule(创建规则)。

4.    对于 Name(名称),输入您的规则名称。

5.    在规则类型中,选择包含事件模式的规则,然后选择下一步

6.    在事件源中,选择 AWS 事件或 EventBridge 合作伙伴事件

7.    在事件模式中,选择自定义模式(JSON 编辑器)

8.    在 Event pattern(事件模式)预览窗格中,复制并粘贴以下示例事件模式:

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Rules Compliance Change"
  ],
  "detail": {
    "messageType": [
      "ComplianceChangeNotification"
    ],
    "configRuleName": [
      "acm-certificate-expiration-check"
    ],
    "resourceType": [
      "AWS::ACM::Certificate"
    ],
    "newEvaluationResult": {
      "complianceType": [
        "NON_COMPLIANT"
      ]
    }
  }
}

9.    选择 Next(下一步)。

10.    对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。

11.   对于 Topic(主题),选择您的 SNS 主题。

12.    在 Configure target input(配置目标输入)下拉列表中,选择 Input transformer(输入转换器)。

13.    选择 Configure input transformer(配置输入转换器)。

14.    在 Input path(输入路径)文本框中,复制并粘贴以下路径:

{
  "awsRegion": "$.detail.awsRegion",
  "resourceId": "$.detail.resourceId",
  "awsAccountId": "$.detail.awsAccountId",
  "compliance": "$.detail.newEvaluationResult.complianceType",
  "rule": "$.detail.configRuleName",
  "time": "$.detail.newEvaluationResult.resultRecordedTime",
  "resourceType": "$.detail.resourceType"
}

15.    在 Input Template(输入模板)文本框中,复制并粘贴以下模板:

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance>."

"For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration."

16.    选择 Confirm(确认)、Next(下一步)、Next(下一步)、Create rule(创建规则)。

17.    事件类型启动后,您将收到一份 SNS 电子邮件通知,其中的自定义字段将从第 14 步填充,与以下所示类似:

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_Id in Region ExampleRegion as ExamplecomplianceType. 

For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"

创建 AWS Config 规则

1.    打开 AWS Config 控制台,选择规则,然后选择添加规则

2.    在选择规则类型中,选择添加 AWS 托管规则

3.    在 AWS 托管规则中,选择 acm-certificate-expirate-check,然后选择下一步

4.    在 Parameters(参数)中,对于 daysToExpiration 键,在 Value(值)中输入您希望规则在到期前触发的天数。

注意:对于到期日期接近输入的天数的证书,AWS Config 规则 acm-certificate-expiration-chec 将标记为不合规

5.    选择 Next(下一步),然后选择 Add rule(添加规则)。


相关信息

颁发和管理证书

我如何在非合规 AWS 资源使用 AWS Config 时收到通知?

AWS Config 的安全最佳实践

AWS 官方
AWS 官方已更新 1 年前