AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建 Amazon CloudWatch 警报以检测使用待删除客户主密钥的行为

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

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

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

CloudWatch 警报的要求

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

  1. 创建 CloudTrail 跟踪

    创建 AWS 账户时,会自动在该账户中启用 CloudTrail。但是,要持续记录账户中的事件(包括 AWS KMS 的事件),请创建跟踪。

  2. 配置 CloudTrail 以将日志文件发送至 CloudWatch Logs

    配置 CloudTrail 日志文件至 CloudWatch Logs 的传输。这样,CloudWatch Logs 便可以监控尝试使用待删除 CMK 的 AWS KMS API 请求的日志。

创建 CloudWatch 警报

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

创建监控尝试使用待删除 KMS CMK 的行为的 CloudWatch 警报

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudWatch 控制台 https://console.amazonaws.cn/cloudwatch/

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

  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. 对于指标名称,键入 KMSKeyPendingDeletionErrorCount

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

    4. 选择 Create Filter

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

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

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

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

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

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

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

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

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

    6. 选择 Create Alarm

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

    注意

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

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