

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

# 使用 Amazon 监控 KMS 密钥 CloudWatch
<a name="monitoring-cloudwatch"></a>

您可以 AWS KMS keys 使用 [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/) 进行监控 CloudWatch，该 AWS 服务可收集原始数据并将其处理 AWS KMS 为可读的、近乎实时的指标。这些数据会保存两周，从而使您能够访问历史信息，并更好地了解您 KMS 密钥的使用情况及其随时间推移而发生的变化。

您可以使用 Amazon CloudWatch 提醒您注意重要事件，例如以下事件。
+ KMS 密钥中导入的密钥材料临近到期日期。
+ 仍在使用待删除的 KMS 密钥。
+ KMS 密钥中的密钥材料已自动轮换。
+ KMS 密钥已删除。

您还可以创建一个 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/) 警报，当您的请求率达到配额值的特定百分比时，提醒您。有关详情，请参阅*AWS 安全博客 CloudWatch*中的[使用 Service Quotas 和 Amazon 管理您的 AWS KMS API 请求速率](https://aws.amazon.com/blogs/security/manage-your-aws-kms-api-request-rates-using-service-quotas-and-amazon-cloudwatch/)。

## AWS KMS 指标和维度
<a name="kms-metrics"></a>

AWS KMS 预定义了 Amazon CloudWatch 指标，使您可以更轻松地监控关键数据和创建警报。您可以使用 AWS 管理控制台 和 Amazon CloudWatch API 查看 AWS KMS 指标。

本部分列出了每个 AWS KMS 指标和每个指标的维度，并提供了一些基于这些指标和维度创建 CloudWatch 警报的基本指导。

**注意**  
**维度组名称**：  
要在 Amazon CloudWatch 控制台中查看指标，请在 “**指标**” 部分，选择维度组名称。然后，您可以按 **Metric name**（指标名称）进行筛选。本主题包括各个 AWS KMS 指标的指标名称和维度组名称。

您可以使用 AWS 管理控制台 和 Amazon CloudWatch API 查看 AWS KMS 指标。有关更多信息，请参阅《*Amazon CloudWatch 用户指南*》中的[查看可用指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。

**Topics**
+ [SuccessfulRequest](#key-level-api-usage-metric)
+ [SecondsUntilKeyMaterialExpiration](#key-material-expiration-metric)
+ [云 HSMKey StoreThrottle](#metric-throttling-cloudhsm)
+ [ExternalKeyStoreThrottle](#metric-throttling)
+ [XksProxyCertificateDaysToExpire](#metric-xks-proxy-certificate-days-to-expire)
+ [XksProxyCredentialAge](#metric-xks-proxy-credential-age)
+ [XksProxyErrors](#metric-xks-proxy-errors)
+ [XksExternalKeyManagerStates](#metric-xks-ekm-states)
+ [XksProxyLatency](#metric-xks-proxy-latency)

### SuccessfulRequest
<a name="key-level-api-usage-metric"></a>

特定 KMS 密钥上的成功密码操作请求数量。通过使用该`SuccessfulRequest`指标，您可以对中的 AWS KMS API 使用情况应用密钥级筛选。 CloudWatch此指标的 `Sum` 统计数据用于定义该时间段内成功请求的总数。

此指标用来确定占用请求配额最大或产生 API 费用最大的 KMS 密钥。您还可以根据该`SuccesfulRequest`指标创建 CloudWatch 警报，以通知您异常 AWS KMS API 使用模式。这些警报有助于识别可能在无意中超出请求配额或产生意外费用的效率低下的工作流。

**的尺寸 `SuccessfulRequest`**


| 维度 | 说明 | 
| --- | --- | 
| KeyArn | 每个 KMS 密钥的值。 | 
| 操作 | 每个 AWS KMS API 操作的值。此指标仅适用于密码操作。 | 

对于[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)操作，该`SuccessfulRequest`指标包括源 KMS 密钥和目标 KMS 密钥的维度。


| 维度 | 说明 | 
| --- | --- | 
| SourceKeyArn | 解密加密文字的 KMS 密钥的值。 | 
| DestinationKeyArn | 重新加密数据的 KMS 密钥的值。 | 
| 操作 | 每个 AWS KMS API 操作的值，在本例中为 ReEncrypt。 | 

### SecondsUntilKeyMaterialExpiration
<a name="key-material-expiration-metric"></a>

KMS 密钥中[导入的密钥材料](importing-keys.md)过期之前剩余的秒数。此指标仅对具有导入的密钥材料（[密钥材料来源](create-keys.md#key-origin)为 `EXTERNAL`）以及到期日期的 KMS 密钥有效。

此指标用来跟踪导入的密钥材料在到期之前的剩余有效期。当该时间低于您定义的阈值时，则应重新导入密钥材料并设置新的到期日期，以确保能够使用该 KMS 密钥。`SecondsUntilKeyMaterialExpiration` 指标特定于单个 KMS 密钥。您不能使用此指标来监控多个 KMS 密钥或将来可能创建的多个 KMS 密钥。有关创建 CloudWatch 警报以监控此指标的帮助，请参阅[为导入的密钥材料过期创建 CloudWatch 警报](imported-key-material-expiration-alarm.md)。

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

**维度组名称**：**Per-Key Metrics**（各密钥指标）


**`SecondsUntilKeyMaterialExpiration` 的维度**  

| 维度 | 描述；相关于 AWS | 
| --- | --- | 
| KeyId | 每个 KMS 密钥的值。 | 

当您为 KMS 密钥[计划删除](deleting-keys.md)时， AWS KMS 会强制执行一段等待期，然后再删除 KMS 密钥。您可以利用这段等待期来确保现在或将来都不需要 KMS 密钥。您还可以配置 CloudWatch警报，以便在等待期间有人或应用程序尝试在[加密操作](kms-cryptography.md#cryptographic-operations)中使用 KMS 密钥时向您发出警报。如果您收到来自此类告警的通知，您可能需要取消删除 KMS 密钥。

有关说明，请参阅[创建检测待删除 KMS 密钥的使用的警报](deleting-keys-creating-cloudwatch-alarm.md)。

### 云 HSMKey StoreThrottle
<a name="metric-throttling-cloudhsm"></a>

对每个 AWS CloudHSM 密钥存储区中 AWS KMS 限制的 KMS 密钥进行加密操作的请求数（以 a 响应）。`ThrottlingException`此指标仅适用于 AWS CloudHSM 密钥存储。

该`CloudHSMKeyStoreThrottle`指标仅适用于密钥存储中的 KMS 密 AWS CloudHSM 钥，并且仅适用于[加密操作](kms-cryptography.md#cryptographic-operations)请求。 AWS KMS 当[请求速率超过密钥库的自定义密钥库请求配额时 AWS CloudHSM ，会限制这些](throttling.md)[请求](requests-per-second.md#rps-key-stores)。该指标还包括集群的 AWS CloudHSM 限制。

**维度组名称**：**Keystore Throttle Metrics**（密钥存储限制指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个 AWS CloudHSM 密钥库的值。 | 
| KmsOperation | 每个 AWS KMS API 操作的值。此指标仅适用于 AWS CloudHSM 密钥存储中 KMS 密钥的密码操作。 | 
| KeySpec | 每个 KMS 密钥类型的值。密钥存储库中 KMS [密钥唯一支持的密钥规范](create-keys.md#key-spec)是 SYMMETR AWS CloudHSM IC\_DEFAULT。 | 

### ExternalKeyStoreThrottle
<a name="metric-throttling"></a>

每个 AWS KMS 限制的外部密钥存储区中对 KMS 密钥进行加密操作的请求数（以 a 响应）。`ThrottlingException`此指标仅适用于[外部密钥存储](keystore-external.md)。

该`ExternalKeyStoreThrottle`指标仅适用于外部密钥存储中的 KMS 密钥，并且仅适用于[加密操作](kms-cryptography.md#cryptographic-operations)请求。 AWS KMS 当[请求速率超过外部[密钥存储的自定义密钥库请求配额](requests-per-second.md#rps-key-stores)时，会限制这些](throttling.md)请求。此指标不包括外部密钥存储代理或外部密钥管理器的节流。

此指标用来检查和调整自定义密钥存储请求配额的值。如果此指标表明经常限制您对 AWS KMS 这些 KMS 密钥的请求，则可以考虑请求增加自定义密钥存储请求配额值。如需帮助，请参阅《服务限额用户指南》中的 [申请上调限额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)**。

如果您经常收到 `KMSInvalidStateException` 错误，其中包含一条说明请求“due to a very high request rate（由于请求率很高）”而被拒绝的消息，或者请求“because the external key store proxy did not respond in time（由于外部密钥存储代理未及时响应）”而被拒绝，则可能表明您的外部密钥管理器或外部密钥存储代理无法跟上当前的请求速率。如可能，请降低您的请求速率。您也可以考虑请求降低自定义密钥存储请求限额值。减少此配额值可能会增加限制（和`ExternalKeyStoreThrottle`指标值），但这表明 AWS KMS 在将多余的请求发送到您的外部密钥存储代理或外部密钥管理器之前，会迅速将其拒绝。要申请下调限额，请访问 [AWS 支持 中心](https://console.aws.amazon.com/support/home) 并创建工单。

**维度组名称**：**Keystore Throttle Metrics**（密钥存储限制指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 
| KmsOperation | 每个 AWS KMS API 操作的值。此指标仅适用于外部密钥存储中 KMS 密钥的密码操作。 | 
| KeySpec | 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的[密钥规范](create-keys.md#key-spec)是 SYMMETRIC\_DEFAULT。 | 

### XksProxyCertificateDaysToExpire
<a name="metric-xks-proxy-certificate-days-to-expire"></a>

距离您的[外部密钥存储代理端点](create-xks-keystore.md#require-endpoint)（`XksProxyUriEndpoint`）的 TLS 证书过期的天数。此指标仅适用于[外部密钥存储](keystore-external.md)。

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

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

**维度组名称**：**XKS Proxy Certificate Metrics**（XKS 代理证书指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 
| CertificateName | TLS 证书中的主题名称（CN）。 | 

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明，请参阅[监控外部密钥存储](xks-monitoring.md)。

### XksProxyCredentialAge
<a name="metric-xks-proxy-credential-age"></a>

自当前外部密钥存储[代理身份验证凭证](keystore-external.md#concept-xks-credential)（`XksProxyAuthenticationCredential`）与外部密钥存储关联以来的天数。此计数从您在创建或更新外部密钥存储的过程中输入身份验证凭证时开始计算。此指标仅适用于[外部密钥存储](keystore-external.md)。

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

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

**维度组名称**：**Per-Keystore Metrics**（各密钥存储指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明，请参阅[监控外部密钥存储](xks-monitoring.md)。

### XksProxyErrors
<a name="metric-xks-proxy-errors"></a>

与您的[外部密钥存储代理 AWS KMS](keystore-external.md#concept-xks-proxy)请求相关的异常数量。此计数包括外部密钥存储代理返回的异常 AWS KMS 以及外部密钥存储代理在 250 毫秒超时间隔 AWS KMS 内未响应时发生的超时错误。此指标仅适用于[外部密钥存储](keystore-external.md)。

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

**维度组名称**：**XKS Proxy Error Metrics**（XKS 代理错误指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 
| KmsOperation | 生成对 XKS 代理的请求的每个 AWS KMS API 操作的值。 | 
| XksOperation | 每个[外部密钥存储代理 API 操作](keystore-external.md#concept-proxy-apis)的值。 | 
| KeySpec | 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的[密钥规范](create-keys.md#key-spec)是 SYMMETRIC\_DEFAULT。 | 
| ErrorType | 值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/kms/latest/developerguide/monitoring-cloudwatch.html) | 
| ExceptionName | 值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/kms/latest/developerguide/monitoring-cloudwatch.html) | 

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明，请参阅[监控外部密钥存储](xks-monitoring.md)。

### XksExternalKeyManagerStates
<a name="metric-xks-ekm-states"></a>

处于以下各个运行状况状态的[外部密钥管理器实例](keystore-external.md#concept-ekm)的数量：`Active`、`Degraded` 和 `Unavailable`。此指标的信息来自与每个外部密钥存储关联的外部密钥存储代理。此指标仅适用于[外部密钥存储](keystore-external.md)。

以下是与外部密钥存储相关联的外部密钥管理器实例的运行状况。每个外部密钥存储代理都可能会使用不同的指标来衡量外部密钥管理器的运行状况。有关详细信息，请参阅外部密钥存储代理的相关文档。
+ `Active`：外部密钥管理器运行正常。
+ `Degraded`：外部密钥管理器运行状况不佳，但仍可以传输流量
+ `Unavailable`：外部密钥管理器无法传输流量。

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

**维度组名称**：**XKS External Key Manager Metrics**（XKS 外部密钥管理器指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 
| XksExternalKeyManagerState | 每个运行状态的值。 | 

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明，请参阅[监控外部密钥存储](xks-monitoring.md)。

### XksProxyLatency
<a name="metric-xks-proxy-latency"></a>

外部密钥存储代理响应 AWS KMS 请求所用的毫秒数。如果请求超时，则记录的值为 250 毫秒的超时限制。此指标仅适用于[外部密钥存储](keystore-external.md)。

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

响应缓慢还可能表示您的外部密钥管理器无法处理当前的请求流量。 AWS KMS 建议您的外部密钥管理器每秒能够处理多达 1800 个加密操作请求。如果您的外部密钥管理器无法处理每秒 1800 个请求的速率，请考虑请求降低‭[自定义密钥存储中 KMS 密钥的请求限额](requests-per-second.md#rps-key-stores)。使用外部密钥存储中的 KMS 密钥进行加密操作的请求将采用快速失效机制，并出现[节流异常](throttling.md)，而不是由外部密钥存储代理或外部密钥管理器处理后拒绝。

**维度组名称**：**XKS Proxy Latency Metrics**（XKS 代理延迟指标）


| 维度 | 说明 | 
| --- | --- | 
| CustomKeyStoreId | 每个外部密钥存储的值。 | 
| KmsOperation | 生成对 XKS 代理的请求的每个 AWS KMS API 操作的值。 | 
| XksOperation | 每个[外部密钥存储代理 API 操作](keystore-external.md#concept-proxy-apis)的值。 | 
| KeySpec | 每个 KMS 密钥类型的值。对于外部密钥存储中 KMS 密钥的唯一支持的[密钥规范](create-keys.md#key-spec)是 SYMMETRIC\_DEFAULT。 | 

您可以根据外部密钥存储和外部密钥存储中的 KMS 密钥的指标创建 CloudWatch 警报。有关说明，请参阅[监控外部密钥存储](xks-monitoring.md)。