创建 Amazon CloudWatch 警告以检测待删除的 Amazon KMS key 的使用情况 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建 Amazon CloudWatch 警告以检测待删除的 Amazon KMS key 的使用情况

可将 Amazon CloudTrail、Amazon CloudWatch Logs 和 Amazon Simple Notification Service (Amazon SNS) 的功能结合使用,以便在您账户中的某个人员尝试在加密操作中使用等待删除的 KMS 密钥时向您发送通知。如果您收到此通知,则可能要取消删除该 KMS 密钥并重新考虑删除它的决定。

以下过程介绍如何在导致“Key ARN is pending deletion”错误消息的 Amazon KMS API 请求写入 CloudTrail 日志文件时收到通知。此错误消息指示有人或应用程序尝试在加密操作(EncryptDecryptGenerateDataKeyGenerateDataKeyWithoutPlaintextReEncrypt)中使用该 KMS 密钥。由于通知链接至错误消息,因此,当您使用待删除的 KMS 密钥中允许的 API 操作时(例如 ListKeysCancelKeyDeletionPutKeyPolicy),不会触发该通知。要查看返回此错误消息的 Amazon KMS API 操作的列表,请参阅Amazon KMS 密钥的密钥状态

您收到的通知电子邮件不会列出 KMS 密钥或加密操作。可在 CloudTrail 日志中找到此信息。电子邮件会报告警报状态已从 OK (正常) 变为 Alarm (警报)。有关 CloudWatch 警报和状态更改的更多信息,请参阅 Amazon CloudWatch 用户指南 中的创建 Amazon CloudWatch 警报

警告

此 Amazon CloudWatch 告警无法检测到 Amazon KMS 外部非对称 KMS 密钥的公有密钥的使用情况。有关删除用于公有密钥加密的非对称 KMS 密钥的特殊风险的详细信息,包括创建无法解密的密文,请参阅 删除非对称 KMS 密钥

CloudWatch 告警的要求

在创建 CloudWatch 告警之前,必须先创建一个 Amazon CloudTrail 跟踪并配置 CloudTrail,以使其将 CloudTrail 日志文件传输至 Amazon CloudWatch Logs。

  1. 创建 CloudTrail 跟踪

    在您创建账户时,将在您的 Amazon Web Services 账户 上自动启用 CloudTrail。但是,要持续记录账户中的事件(包括 Amazon KMS 的事件),请创建跟踪。

  2. 配置 CloudTrail 日志文件以交付您的日志文件 CloudWatch Logs

    配置 CloudTrail 日志文件至 CloudWatch Logs 的交付。这样,CloudWatch Logs 便可以监控尝试使用待删除 KMS 密钥的 Amazon KMS API 请求的日志。

创建 CloudWatch 告警

要在 Amazon KMS API 请求尝试在加密操作中使用待删除 KMS 密钥时收到通知,请创建 CloudWatch 告警并配置通知。

要创建监控尝试使用待删除 KMS 密钥的行为的 CloudWatch 告警

  1. 登录Amazon Web Services Management Console并打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 使用右上方的区域选择器选择要监控的 Amazon Web Services 区域。

  3. 在左侧导航窗格中,选择 Logs

  4. 日志组列表中,选择您的日志组旁边的选项按钮。选择创建指标筛选器

  5. 对于筛选模式,键入或粘贴以下内容:

    { $.eventSource = kms* && $.errorMessage = "* is pending deletion."}

    选择 Assign Metric (分配指标)

  6. Create Metric Filter and Assign a Metric 页面上,执行以下操作:

    1. 对于 Metric Namespace (指标命名空间),键入 CloudTrailLogMetrics

    2. 对于 Metric Name(指标名称),键入 KMSKeyPendingDeletionErrorCount

    3. 选择显示高级指标设置,并为指标值键入 1(如果这不是当前值)。

    4. 选择 Create Filter

  7. 在筛选器框中,选择 Create Alarm

  8. Create Alarm 窗口中,执行以下操作:

    1. 警报阈值部分中,对于名称,键入 KMSKeyPendingDeletionErrorAlarm。您还可以添加可选的说明。

    2. 无论何时后,对于,选择 >=,然后键入 1

    3. 对于 n 个数据点中的 1 个,(如有必要)请键入 1

    4. 附加设置部分,对将缺失的数据作为以下内容处理选择好 (未超出阈值)

    5. 操作部分中,对于发送通知到,请执行以下操作之一:

      • 要使用新的 Amazon SNS 主题,请选择 New list(新建列表),然后键入新主题的名称,如 KMSAlert。对于电子邮件列表,键入至少一个电子邮件地址。您可以键入多个电子邮件地址,并使用逗号将它们隔开。

      • 要使用现有 Amazon SNS 主题,请选择要使用的主题的名称。

    6. 选择 Create Alarm(创建告警)

  9. 如果您选择将通知发送到某个电子邮件地址,请打开从 no-reply@sns.amazonaws.com 收到的主题为“Amazon Notification - Subscription Confirmation”的电子邮件。选择电子邮件中的 Confirm subscription 链接以确认您的电子邮件地址。

    注意

    确认电子邮件地址后,您才会收到电子邮件通知。

完成此过程后,每当 CloudWatch 告警进入 ALARM 状态时,您都会收到通知。如果您收到此告警的通知,可能意味着某人或某个应用程序仍然需要使用此 KMS 密钥。在这种情况下,您应该取消删除 KMS 密钥,以给自己更多时间来确定是否真的要将其删除。