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

使用 Amazon CloudWatch 进行监控

您可以使用 Amazon CloudWatch 监控客户主密钥 (CMK),该服务可从 AWS KMS 收集原始数据并将其处理为易读的近乎实时的指标。这些数据会保存两周,从而使您能够访问历史信息,并更好地了解您 CMK 的使用情况及其随时间推移而发生的变化。有关 Amazon CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

AWS KMS 指标和维度

当您将密钥材料导入 CMK 中并将其设置为过期时,AWS KMS 会向 CloudWatch 发送指标和维度。您可以使用 AWS 管理控制台和 Amazon CloudWatch API 查看 AWS KMS 指标。

AWS KMS 指标

AWS/KMS 命名空间包括以下指标。

SecondsUntilKeyMaterialExpiration

此指标跟踪在导入的密钥资料过期之前的剩余秒数。此指标仅对源为 EXTERNAL 并且密钥资料现在或以前设置了过期的 CMK。此指标最有用的统计信息是 Minimum,此值告知您在指定的统计信息周期内所有数据点的最小剩余时间量。此指标唯一有效的单位是 Seconds

使用此指标可跟踪您导入的密钥资料过期之前剩余的时间量。当该时间下降到低于您定义的阈值时,您可能想执行某些操作,例如重新导入密钥材料并设置新的到期日期。您可以创建 CloudWatch 警报,在发生这种情况时通知您。有关更多信息,请参阅 创建 CloudWatch 警报以监控 AWS KMS 指标

AWS KMS 指标的维度

AWS KMS 指标使用 AWS/KMS 命名空间并只有一个有效的维度:KeyId.您可以使用此维度查看特定 CMK 或 CMK 组的指标数据。

如何查看 AWS KMS 指标?

您可以使用 AWS 管理控制台和 Amazon CloudWatch API 查看 AWS KMS 指标。

使用 CloudWatch 控制台查看指标

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 如果需要,可以更改区域。从导航栏中,选择 AWS 资源所在的区域。

  3. 在导航窗格中,选择 Metrics

  4. 在内容窗格中,选择 All metrics 选项卡。然后,在 AWS Namespaces (AWS 命名空间) 下选择 KMS

  5. 选择 Per-Key Metrics 以查看单独的指标和维度。

使用 Amazon CloudWatch API 查看指标

要使用 CloudWatch API 查看 AWS KMS 指标,请发送 ListMetrics 请求,并将 Namespace 设置为 AWS/KMS。以下示例说明如何使用 AWS Command Line Interface (AWS CLI) 执行该操作。

$ aws cloudwatch list-metrics --namespace AWS/KMS

创建 CloudWatch 警报以监控 AWS KMS 指标

您可以创建 CloudWatch 警报,使其在指标的值发生改变并导致报警改变状态时发送 Amazon SNS 消息。警报会每隔一段时间 (由您指定) 监控一个指标,并根据相对于给定阈值的指标值每隔若干个时间段执行一项或多项操作。操作是向 Amazon SNS 主题或 Auto Scaling 策略发送的通知。警报仅在出现持续状态变化时才会调用操作。CloudWatch 警报将不会仅因为其处于特定状态而调用操作;该状态必须已改变并在指定的若干个时间段内保持不变。

创建 CloudWatch 警报以监控已导入密钥材料的到期时间

当您将密钥材料导入 CMK 中时,您可以选择性地指定密钥材料的过期时间。当密钥材料过期后,AWS KMS 将删除密钥材料,并且 CMK 将变为不可用。要再次使用该 CMK,您必须重新导入密钥材料。您可以创建 CloudWatch 警报,以在导入的密钥材料过期之前的剩余时间量低于您定义的阈值(例如,10 天)时通知您。如果您收到此类警报的通知,您可能需要采取措施,例如重新导入密钥材料并设置新的到期日期。

创建警报以监控已导入密钥材料的到期时间(AWS 管理控制台)

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 如果需要,可以更改区域。从导航栏中,选择 AWS 资源所在的区域。

  3. 在导航窗格中,选择 Alarms。然后选择 Create Alarm (创建警报)

  4. 选择 Browse Metrics,然后选择 KMS

  5. 选中要监控的 CMK 的密钥 ID 旁的复选框。

  6. 在下方窗格中,使用菜单将统计数据更改为 Minimum 并将时间段设置为 1 Minute。然后选择 Next

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

    1. 对于 Name (名称),键入一个名称,如 KeyMaterialExpiresSoon

    2. 对于随后的 Whenever: (每当:),为 is: (是:) 选择 <=,然后键入阈值的秒数。例如,如果要在所导入密钥材料的到期之前剩余时间不超过 10 天时获得通知,则键入 864000

    3. 对于 for consecutive period(s) (对于连续周期),键入 1(如果需要)。

    4. 对于Send notification to:,执行以下操作之一:

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

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

    5. 选择 Create Alarm

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

    重要

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

创建 CloudWatch 警报以监控待删除 CMK 的使用情况

当您为 CMK 计划密钥删除时,AWS KMS 会强制执行一段等待期,然后再删除 CMK。您可以利用这段等待期来确保现在或将来都不需要 CMK。您还可以配置 CloudWatch 警报,使其在有人员或应用程序在等待期间试图使用 CMK 时发出警告。如果您收到来自此类警报的通知,您可能需要取消删除 CMK。

有关更多信息,请参阅创建 Amazon CloudWatch 警报以检测使用待删除客户主密钥的行为

AWS KMS 事件

AWS KMS 与 Amazon CloudWatch Events 集成,以通知您影响 CMK 的特定事件。每个事件以 JSON (JavaScript 对象表示法) 格式表示,包含事件名称、事件发生的日期和时间、受影响的 CMK 等等。您可以使用 CloudWatch Events 收集这些事件,并设置将事件路由到一个或多个目标(如 AWS Lambda 函数、Amazon SNS 主题、Amazon SQS 队列、Amazon Kinesis Data Streams 中的流或内置目标)的规则。

有关将 CloudWatch Events 与其他类型的事件(包括 AWS CloudTrail 在记录读/写 API 请求时发出的事件)结合使用的更多信息,请参阅 Amazon CloudWatch Events 用户指南

以下主题介绍 AWS KMS 创建的 CloudWatch Events。

KMS CMK 轮换

当您启用每年轮换 CMK 密钥材料后,AWS KMS 每年会为 CMK 创建新密钥材料,并向 CloudWatch Events 发送相应的事件。以下是该事件的示例。

{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "KMS CMK Rotation", "source": "aws.kms", "account": "111122223333", "time": "2016-08-25T21:05:33Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" } }

KMS 导入的密钥材料过期

当您将密钥材料导入 CMK 中时,您可以选择性地指定密钥材料的过期时间。当密钥材料过期后,AWS KMS 将删除密钥材料并将相应的事件发送到 CloudWatch Events。以下是该事件的示例。

{ "version": "0", "id": "9da9af57-9253-4406-87cb-7cc400e43465", "detail-type": "KMS Imported Key Material Expiration", "source": "aws.kms", "account": "111122223333", "time": "2016-08-22T20:12:19Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" } }

KMS CMK 删除

当您为 CMK 计划密钥删除时,AWS KMS 会强制执行一段等待期,然后再删除 CMK。等待期结束后,AWS KMS 将删除 CMK 并将相应的事件发送到 CloudWatch Events。以下是该事件的示例。

{ "version": "0", "id": "e9ce3425-7d22-412a-a699-e7a5fc3fbc9a", "detail-type": "KMS CMK Deletion", "source": "aws.kms", "account": "111122223333", "time": "2016-08-19T03:23:45Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" } }