使用 Amazon CloudWatch 进行监控 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon CloudWatch 进行监控

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

Amazon KMS 指标和维度

当您 时将密钥材料导入 CMK并将其设置为过期,Amazon KMS将指标和维度发送到 CloudWatch。您可以查看Amazon KMS指标Amazon Web Services Management Console和 Amazon CloudWatch API。

Amazon KMS 指标

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

第二次关键材料过期

此度量跟踪导入的密钥材料过期之前剩余的秒数。该指标仅适用于Amazon KMS其原点为EXTERNAL并且其密钥材料已经过期或已设置为过期。此指标最有用的统计数据是Minimum,它会告诉您指定统计周期内所有数据点剩余的最小时间量。此指标的唯一有效单位是Seconds

使用此指标可以跟踪导入的密钥材料过期之前的剩余时间。当该时间量低于您定义的阈值时,您可能需要采取措施,例如重新导入密钥材料并设置新的到期日期。您可以创建 CloudWatch 警报来在此情况发生时通知您。有关更多信息,请参阅 创建 CloudWatch 警报以监控 指标Amazon KMS指标

Amazon KMS 指标的维度

Amazon KMS指标使用AWS/KMS命名空间,并且只有一个有效的维度:KeyId。 您可以使用此维度查看特定 KMS 密钥或 KMS 密钥集的度量数据。

如何查看 Amazon KMS 指标?

您可以查看Amazon KMS指标Amazon Web Services Management Console和 Amazon CloudWatch API。

使用 CloudWatch 控制台查看指标

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

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

  3. 在导航窗格中,选择指标

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

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

使用 Amazon CloudWatch API 查看指标

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

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

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

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

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

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

创建警报以监控已导入密钥材料的到期时间(Amazon Web Services Management Console)

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

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

  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 主题,请选择新列表,然后键入新的主题名称。对于 Email list:,键入至少一个电子邮件地址。您可以键入多个电子邮件地址,并使用逗号将它们隔开。

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

    5. 选择 Create Alarm

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

    重要

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

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

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

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

Amazon KMS 事件

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

有关将 CloudWatch Events 与其他类型的事件(包括Amazon CloudTrail当它记录读/写 API 请求时,请参阅Amazon CloudWatch Events 用户指南

以下主题介绍 CloudWatch EventsAmazon KMS创建。

关键材料的自动旋转

当您启用自动密钥轮换对于客户托管 CMK、Amazon KMS每年为 CMK 创建新的密钥材料。 Amazon 管理的 CMK 的密钥材料每三年自动轮换一次。

WHENEAmazon KMS旋转密钥材料,它将发送KMS CMK Rotation事件添加到 CloudWatch 事件。Amazon KMS将尽力生成此事件。

以下是该事件的示例。

{ "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" } }

导入的密钥材料的到期时间

当您将密钥材料导入 CMK 中时,您可以选择性地指定密钥材料的过期时间。当关键材料过期时,Amazon KMS将删除密钥材料并将相应的事件发送到 CloudWatch 事件。Amazon KMS将尽力生成此事件。

以下是该事件的示例。

{ "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" } }

删除 CMK

当您为 CMK 计划密钥删除时,Amazon KMS 会强制执行一段等待期,然后再删除 CMK。等待期结束后,Amazon KMS将删除 CMK 并将相应的事件发送到 CloudWatch 事件。Amazon KMS保证了这个 CloudWatch 事件。由于重试,它可能会在几秒钟内生成多个删除同一 CMK 的事件。

以下是该事件的示例。

{ "version": "0", "id": "e9ce3425-7d22-412a-a699-e7a5fc3fbc9a", "detail-type": "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" } }