

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

# 监控外部密钥存储
<a name="xks-monitoring"></a>

AWS KMS 收集与外部密钥存储库的每次交互的指标，并将其发布到您的 CloudWatch 账户中。这些指标用于在每个外部密钥存储的详细信息页面的监控部分生成图表。以下主题详细介绍了如何使用图表来识别和排查影响外部密钥存储的操作和配置问题。我们建议使用这些 CloudWatch 指标来设置警报，以便在外部密钥存储未按预期运行时通知您。有关更多信息，请参阅[使用 Amazon 进行监控 CloudWatch](monitoring-cloudwatch.md)。

**Topics**
+ [查看图表](#xks-monitoring-navigate)
+ [解释图表](#interpreting-graphs)

## 查看图表
<a name="xks-monitoring-navigate"></a>

您可以在不同的详细程度下查看图表。默认情况下，每个图表使用三小时的时间范围和五分钟的汇总[期](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#CloudWatchPeriods)。您可以在控制台中调整图表视图，但是当关闭外部密钥存储的详细信息页面或刷新浏览器时，您的更改将恢复为默认设置。有关亚马逊 CloudWatch 术语的帮助，请参阅[亚马逊 CloudWatch 概念](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)。

### 查看数据点详细信息
<a name="graph-data-point"></a>

每个图表中的数据通过 [AWS KMS 指标](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html#kms-metrics)收集。若要查看有关特定数据点的更多信息，请将鼠标悬停在折线图上的数据点上方。这将显示一个弹出窗口，其中包含有关派生该图表的指标的更多信息。每个列表项都显示记录在该数据点的[维度](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension)值。如果该数据点的维度值没有可用的指标数据，则弹出窗口将显示空值（**–**）。有些图表记录了单个数据点的多个维度和值。其他图表，例如[可靠性图表](#reliability-graph)，使用指标收集的数据来计算唯一值。每个列表项均与不同的折线图颜色关联。

### 修改时间范围
<a name="graph-time-range"></a>

若要修改[时间范围](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/modify_graph_date_time.html)，请在监控部分的右上角选择一个预定义的时间范围。预定义的时间范围从 1 小时到 1 周（**1 小时**、**3 小时**、**12 小时**、**1 天**、**3 天**或者 **1 周**）。这将调整所有图表的时间范围。如果您想查看不同时间范围内的特定图表，或者想要设置自定义时间范围，请放大图表或在 Amazon CloudWatch 控制台中查看。

### 放大图表
<a name="graph-zoom"></a>

您可以使用[缩微贴图缩放功能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/zoom-graph.html)来重点查看折线图和图表的堆叠部分，而无需在放大和缩小视图之间进行切换。例如，您可以使用缩微贴图缩放功能来重点查看折线图中的峰值，以便将该峰值与同一时间线的监控部分中的其他图表进行比较。

1. 选择并拖动要突出的图表区域，然后释放拖动对象。

1. 要重置缩放，选择 **Reset zoom**（重置缩放）图标，该图标看起来像放大镜里面包含减号 (-) 符号。

### 放大图表
<a name="graph-enlarge"></a>

若要放大图表，请选择单个图表右上角的菜单图标，然后选择 **Enlarge**（放大）。将鼠标悬停在图表上方时，也可以选择菜单图标旁边显示的放大图标。

放大图表可让您通过指定不同的时间段、自定义时间范围或刷新间隔来进一步修改图表的视图。关闭放大视图时，这些更改将恢复为默认设置。

修改时间段  

1. 选择 **Period options**（时间段选项）菜单。默认情况下，此菜单显示的值为：**5 minutes**（5 分钟）。

1. 选择一个时间段，预定义的时间段从 1 秒到 30 天不等。

   例如，您可以选择一分钟视图，这在您排查问题时会非常有用。或者，选择不太详细的一小时视图。这在您查看更大的时间范围（例如 3 天）来了解一段时间内的趋势时会很有用。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[周期](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#CloudWatchPeriods)。

修改时间范围或时区  

1. 选择一个预定义的时间范围，此范围的跨度从 1 小时到 1 周（**1 小时**、**3 小时**、**12 小时**、**1 天**、**3 天**或 **1 周**）。或者，您也可以选择 **Custom**（自定义）来设置自己的时间范围。

1. 选择 **Custom**（自定义）。

   1. *时间范围*：选择方框左上角的 **Absolute**（绝对）选项卡。使用日历选取器或文本字段框指定时间范围。

   1. *时区*：选择方框右上角的下拉菜单。您可以将时区更改为 **UTC**（协调世界时）或 **Local time zone**（本地时区）。

1. 在指定时间范围后，选择 **Apply**（应用）。

修改图表中数据的刷新频率  

1. 选择右上角的 **Refresh options**（刷新选项）菜单。

1. 选择刷新间隔（**关闭**、**10 秒**、**1 分钟**、**2 分钟**、**5 分钟**或 **15 分钟**）。

### 在 Amazon CloudWatch 控制台中查看图表
<a name="graph-in-cloudwatch"></a>

监控部分中的图表来自 AWS KMS 发布到 Amazon 的预定义指标 CloudWatch。你可以在 CloudWatch 控制台中打开它们并将其保存到 CloudWatch 仪表板中。如果您有多个外部密钥存储库，则可以在中 CloudWatch 打开它们各自的图表，并将它们保存到单个仪表板中，以比较它们的运行状况和使用情况。

**添加到 CloudWatch 控制面板**  
选择右上角的 “**添加到控制面板**”，将所有图表添加到 Amazon CloudWatch 控制面板。您可以选择现有的控制面板或创建一个新控制面板。有关使用此控制面板创建图表和警报的自定义视图的信息，请参阅《亚马逊* CloudWatch 用户指南》中的 “使用亚马逊 CloudWatch*[控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)”。

**在 CloudWatch 指标中查看**  
选择单个图表右上角的菜单图标，然后选择**在指标中查看，即可在** Amazon CloudWatch 控制台中查看此图表。在 CloudWatch 控制台中，您可以将此单个图表添加到仪表板并修改时间范围、周期和刷新间隔。有关更多信息，请参阅《*Amazon CloudWatch 用户指南》*中的 “[绘制指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)”。

## 解释图表
<a name="interpreting-graphs"></a>

AWS KMS 提供了多个图表，用于在 AWS KMS 控制台中监控外部密钥存储的运行状况。这些图表为自动配置，派生自 [AWS KMS 指标](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html#kms-metrics)。

图形数据作为您对外部密钥存储和外部密钥进行的调用的一部分收集。在您没有进行任何调用的时间范围内，您可能会看到数据填充图表，这些 AWS KMS 数据来自代表您定期`GetHealthStatus`调用以检查外部密钥存储代理和外部密钥管理器的状态。如果您的图表显示 **No data available**（无可用数据）消息，则表示在该时间范围内没有记录任何调用，或者您的外部密钥存储处于 [`DISCONNECTED`](xks-connect-disconnect.md#xks-connection-state) 状态。您可以通过[将视图调整到](#graph-time-range)更大的时间范围来确定外部密钥存储断开连接的时间。

**Topics**
+ [请求总数](#total-requests-graph)
+ [可靠性](#reliability-graph)
+ [延迟](#latency-graph)
+ [前 5 个异常](#top-5-exceptions-graph)
+ [证书过期天数](#cert-expire-graph)

### 请求总数
<a name="total-requests-graph"></a>

在给定时间范围内收到的针对特定外部密钥存储的 AWS KMS 请求总数。使用此图表来确定您是否面临节流的风险。

AWS KMS 建议您的外部密钥管理器每秒能够处理多达 1800 个加密操作请求。如果您在五分钟内接通 540000 个电话，则有节流的风险。

您可以监控外部密钥存储库中对 KMS 密钥进行加密操作的请求数量，这些请求会随该指标进行 AWS KMS 限制。[ExternalKeyStoreThrottle](monitoring-cloudwatch.md#metric-throttling)

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

总请求数图表派生自 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 指标，该指标收集有关 AWS KMS 从外部密钥存储代理收到的成功和失败响应的数据。当您[查看特定数据点](#graph-data-point)时，弹出窗口会显示该`CustomKeyStoreId`维度的值以及在该数据点记录的 AWS KMS 请求总数。`CustomKeyStoreId` 将始终相同。

### 可靠性
<a name="reliability-graph"></a>

外部密钥存储代理返回成功响应或不可重试错误的 AWS KMS 请求的百分比。使用此图表评估外部密钥存储代理的运行状况。

当图表显示的值小于 100% 时，该值表示代理没有响应，或者响应了可重试错误。这可能表明网络存在问题、外部密钥存储代理或外部密钥管理器速度缓慢或实施错误。

如果请求包含错误的凭证，且代理响应了 `AuthenticationFailedException`，则该图仍将显示 100% 的可靠性，因为代理在[外部密钥存储代理 API 请求](keystore-external.md#concept-proxy-apis)中识别出了错误的值，因此预计会出现故障。如果可靠性图表的百分比为 100%，则您的外部密钥存储代理将按预期进行响应。如果图表显示的值小于 100%，则代理会响应可重试错误或超时。例如，如果代理由于请求速率过高而响应了 `ThrottlingException`，则图表将显示较低的可靠性百分比，因为代理无法识别请求中导致其失败的特定问题。这是因为可重试错误可能是临时性问题，可以通过重试请求解决。

以下错误响应将降低可靠性百分比。您可以使用 [前 5 个异常](#top-5-exceptions-graph) 图表和 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 指标进一步监控代理返回每个可重试错误的频率。
+ `InternalException`
+ `DependencyTimeoutException`
+ `ThrottlingException`
+ `XksProxyUnreachableException`

可靠性图表源自该[XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors)指标，该指标收集有关从您的外部密钥存储代理 AWS KMS 收到的成功和失败响应的数据。只有当响应的 `ErrorType` 值为 `Retryable` 时，可靠性百分比才会降低。当您[查看特定数据点](#graph-data-point)时，弹出窗口会显示该`CustomKeyStoreId`维度的值以及在该数据点记录的 AWS KMS 请求的可靠性百分比。`CustomKeyStoreId` 将始终相同。

我们建议使用该[XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors)指标创建 CloudWatch 警报，通过在一分钟内记录超过五个可重试错误时提醒您潜在的网络问题。有关更多信息，请参阅 [创建可重试错误警报](xks-alarms.md#retryable-errors-alarm)。

### 延迟
<a name="latency-graph"></a>

外部密钥存储代理响应请求所需的毫秒数。 AWS KMS 使用此图表来评估您的外部密钥存储代理和外部密钥管理器的性能。

AWS KMS 期望外部密钥存储代理在 250 毫秒内对每个请求做出响应。如果网络超时， AWS KMS 将重试请求一次。如果代理再次失败，则记录的延迟是两次请求尝试的合计超时限制，图表将显示大约 500 毫秒。在代理未在 250 毫秒超时限制内响应的所有其他情况下，记录的延迟为 250 毫秒。如果代理在加密和解密操作时经常超时，请咨询您的外部代理管理员。有关解决延迟问题的帮助，请参阅 [延迟和超时错误](xks-troubleshooting.md#fix-xks-latency)。

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

延迟图表派生自 [XksProxyLatency](monitoring-cloudwatch.md#metric-xks-proxy-latency) 指标。当您[查看特定数据点](#graph-data-point)时，弹出窗口会显示相应的 `KmsOperation` 和 `XksOperation` 维度的值以及该数据点的操作记录的平均延迟。列表项按从最高延迟到最低延迟的顺序排列。

我们建议使用该[XksProxyLatency](monitoring-cloudwatch.md#metric-xks-proxy-latency)指标创建 CloudWatch 警报，以便在延迟接近超时限制时通知您。有关更多信息，请参阅 [创建响应超时警报](xks-alarms.md#latency-alarm)。

### 前 5 个异常
<a name="top-5-exceptions-graph"></a>

在给定时间范围内失败的加密和管理操作的前五个异常。使用此图表跟踪最常见的错误，因此您可以确定工程工作的优先顺序。

此计数包括从外部密钥存储代理 AWS KMS 收到的异常`XksProxyUnreachableException`，以及当外部密钥存储代理无法与外部密钥存储代理建立通信时在内部 AWS KMS 返回的异常。

可重试错误率高可能表示网络错误，而不可重试错误率高可能表示外部密钥存储的配置存在问题。例如，峰值`AuthenticationFailedExceptions`表示中配置的身份验证凭据与外部密钥存储代理之间存在差异。 AWS KMS 若要查看您的外部密钥存储配置，请参阅 [查看外部密钥存储](view-xks-keystore.md)。若要编辑您的外部密钥存储设置，请参阅 [编辑外部密钥存储属性](update-xks-keystore.md)。

从外部密钥存储代理 AWS KMS 收到的异常与操作失败时 AWS KMS 返回的异常不同。 AWS KMS `KMSInvalidStateException`对于所有与外部密钥存储库的外部配置或连接状态相关的故障，加密操作都会返回。若要确定问题，请使用随附的错误消息文本。

下表显示了可能出现在前 5 个异常图表中的异常以及 AWS KMS 返回给您的相应异常。


| 错误类型 | 图表中显示的异常 |  AWS KMS 返回给你的异常 | 
| --- | --- | --- | 
| 不可重试 | AccessDeniedException <br />有关问题排查帮助，请参阅[代理授权问题](xks-troubleshooting.md#fix-xks-authorization)。 | **`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | AuthenticationFailedException <br />有关问题排查帮助，请参阅[身份验证凭证错误](xks-troubleshooting.md#fix-xks-credentials)。 | **`XksProxyIncorrectAuthenticationCredentialException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 可重试 | **`DependencyTimeoutException`**<br />有关问题排查帮助，请参阅[延迟和超时错误](xks-troubleshooting.md#fix-xks-latency)。 | **`XksProxyUriUnreachableException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 可重试 | **`InternalException`**<br />外部密钥库代理拒绝了该请求，因为该请求无法与外部密钥管理器通信。验证外部密钥存储代理配置是否正确以及外部密钥管理器是否可用。 | **`XksProxyInvalidResponseException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`InvalidCiphertextException`**<br />有关问题排查帮助，请参阅[解密错误](xks-troubleshooting.md#fix-xks-decrypt)。 | **`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`InvalidKeyUsageException`**<br />有关问题排查帮助，请参阅[外部密钥的加密操作错误](xks-troubleshooting.md#fix-external-key-crypto)。 | **`XksKeyInvalidConfigurationException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`InvalidStateException`**<br />有关问题排查帮助，请参阅[外部密钥的加密操作错误](xks-troubleshooting.md#fix-external-key-crypto)。 | **`XksKeyInvalidConfigurationException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`InvalidUriPathException`**<br />有关问题排查帮助，请参阅[常规配置错误](xks-troubleshooting.md#fix-xks-gen-configuration)。 | **`XksProxyInvalidConfigurationException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`KeyNotFoundException`**<br />有关问题排查帮助，请参阅[外部密钥错误](xks-troubleshooting.md#fix-external-key)。 | **`XksKeyNotFoundException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 可重试 | **`ThrottlingException`**<br />由于请求速率过高，外部密钥存储代理拒绝了该请求。使用外部密钥存储中的 KMS 密钥降低调用频率。 | **`XksProxyUriUnreachableException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`UnsupportedOperationException`**<br />有关问题排查帮助，请参阅[外部密钥的加密操作错误](xks-troubleshooting.md#fix-external-key-crypto)。 | **`XksKeyInvalidResponseException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 不可重试 | **`ValidationException`**<br />有关问题排查帮助，请参阅[代理问题](xks-troubleshooting.md#fix-xks-proxy)。 | **`XksProxyInvalidResponseException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 
| 可重试 | **`XksProxyUnreachableException`**<br />如果您反复看到此错误，请验证您的外部密钥存储代理是否处于活动状态并已连接到网络，以及其在外部密钥存储中的 URI 路径和端点 URI 或 VPC 服务名称是否正确。 | **`XksProxyUriUnreachableException`** 响应 `CreateCustomKeyStore` 和 `UpdateCustomKeyStore` 操作。<br />**`CustomKeyStoreInvalidStateException`** 响应 `CreateKey` 操作。<br />**`KMSInvalidStateException`** 响应加密操作。 | 

前 5 个异常图表派生自 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 指标。当您[查看特定数据点](#graph-data-point)时，弹出窗口会显示 `ExceptionName` 维度的值以及在该数据点记录的异常的次数。五个列表项按最常见的异常到最少见的异常顺序排列。

我们建议使用该[XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors)指标创建 CloudWatch 警报，通过在一分钟内记录超过五个不可重试的错误时提醒您潜在的配置问题。有关更多信息，请参阅 [创建不可重试错误警报](xks-alarms.md#nonretryable-errors-alarm)。

### 证书过期天数
<a name="cert-expire-graph"></a>

距离您的外部密钥存储代理端点（`XksProxyUriEndpoint`）的 TLS 证书过期的天数。使用此图表监控即将过期的 TLS 证书。

证书过期后， AWS KMS 无法与外部密钥存储代理通信。在您续订证书之前，外部密钥存储中所有受 KMS 密钥保护的数据都将不可访问。

距离证书过期的天数图表派生自 [XksProxyCertificateDaysToExpire](monitoring-cloudwatch.md#metric-xks-proxy-certificate-days-to-expire) 指标。我们强烈建议您使用此指标来创建 CloudWatch 警报，通知您即将到期。证书过期可能会影响您访问加密资源。设置警报，让您的组织有时间在证书过期之前续订证书。有关更多信息，请参阅 [创建证书到期警报](xks-alarms.md#cert-expire-alarm)。