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

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

使用 Amazon CloudWatch 监控 KMS 密钥

您可以使用 Amazon CloudWatch 监控 Amazon KMS keys,这是一项 Amazon 服务,可从 Amazon KMS 收集原始数据,并将数据处理为便于读取的近乎实时的指标。这些数据会保存两周,从而使您能够访问历史信息,并更好地了解您 KMS 密钥的使用情况及其随时间推移而发生的变化。

您可以使用 Amazon CloudWatch 提示自己注意重要事件,例如:

  • KMS 密钥中导入的密钥材料临近到期日期。

  • 仍在使用待删除的 KMS 密钥。

  • KMS 密钥中的密钥材料已自动轮换。

  • KMS 密钥已删除。

您也可以创建 Amazon CloudWatch 告警,当您的请求速率达到配额值的特定百分比时向您发出提示。有关详细信息,请参阅 Amazon 安全博客中的使用 Service Quotas 和 Amazon CloudWatch 管理您的 Amazon KMS API 请求速度

Amazon KMS 指标和维度

Amazon KMS 预定义 Amazon CloudWatch 指标,使您可以更轻松地监控关键数据并创建警报。您可以使用 Amazon Web Services Management Console 和 Amazon CloudWatch API 查看 Amazon KMS 指标。

本部分列出了各个 Amazon KMS 指标及各指标的维度,并提供有关根据这些指标和维度创建 CloudWatch 警报的基本指导。

注意

维度组名称

要在 Amazon CloudWatch 控制台中查看指标,请在 Metrics(指标)部分选择维度组名称。然后,您可以按 Metric name(指标名称)进行筛选。本主题包括各个 Amazon KMS 指标的指标名称和维度组名称。

您可以使用 Amazon Web Services Management Console 和 Amazon CloudWatch API 查看 Amazon KMS 指标。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的查看可用指标

SecondsUntilKeyMaterialExpiration

此指标跟踪 KMS 密钥中导入的密钥材料过期之前剩余的秒数。此指标仅对具有导入的密钥材料(密钥材料来源EXTERNAL)以及到期日期的 KMS 密钥有效。

使用此指标可以跟踪所导入密钥材料的到期之前剩余时间量。当该时间低于您定义的阈值时,您可能需要重新导入密钥材料并设置新的到期日期。SecondsUntilKeyMaterialExpiration 指标特定于单个 KMS 密钥。您不能使用此指标来监控多个 KMS 密钥或将来可能创建的多个 KMS 密钥。有关创建 CloudWatch 警报以监控此指标的帮助,请参阅 针对导入密钥材料的到期创建 CloudWatch 警报

该指标最有用的统计数据是 Minimum,它会告诉您指定统计周期内所有数据点的最小剩余时间。此指标的唯一有效单位是 Seconds

维度组名称Per-Key Metrics(各密钥指标)

SecondsUntilKeyMaterialExpiration 的维度
维度 描述;与 Amazon 有关
KeyId 每个 KMS 密钥的值。

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

有关说明,请参阅 创建警报,检测KMS密钥的使用情况,等待删除

ExternalKeyStoreThrottle

Amazon KMS 限制的每个外部密钥存储中对 KMS 密钥进行加密操作的请求数(以 ThrottlingException 响应)。此指标仅适用于外部密钥存储

ExternalKeyStoreThrottle 指标仅适用于外部密钥存储中的 KMS 密钥,并且仅适用于 加密操作DescribeKey 操作请求。当请求率超过外部密钥存储的 自定义密钥存储请求限额时,Amazon KMS 会 对这些请求进行节流。此指标不包括外部密钥存储代理或外部密钥管理器的节流。

使用此指标来查看和调整您的自定义密钥存储请求限额的值。如果此指标表明 Amazon KMS 频繁对您对这些 KMS 密钥的请求节流,则可以考虑申请上调自定义密钥存储请求限额值。如需帮助,请参阅《服务限额用户指南》中的 申请上调限额

如果您经常收到 KMSInvalidStateException 错误,其中包含一条说明请求“due to a very high request rate(由于请求率很高)”而被拒绝的消息,或者请求“because the external key store proxy did not respond in time(由于外部密钥存储代理未及时响应)”而被拒绝,则可能表明您的外部密钥管理器或外部密钥存储代理无法跟上当前的请求速率。如可能,请降低您的请求速率。您也可以考虑请求降低自定义密钥存储请求限额值。降低此限额值可能会增加节流的风险(和 ExternalKeyStoreThrottle 指标值),但这表明多余的请求在发送到外部密钥存储代理或外部密钥管理器之前会很快被 Amazon KMS 拒绝。要申请下调限额,请访问 Amazon Web Services Support 中心 并创建工单。

维度组名称Keystore Throttle Metrics(密钥存储限制指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。
KmsOperation 每个 Amazon KMS API 操作的值。此指标仅适用于加密操作和对外部密钥存储中的 KMS 密钥的 DescribeKey 操作。
KeySpec 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的密钥规范是 SYMMETRIC_DEFAULT。

XksProxyCertificateDaysToExpire

距离您的外部密钥存储代理端点XksProxyUriEndpoint)的 TLS 证书过期的天数。此指标仅适用于外部密钥存储

使用此指标创建 CloudWatch 警报,该警报会通知您,TLS 证书即将过期。证书过期后,Amazon KMS 将无法与外部密钥存储代理通信。在您续订证书之前,外部密钥存储中所有受 KMS 密钥保护的数据都将不可访问。

证书警报可防止证书过期,证书过期可能会影响您访问加密资源。设置警报,让您的组织有时间在证书过期之前续订证书。

维度组名称XKS Proxy Certificate Metrics(XKS 代理证书指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。
CertificateName TLS 证书中的主题名称(CN)。

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明,请参阅 监控外部密钥存储

XksProxyCredentialAge

自当前外部密钥存储代理身份验证凭证XksProxyAuthenticationCredential)与外部密钥存储关联以来的天数。此计数从您在创建或更新外部密钥存储的过程中输入身份验证凭证时开始计算。此指标仅适用于外部密钥存储

此值旨在提醒您身份验证凭证的使用时间。但是,由于我们从您将凭证与外部密钥存储关联时开始计算,而不是从您在外部密钥存储代理上创建身份验证凭证时开始计算,这可能无法准确地表明代理中的凭证使用时间。

使用此指标创建 CloudWatch 警报,该警报会提醒您轮换外部密钥存储代理身份验证凭证。

维度组名称Per-Keystore Metrics(各密钥存储指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明,请参阅 监控外部密钥存储

XksProxyErrors

与对外部密钥存储代理的 Amazon KMS 请求相关的异常数量。此计数包括外部密钥存储代理返回至 Amazon KMS 的异常,以及外部密钥存储代理在 250 毫秒超时间隔内未响应 Amazon KMS 时发生的超时错误。此指标仅适用于外部密钥存储

使用此指标跟踪外部密钥存储中 KMS 密钥的错误率。这可显示最常见的错误,因此您可以确定工程工作的优先顺序。例如,产生较高不可重试错误率的 KMS 密钥,可能表明您的外部密钥存储配置存在问题。若要查看您的外部密钥存储配置,请参阅 查看外部密钥存储。若要编辑您的外部密钥存储设置,请参阅 编辑外部密钥存储属性

维度组名称XKS Proxy Error Metrics(XKS 代理错误指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。
KmsOperation 生成对 XKS 代理的请求的每个 Amazon KMS API 操作的值。
XksOperation 每个外部密钥存储代理 API 操作的值。
KeySpec 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的密钥规范是 SYMMETRIC_DEFAULT。
ErrorType 值:
  • 可重试错误:可能是暂时性错误,例如网络错误。

  • 不可重试错误:可能表示自定义密钥存储配置或外部组件存在问题。

  • 不适用:请求成功;没有错误

ExceptionName

值:

  • 异常名称

  • 无:请求成功;没有错误

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明,请参阅 监控外部密钥存储

XksExternalKeyManagerStates

处于以下各个运行状况状态的外部密钥管理器实例的数量:ActiveDegradedUnavailable。此指标的信息来自与每个外部密钥存储关联的外部密钥存储代理。此指标仅适用于外部密钥存储

以下是与外部密钥存储相关联的外部密钥管理器实例的运行状况。每个外部密钥存储代理都可能会使用不同的指标来衡量外部密钥管理器的运行状况。有关详细信息,请参阅外部密钥存储代理的相关文档。

  • Active:外部密钥管理器运行正常。

  • Degraded:外部密钥管理器运行状况不佳,但仍可以传输流量

  • Unavailable:外部密钥管理器无法传输流量。

使用此指标创建 CloudWatch 警报,该警报会提醒您注意外部密钥管理器实例已降级和不可用。要确定哪些外部密钥管理器实例处于各个状态,请查阅您的外部密钥存储代理日志。

维度组名称XKS External Key Manager Metrics(XKS 外部密钥管理器指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。
XksExternalKeyManagerState 每个运行状态的值。

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明,请参阅 监控外部密钥存储

XksProxyLatency

外部密钥存储代理响应 Amazon KMS 请求所用的毫秒数。如果请求超时,则记录的值为 250 毫秒的超时限制。此指标仅适用于外部密钥存储

使用此指标来评估您的外部密钥存储代理和外部密钥管理器的性能。例如,如果代理在加密和解密操作时经常超时,请咨询您的外部代理管理员。

响应缓慢还可能表明您的外部密钥管理器无法处理当前的请求流量。Amazon KMS 建议您的外部密钥管理器每秒能够处理高达 1800 个加密操作请求。如果您的外部密钥管理器无法处理每秒 1800 个请求的速率,请考虑请求降低‭自定义密钥存储中 KMS 密钥的请求限额。使用外部密钥存储中的 KMS 密钥进行加密操作的请求将采用快速失效机制,并出现节流异常,而不是由外部密钥存储代理或外部密钥管理器处理后拒绝。

维度组名称XKS Proxy Latency Metrics(XKS 代理延迟指标)

维度 描述
CustomKeyStoreId 每个外部密钥存储的值。
KmsOperation 生成对 XKS 代理的请求的每个 Amazon KMS API 操作的值。
XksOperation 每个外部密钥存储代理 API 操作的值。
KeySpec 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的密钥规范是 SYMMETRIC_DEFAULT。

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明,请参阅 监控外部密钥存储