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

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

监控外部密钥存储

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

查看图表

您可以在不同的详细程度下查看图表。默认情况下,每个图表使用三小时的时间范围和五分钟的汇总。您可以在控制台中调整图表视图,但是当关闭外部密钥存储的详细信息页面或刷新浏览器时,您的更改将恢复为默认设置。有关 Amazon CloudWatch 术语的帮助,请参阅 Amazon CloudWatch 的概念

查看数据点详细信息

每个图表中的数据通过 Amazon KMS 指标收集。若要查看有关特定数据点的更多信息,请将鼠标悬停在折线图上的数据点上方。这将显示一个弹出窗口,其中包含有关派生该图表的指标的更多信息。每个列表项都显示记录在该数据点的维度值。如果该数据点的维度值没有可用的指标数据,则弹出窗口将显示空值()。有些图表记录了单个数据点的多个维度和值。其他图表,例如可靠性图表,使用指标收集的数据来计算唯一值。每个列表项均与不同的折线图颜色关联。

修改时间范围

若要修改时间范围,请在监控部分的右上角选择一个预定义的时间范围。预定义的时间范围从 1 小时到 1 周(1 小时3 小时12 小时1 天3 天或者 1 周)。这将调整所有图表的时间范围。如果您想在不同的时间范围内查看一个特定的图表,或者想要设置自定义时间范围,请放大图表或在 Amazon CloudWatch 控制台中查看。

放大图表

您可以使用缩微贴图缩放功能来重点查看折线图和图表的堆叠部分,而无需在放大和缩小视图之间进行切换。例如,您可以使用缩微贴图缩放功能来重点查看折线图中的峰值,以便将该峰值与同一时间线的监控部分中的其他图表进行比较。

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

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

放大图表

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

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

修改时间段
  1. 选择 Period options(时间段选项)菜单。默认情况下,此菜单显示的值为:5 minutes(5 分钟)。

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

    例如,您可以选择一分钟视图,这在您排查问题时会非常有用。或者,选择不太详细的一小时视图。这在您查看更大的时间范围(例如 3 天)来了解一段时间内的趋势时会很有用。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的时间段

修改时间范围或时区
  1. 选择一个预定义的时间范围,此范围的跨度从 1 小时到 1 周(1 小时3 小时12 小时1 天3 天1 周)。或者,您也可以选择 Custom(自定义)来设置自己的时间范围。

  2. 选择 Custom(自定义)。

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

    2. 时区:选择方框右上角的下拉菜单。您可以将时区更改为 UTC(协调世界时)或 Local time zone(本地时区)。

  3. 在指定时间范围后,选择 Apply(应用)。

修改图表中数据的刷新频率
  1. 选择右上角的 Refresh options(刷新选项)菜单。

  2. 选择刷新间隔(关闭10 秒1 分钟2 分钟5 分钟15 分钟)。

在 Amazon CloudWatch 控制台中查看指标

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

添加到 CloudWatch 控制面板

选择右上角的 Add to dashboard(添加到控制面板),将所有图表添加到 Amazon CloudWatch 控制面板。您可以选择现有的控制面板或创建一个新控制面板。有关使用此控制面板创建图表和警报的自定义视图的信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch 控制面板

在 CloudWatch 指标中查看

选择单个图表右上角的菜单图标,然后选择 View in metrics(在指标中查看)以在 Amazon CloudWatch 控制台中查看此图表。在 CloudWatch 控制台中,您可以将此单个图表添加到控制面板并修改时间范围、时间段和刷新间隔。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的绘制指标的图表

解释图表

Amazon KMS 提供了多个图表来监控 Amazon KMS 控制台中的外部密钥存储的运行状况。这些图表为自动配置,派生自 Amazon KMS 指标

图形数据作为您对外部密钥存储和外部密钥进行的调用的一部分收集。在您未进行任何调用的时间范围内,您可能会看到数据填充图表,此数据来自 Amazon KMS 代表您进行的定期 GetHealthStatus 调用,以检查外部密钥存储代理和外部密钥管理器的状态。如果您的图表显示 No data available(无可用数据)消息,则表示在该时间范围内没有记录任何调用,或者您的外部密钥存储处于 DISCONNECTED 状态。您可以通过将视图调整到更大的时间范围来确定外部密钥存储断开连接的时间。

请求总数

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

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

您可以监控外部密钥存储中 Amazon KMS 使用 ExternalKeyStoreThrottle 指标进行节流的 KMS 密钥的加密操作请求数量。

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

总请求数图表派生自 XksProxyErrors 指标,该指标收集有关 Amazon KMS 从外部密钥存储代理收到的成功和失败响应的数据。当您查看特定数据点时,弹出窗口会显示 CustomKeyStoreId 维度的值以及在该数据点记录的 Amazon KMS 请求总数。CustomKeyStoreId 将始终相同。

可靠性

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

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

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

以下错误响应将降低可靠性百分比。您可以使用 前 5 个异常 图表和 XksProxyErrors 指标进一步监控代理返回每个可重试错误的频率。

  • InternalException

  • DependencyTimeoutException

  • ThrottlingException

  • XksProxyUnreachableException

可靠性图表派生自 XksProxyErrors 指标,该指标收集有关 Amazon KMS 从外部密钥存储代理收到的成功和失败响应的数据。只有当响应的 ErrorType 值为 Retryable 时,可靠性百分比才会降低。当您查看特定数据点时,弹出窗口会显示 CustomKeyStoreId 维度的值以及在该数据点记录的 Amazon KMS 请求的可靠性百分比。CustomKeyStoreId 将始终相同。

我们建议使用 XksProxyErrors 指标创建 CloudWatch 警报,以在一分钟内记录了超过 5 个可重试错误时通知您潜在的网络问题。有关更多信息,请参阅创建可重试错误的 Amazon CloudWatch 警报

延迟

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

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

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

延迟图表派生自 XksProxyLatency 指标。当您查看特定数据点时,弹出窗口会显示相应的 KmsOperationXksOperation 维度的值以及该数据点的操作记录的平均延迟。列表项按从最高延迟到最低延迟的顺序排列。

我们建议使用 XksProxyLatency 指标创建 CloudWatch 警报,当延迟接近超时限制时,该警报会通知您。有关更多信息,请参阅为响应超时创建 Amazon CloudWatch 警报

前 5 个异常

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

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

可重试错误率高可能表示网络错误,而不可重试错误率高可能表示外部密钥存储的配置存在问题。例如,AuthenticationFailedExceptions 中的峰值表示 Amazon KMS 中配置的身份验证凭证与外部密钥存储代理之间存在差异。若要查看您的外部密钥存储配置,请参阅 查看外部密钥存储。若要编辑您的外部密钥存储设置,请参阅 编辑外部密钥存储属性

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

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

错误类型 图表中显示的异常 Amazon KMS 向您返回的异常
不可重试 AccessDeniedException

有关问题排查帮助,请参阅代理授权问题

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试 AuthenticationFailedException

有关问题排查帮助,请参阅身份验证凭证错误

XksProxyIncorrectAuthenticationCredentialException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

可重试

DependencyTimeoutException

有关问题排查帮助,请参阅延迟和超时错误

XksProxyUriUnreachableException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

可重试

InternalException

外部密钥库代理拒绝了该请求,因为该请求无法与外部密钥管理器通信。验证外部密钥存储代理配置是否正确以及外部密钥管理器是否可用。

XksProxyInvalidResponseException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

InvalidCiphertextException

有关问题排查帮助,请参阅解密错误

KMSInvalidStateException 响应加密操作。

不可重试

InvalidKeyUsageException

有关问题排查帮助,请参阅外部密钥的加密操作错误

XksKeyInvalidConfigurationException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

InvalidStateException

有关问题排查帮助,请参阅外部密钥的加密操作错误

XksKeyInvalidConfigurationException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

InvalidUriPathException

有关问题排查帮助,请参阅常规配置错误

XksProxyInvalidConfigurationException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

KeyNotFoundException

有关问题排查帮助,请参阅外部密钥错误

XksKeyNotFoundException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

可重试

ThrottlingException

由于请求速率过高,外部密钥存储代理拒绝了该请求。使用外部密钥存储中的 KMS 密钥降低调用频率。

XksProxyUriUnreachableException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

UnsupportedOperationException

有关问题排查帮助,请参阅外部密钥的加密操作错误

XksKeyInvalidResponseException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

不可重试

ValidationException

有关问题排查帮助,请参阅代理问题

XksProxyInvalidResponseException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

可重试

XksProxyUnreachableException

如果您反复看到此错误,请验证您的外部密钥存储代理是否处于活动状态并已连接到网络,以及其在外部密钥存储中的 URI 路径和端点 URI 或 VPC 服务名称是否正确。

XksProxyUriUnreachableException 响应 CreateCustomKeyStoreUpdateCustomKeyStore 操作。

CustomKeyStoreInvalidStateException 响应 CreateKey 操作。

KMSInvalidStateException 响应加密操作。

前 5 个异常图表派生自 XksProxyErrors 指标。当您查看特定数据点时,弹出窗口会显示 ExceptionName 维度的值以及在该数据点记录的异常的次数。五个列表项按最常见的异常到最少见的异常顺序排列。

我们建议使用 XksProxyErrors 指标创建 CloudWatch 警报,以在一分钟内记录了超过 5 个可重试错误时通知您潜在的配置问题。有关更多信息,请参阅创建不可重试错误的 Amazon CloudWatch 警报

证书过期天数

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

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

距离证书过期的天数图表派生自 XksProxyCertificateDaysToExpire 指标。我们强烈建议使用此指标创建 CloudWatch 警报,该警报会通知您关于即将过期的信息。证书过期可能会影响您访问加密资源。设置警报,让您的组织有时间在证书过期之前续订证书。有关更多信息,请参阅创建证书过期的 Amazon CloudWatch 警报

设置警报

监控部分中的图表概述了给定时间段内外部密钥存储和外部密钥存储中 KMS 密钥的运行状况。但是,您可以根据外部密钥存储指标创建 Amazon CloudWatch 警报,以便在指标值超过您指定的阈值时通知您。警报可以将消息发送到 Amazon Simple Notification Service(Amazon SNS)主题Amazon EC2 Auto Scaling 策略。有关 CloudWatch 警报的详细信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch 警报

创建 Amazon CloudWatch 警报之前,需要一个 Amazon SNS 主题。有关详细信息,请参阅 Amazon CloudWatch CloudWatch 用户指南中的创建 Amazon SNS 主题

创建证书过期的 Amazon CloudWatch 警报

此警报使用 Amazon KMS 发布到 CloudWatch 的 XksProxyCertificateDaysToExpire 指标来记录与外部密钥存储代理端点关联的 TLS 证书的预期过期时间。您无法为账户中的所有外部密钥存储创建单个警报,也无法为将来可能会创建的外部密钥存储创建警报。

我们建议将警报设置为在证书将要过期的前 10 天提醒您,但您应设置最适合您需求的阈值。

创建警报

使用以下必填值,按照基于静态阈值创建 CloudWatch 警报中的说明进行操作。对于其他字段,请接受默认值并按要求提供名称。

字段
选择指标

选择 KMS,然后选择 XKS Proxy Certificate Metrics(XKS 代理证书指标)。

选中要监控的 XksProxyCertificateName 旁的复选框。

然后选择 Select metric(选择指标)

统计数据 最低
周期 5 分钟
阈值类型 静态
当 ... 每当 XksProxyCertificateDaysToExpire Lower 10 时。

为响应超时创建 Amazon CloudWatch 警报

此警报使用 Amazon KMS 发布到 CloudWatch 的 XksProxyLatency 指标来记录外部密钥存储代理响应 Amazon KMS 请求所需的毫秒数。您无法为账户中的所有外部密钥存储创建单个警报,也无法为将来可能会创建的外部密钥存储创建警报。

Amazon KMS 希望外部密钥存储代理在 250 毫秒内响应每个请求。我们建议设置警报,以在外部密钥存储代理响应时间超过 200 毫秒时提醒您,但您应该设置最适合您需求的阈值。

创建警报

使用以下必填值,按照基于静态阈值创建 CloudWatch 警报中的说明进行操作。对于其他字段,请接受默认值并按要求提供名称。

字段
选择指标

选择 KMS,然后选择 XKS Proxy Latency Metrics(XKS 代理延迟指标)。

选中要监控的 KmsOperation 旁的复选框。

然后选择 Select metric(选择指标)

统计数据 平均值
周期 5 分钟
阈值类型 静态
当 ... 每当 XksProxyLatency Greater 200 时。

创建可重试错误的 Amazon CloudWatch 警报

此警报使用 Amazon KMS 发布到 CloudWatch 的 XksProxyErrors 指标来记录与向外部密钥存储代理发出的 Amazon KMS 请求相关的异常数量。您无法为账户中的所有外部密钥存储创建单个警报,也无法为将来可能会创建的外部密钥存储创建警报。

可重试错误会降低您的可靠性百分比,并可能表示网络错误。我们建议设置警报,以在一分钟内记录超过五个可重试错误时提醒您,但您应该设置最适合您需求的阈值。

使用以下必填值,按照基于静态阈值创建 CloudWatch 警报中的说明进行操作。对于其他字段,请接受默认值并按要求提供名称。

字段
选择指标

选择 Query(查询)选项卡。

对于 Namespace(命名空间),选择 AWS/KMS

对于 Metric name(指标名称),输入 SUM(XksProxyErrors)

对于 Filter by(筛选条件),输入 ErrorType = Retryable

选择 Run(运行)。然后选择 Select metric(选择指标)

标签 可重试错误
周期 1 minute
阈值类型 静态
当 ... 每当 q1 Greater 5 时。

创建不可重试错误的 Amazon CloudWatch 警报

此警报使用 Amazon KMS 发布到 CloudWatch 的 XksProxyErrors 指标来记录与向外部密钥存储代理发出的 Amazon KMS 请求相关的异常数量。您无法为账户中的所有外部密钥存储创建单个警报,也无法为将来可能会创建的外部密钥存储创建警报。

不可重试错误可能表示您的外部密钥存储的配置存在问题。我们建议设置警报,以在一分钟内记录超过五个不可重试错误时提醒您,但您应该设置最适合您需求的阈值。

使用以下必填值,按照基于静态阈值创建 CloudWatch 警报中的说明进行操作。对于其他字段,请接受默认值并按要求提供名称。

字段
选择指标

选择 Query(查询)选项卡。

对于 Namespace(命名空间),选择 AWS/KMS

对于 Metric name(指标名称),输入 SUM(XksProxyErrors)

对于 Filter by(筛选条件),输入 ErrorType = Non-retryable

选择 Run(运行)。然后选择 Select metric(选择指标)

标签 不可重试错误
周期 1 minute
阈值类型 静态
当 ... 每当 q1 Greater 5 时。