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

3 分钟阅读
0

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

简短描述

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

若想接收证书即将到期的通知,请使用下面的其中一种方法:

  • 使用 Amazon EventBridge 中的 ACM API 配置 ACM 证书即将到期事件
  • 创建一个自定义 EventBridge 规则,以便在证书接近到期日期时接收电子邮件通知。
  • 使用 AWS Config 来检查是否有证书接近到期日期。
  • 当有证书接近到期日期时,请根据静态阈值创建一个 Amazon CloudWatch 警报。

解决方法

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

对于接近到期日期的事件,ACM 会通过 CloudWatch 发送通知。默认情况下,ACM 证书即将到期事件会在活动到期前 45 天发送通知。要配置此通知的计时,请首先在 EventBridge 中将该事件添加为规则。

完成下面的步骤:

  1. 打开 EventBridge 控制台
  2. 在导航窗格中,选择规则,然后选择创建规则
  3. 为规则输入名称描述字段是可选字段。
    **注意:**位于同一 AWS 区域和同一事件总线上的规则必须唯一地命名。
  4. 对于事件总线,选择事件总线。要将该规则与来自 AWS 账户的事件匹配,选择 AWS 默认事件总线,以便事件转到您账户的默认事件总线。
  5. 对于规则类型,选择具有事件模式的规则,然后选择下一步
  6. 对于事件来源,选择 AWS 事件或 EventBridge 合作伙伴事件
  7. 对于创建方法,选择使用模式表单选项。
  8. 事件模式部分中,完成下面的步骤:
    对于事件来源,选择 AWS 服务
    对于 AWS 服务,选择 Certificate Manager
    对于事件类型,选择 ACM 证书即将到期
  9. 选择下一步
  10. 对于目标类型,选择 AWS 服务
  11. 对于选择目标,选择 SNS 主题,然后选择 Amazon Simple Notification Service(Amazon SNS)主题。
  12. 选择下一步
  13. 可选)添加标签。
  14. 选择下一步
  15. 查看规则的详细信息,然后选择创建规则

创建规则后,可以更改到期通知的计时。在 ACM API 的 PutAccountConfiguration 操作中,为 DaysBeforeExpiry 输入一个介于 1-45 之间的值。

**注意:**要设置事件到期前 45 天以上的通知,请使用下面的方法。

创建自定义 EventBridge 规则

使用具有 EventBridge 规则的自定义事件模式来匹配 acm-certificate-expiration-check AWS Config 托管规则。然后,将响应路由到 Amazon SNS 主题。

完成下面的步骤:

  1. 如果未创建 Amazon SNS 主题,请创建一个
    **注意:**Amazon SNS 主题必须与 AWS Config 服务位于同一 AWS 区域。

  2. 打开 EventBridge 控制台

  3. 选择规则,然后选择创建规则

  4. 对于名称,为主题输入名称。

  5. 对于规则类型,选择具有事件模式的规则,然后选择下一步

  6. 对于事件来源,选择 AWS 事件或 EventBridge 合作伙伴事件

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

  8. 事件模式预览窗格中,输入下面的事件模式:

    {  "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. 选择下一步

  10. 对于选择目标,选择 SNS 主题

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

  12. 配置目标输入下拉列表中,选择输入转换器

  13. 然后,选择配置输入转换器

  14. 输入路径文本框中,输入下面的路径:

{  "awsRegion": "$.detail.awsRegion",
  "resourceId": "$.detail.resourceId",
  "awsAccountId": "$.detail.awsAccountId",
  "compliance": "$.detail.newEvaluationResult.complianceType",
  "rule": "$.detail.configRuleName",
  "time": "$.detail.newEvaluationResult.resultRecordedTime",
  "resourceType": "$.detail.resourceType"
}
  1. 输入模板文本框中,输入下面的模板:
"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."
  1. 选择确认,然后选择下一步
  2. 再次选择下一步,然后选择创建规则

如果启动了某个事件类型,则将收到一封 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 规则

首先,创建 Amazon SNS 主题EventBridge 规则,以便不合规的证书在到期日期之前调用通知。

**注意:**在您使用 AWS Config 时会产生费用。有关更多信息,请参阅 AWS Config 定价

要创建 AWS Config 规则,请完成下面的步骤:

  1. 打开 AWS Config 控制台
  2. 选择规则,然后选择添加规则
  3. 选择规则类型中,选择添加 AWS 托管规则
  4. 对于 AWS 托管规则,选择 acm-certificate-expiration-check,然后选择下一步
  5. 参数页上,对于,在 daysToExpiration 键中输入希望规则调用的天数。
    **注意:**对于接近所输入的天数的到期日期的证书,acm-certificate-expiration-check AWS Config 规则会被标记为 Noncompliant
  6. 选择下一步,然后选择添加规则

根据静态阈值创建 CloudWatch 警报

完成下面的步骤:

  1. 打开 CloudWatch 控制台
  2. 在导航窗格中,选择警报,然后选择所有警报
  3. 选择创建警报,然后选择选择指标
  4. 选择 Certificate Manager,然后选择使用情况
  5. 指标页上,选择指标,然后选择选择指标
  6. 指定指标和条件页上,对于统计数据,选择最小值
  7. 对于周期,选择 1 天
  8. 对于每当 allCount 为...,选择小于/等于,然后将 ... 设置为希望警报在到期前运行的天数。
  9. 选择下一步
  10. 对于通知,选择警报中
  11. 对于向以下 SNS 主题发送通知,选择选择现有的 SNS 主题创建新主题,然后选择下一步
  12. 输入警报名称,然后选择下一步
  13. 选择创建警报

有关更多信息,请参阅根据静态阈值创建 CloudWatch 告警

相关信息

Issuing and managing certificates

如果使用 AWS Config 时 AWS 资源不合规,如何通知我?

Security best practices for AWS Config

AWS 官方
AWS 官方已更新 9 个月前