使用 Amazon 監控 CloudWatch - AWS Key Management Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon 監控 CloudWatch

您可以AWS KMS keys使用 Amazon 監控您的使用情況 CloudWatch,這是一項AWS服務,可將原始資料收集並處理AWS KMS成可讀且近乎即時的指標。這些資料會保留 2 週,因此您可以存取歷史資訊,更加了解您 KMS 金鑰的使用情形及其隨時間的變更。

您可以使用 Amazon CloudWatch 提醒您重要事件,例如以下事件。

  • KMS 金鑰中匯入的金鑰材料接近其過期日期。

  • 仍然會使用等待刪除的 KMS 金鑰。

  • KMS 金鑰中的金鑰材料會自動輪換。

  • 已刪除 KMS 金鑰。

您也可以建立 Amazon CloudWatch 警示,以便在請求率達到配額值的特定百分比時提醒您。如需詳細資訊,請參閱AWS安全部落格 CloudWatch中的使用 Service Quotas 和 Amazon 管理 AWS KMS API 請求費率

AWS KMS 指標與維度

AWS KMS預先定義 Amazon CloudWatch 指標,讓您更輕鬆地監控重要資料和建立警示。您可以使用AWS Management Console和 Amazon CloudWatch API 查看AWS KMS指標。

本節列出每個AWS KMS量度和每個量度的維度,並提供一些根據這些量度和維度建立 CloudWatch 警示的基本指引。

注意

維度群組名稱

若要在 Amazon CloudWatch 主控台中檢視指標,請在「指」區段中選取維度群組名稱。然後,您可以按 Metric name (指標名稱) 進行篩選。本主題包括每個 AWS KMS 指標的指標名稱和維度群組名稱。

SecondsUntilKeyMaterialExpiration

KMS 金鑰中匯入金鑰材料過期之前所剩的秒數。此指標僅對具有匯入金鑰材料 (EXTERNAL金鑰材料來源) 和到期日的 KMS 金鑰有效。

使用此指標可追蹤匯入金鑰資料過期之前所剩的時間。當該時間低於您定義的閾值時,您可能會重新匯入具有新到期日期的金鑰材料。該 SecondsUntilKeyMaterialExpiration 指標專用於 KMS 金鑰。您無法使用此指標來監控多個 KMS 金鑰或您可能在將來建立的 KMS 金鑰。如需建立 CloudWatch 警示以監視此指標的說明,請參閱建立匯入金鑰材料到期的 CloudWatch 警示

此指標最實用的統計數字是 Minimum,其會告訴您指定統計週期內所有資料點之剩餘時間的最小數量。此指標的唯一有效單位是 Seconds

維度群組名稱Per-Key Metrics (每個金鑰指標)

SecondsUntilKeyMaterialExpiration 的維度
維度 描述;與 AWS 相關
KeyId 每個 KMS 金鑰的值。

ExternalKeyStoreThrottle

AWS KMS 限流 (以 ThrottlingException 回應) 的每個外部金鑰存放區中 KMS 金鑰的密碼編譯操作請求數目。此指標只適用於外部金鑰存放區

此指ExternalKeyStoreThrottle標僅適用於外部金鑰存放區中的 KMS 金鑰,而且僅適用於密碼編譯作業和DescribeKey作業的要求。 AWS KMS當要求率超過外部金鑰存放區的自訂金鑰存放區要求配額時,會調節這些要求。此指標不包括外部金鑰存放區代理或外部金鑰管理器的限流。

使用此指標可檢閱和調整自訂金鑰存放區請求配額的值。如果此指標指示 AWS KMS 經常對這些 KMS 金鑰的請求進行限流,您可能會考慮請求增加自訂金鑰存放區請求配額值。如需相關說明,請參閱《Service Quotas 使用者指南》中的請求提升配額

如果您經常收到 KMSInvalidStateException 錯誤,並且訊息說明「因為請求率非常高」而拒絕請求,或「因為外部金鑰存放區代理未及時回應」而拒絕請求,則可能表示您的外部金鑰管理器或外部金鑰存放區代理無法跟上目前的請求率。如果可能,請降低您的請求率。您也可以考慮請求減少自訂金鑰存放區請求配額值。減少此配額值可能會增加限流 (以及 ExternalKeyStoreThrottle 指標值),但表示在傳送至外部金鑰存放區代理或外部金鑰管理器之前,AWS KMS 會快速拒絕多餘的請求。若要請求減少配額,請造訪 AWS Support 中心並建立案例。

維度群組名稱Keystore Throttle Metrics (金鑰存放區限流指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。
KmsOperation 每個 AWS KMS API 操作的值。此指標僅適用於密碼編譯操作和外部金鑰存放區中 KMS 金鑰的 DescribeKey 操作。
KeySpec 每個 KMS 金鑰類型的值。外部金鑰存放區中 KMS 金鑰的唯一受支援的金鑰規格為 SYMMETRIC_DEFAULT。

XksProxyCertificateDaysToExpire

外部金鑰存放區代理端點 (XksProxyUriEndpoint) 的 TLS 憑證到期前的天數。此指標只適用於外部金鑰存放區

使用此指標建立 CloudWatch 警示,通知您 TLS 憑證即將到期。憑證到期時,AWS KMS 無法與外部金鑰存放區代理通訊。在您續約憑證之前,外部金鑰存放區中受 KMS 金鑰保護的所有資料都無法存取。

憑證警示可防止憑證過期,這可能使您無法存取已加密的資源。設定警示可讓組織有時間在憑證過期之前續約憑證。

維度群組名稱XKS Proxy Certificate Metrics (XKS 代理憑證指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。
CertificateName TLS 憑證中的主體名稱 (CN)。

XksProxyCredentialAge

自當前外部金鑰存放區代理身分驗證憑證 (XksProxyAuthenticationCredential) 與外部金鑰存放區相關聯之後的天數。當您在建立或更新外部金鑰存放區時輸入身分驗證憑證,此計數便會開始。此指標只適用於外部金鑰存放區

此值旨在提醒您身分驗證憑證的有效期。但是,由於我們會在您將憑證與外部金鑰存放區建立關聯時開始計數,而不是在外部金鑰存放區代理上建立身分驗證憑證時,因此這可能不是代理上憑證有效期的準確指標。

使用此度量建立 CloudWatch 警示,提醒您輪換外部金鑰存放區 Proxy 驗證認證。

維度群組名稱Per-Keystore Metrics (每個金鑰存放區指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。

XksProxyErrors

外部金鑰存放區代理的 AWS KMS 請求相關的例外狀況數。此計數包括外部金鑰存放區代理傳回給 AWS KMS 的例外狀況,以及當外部金鑰存放區代理未在 250 毫秒逾時間隔內回應 AWS KMS 時發生的逾時錯誤。此指標只適用於外部金鑰存放區

使用此指標可追蹤外部金鑰存放區中 KMS 金鑰的錯誤率。它顯示了最常見的錯誤,因此您可以優先考慮工程工作。例如,產生高速率不可重試錯誤的 KMS 金鑰可能表示外部金鑰存放區的組態有問題。若要檢視外部金鑰存放區組態,請參閱 檢視外部金鑰存放區。若要編輯外部金鑰存放區設定,請參閱 編輯外部金鑰存放區屬性

維度群組名稱XKS Proxy Error Metrics (XKS 代理錯誤指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。
KmsOperation 對 XKS 代理產生請求的每個 AWS KMS API 操作的值。
XksOperation 每個外部金鑰存放區代理 API 操作的值。
KeySpec 每個 KMS 金鑰類型的值。外部金鑰存放區中 KMS 金鑰的唯一受支援的金鑰規格為 SYMMETRIC_DEFAULT。
ErrorType 數值:
  • 可重試的錯誤:可能是暫時性的,例如網路錯誤。

  • 不可重試的錯誤:可能表示自訂金鑰存放區組態或外部元件有問題。

  • N/A:請求成功;沒有錯誤

ExceptionName

數值:

  • 例外狀況的名稱

  • 無:請求成功;沒有錯誤

XksExternalKeyManagerStates

下列每個運作狀態中的外部金鑰管理器執行個體的數目計數:ActiveDegradedUnavailable。此指標的資訊來自與每個外部金鑰存放區關聯的外部金鑰存放區代理。此指標只適用於外部金鑰存放區

以下是與外部金鑰存放區相關聯之外部金鑰管理器執行個體的運作狀態。每個外部金鑰存放區代理可能會使用不同的指標來測量外部金鑰管理器的運作狀態。如需詳細資訊,請參閱外部金鑰存放區代理的文件。

  • Active:外部金鑰管理器運作正常。

  • Degraded:外部金鑰管理器運作不正常,但仍可提供流量

  • Unavailable:外部金鑰管理器無法提供流量。

使用此測量結果可建立警示, CloudWatch 警示您降級和無法使用的外部金鑰管理員執行個體。若要確定處於每個狀態的外部金鑰管理器執行個體,請參閱外部金鑰存放區代理日誌。

維度群組名稱XKS External Key Manager Metrics (XKS 外部金鑰管理器指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。
XksExternalKeyManagerState 每個運作狀態的值。

XksProxyLatency

外部金鑰存放區代理回應 AWS KMS 請求所需的毫秒數。如果請求逾時,則記錄的值為 250 毫秒逾時限制。此指標只適用於外部金鑰存放區

使用此指標可評估外部金鑰存放區代理和外部金鑰管理器的效能。例如,如果代理在加密和解密操作中經常逾時,請咨詢您的外部代理管理員。

回應緩慢也可能表示您的外部金鑰管理器無法處理當前的請求流量。AWS KMS 建議您的外部金鑰管理器每秒最多可處理 1800 個密碼編譯操作請求。如果您的外部金鑰管理器無法處理每秒 1800 個請求,請考慮請求減少自訂金鑰存放區中 KMS 金鑰的請求配額。使用外部金鑰存放區中的 KMS 金鑰進行密碼編譯操作的請求會快速檢錯,並發生限流例外狀況,而不是被外部金鑰存放區代理或外部金鑰管理器處理並拒絕。

維度群組名稱XKS Proxy Latency Metrics (XKS 代理延遲指標)

維度 描述
CustomKeyStoreId 每個外部金鑰存放區的值。
KmsOperation 對 XKS 代理產生請求的每個 AWS KMS API 操作的值。
XksOperation 每個外部金鑰存放區代理 API 操作的值。
KeySpec 每個 KMS 金鑰類型的值。外部金鑰存放區中 KMS 金鑰的唯一受支援的金鑰規格為 SYMMETRIC_DEFAULT。

檢視 AWS KMS 指標

您可以使用AWS Management Console和 Amazon CloudWatch API 查看AWS KMS指標。

使用 CloudWatch 主控台檢視指標
  1. 請在以下位置開啟 CloudWatch 主控台。 https://console.aws.amazon.com/cloudwatch/

  2. 如有必要請變更區域。請在導覽列中選擇您的 AWS 資源所在的區域。

  3. 在導覽窗格中,選擇 Metrics (指標)、All metrics (所有指標)。

  4. Browse (瀏覽) 索引標籤上,搜尋 KMS,然後選擇 KMS

  5. 選擇要檢視的指標之維度群組名稱。

    例如,若為 SecondsUntilKeyMaterialExpiration 指標,請選擇 Per-Key Metrics (每個金鑰指標)。

  6. 如需指標值的圖表,請選擇指標名稱,然後選擇 Add to graph。若要將折線圖轉換為值,請選擇 Line (線條),然後選擇 Number (數字)。

若要使用 Amazon CloudWatch API 檢視指標

若要使用 AWS KMS CloudWatch API 檢視指標,請傳送Namespace設定為的ListMetrics要求AWS/KMS。以下範例顯示如何使用 AWS Command Line Interface (AWS CLI) 執行此作業。

$ aws cloudwatch list-metrics --namespace AWS/KMS { "Metrics": [ { "Namespace": "AWS/KMS", "MetricName": "SecondsUntilKeyMaterialExpiration", "Dimensions": [ { "Name": "KeyId", "Value": "1234abcd-12ab-34cd-56ef-1234567890ab" } ] }, { "Namespace": "AWS/KMS", "MetricName": "ExtenalKeyStoreThrottle", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" }, { "Name": "KmsOperation", "Value": "Encrypt" }, { "Name": "KeySpec", "Value": "SYMMETRIC_DEFAULT" } ] }, { "Namespace": "AWS/KMS", "MetricName": "XksProxyCertificateDaysToExpire", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" }, { "Name": "CertificateName", "Value": "myproxy.xks.example.com" } ] }, { "Namespace": "AWS/KMS", "MetricName": "XksProxyCredentialAge", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" } ] }, { "Namespace": "AWS/KMS", "MetricName": "XksProxyErrors", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" }, { "Name": "KmsOperation", "Value": "Decrypt" }, { "Name": "XksOperation", "Value": "Decrypt" }, { "Name": "KeySpec", "Value": "SYMMETRIC_DEFAULT" }, { "Name": "ErrorType", "Value": "Retryable errors" }, { "Name": "ExceptionName", "Value": "KMSInvalidStateException" } ] }, { "Namespace": "AWS/KMS", "MetricName": "XksProxyHsmStates", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" }, { "Name": "XksProxyHsmState", "Value": "Active" } ] }, { "Namespace": "AWS/KMS", "MetricName": "XksProxyLatency", "Dimensions": [ { "Name": "CustomKeyStoreId", "Value": "cks-1234567890abcdef0" }, { "Name": "KmsOperation", "Value": "Decrypt" }, { "Name": "XksOperation", "Value": "Decrypt" }, { "Name": "KeySpec", "Value": "SYMMETRIC_DEFAULT" } ] } ] }

建立 CloudWatch 警示以監控 KMS 金鑰

您可以根據AWS KMS指標建立 Amazon CloudWatch 警示。當指標值超過警示組態中指定的閾值時,警示會傳送電子郵件訊息。警示可將電子郵件訊息傳送至 Amazon Simple Notification Service (Amazon SNS) 主題Amazon EC2 Auto Scaling 政策。如需 CloudWatch 警示的詳細資訊,請參閱 Amazon 使用 CloudWatch 者指南中的使用 Amazon CloudWatch 警示

為即將到期的匯入金鑰資料建立警示

您可以使用指SecondsUntilKeyMaterialExpiration標建立 CloudWatch 警示,以便在 KMS 金鑰中匯入的金鑰材料即將到期時通知您。

當您匯入金鑰資料至 KMS 金鑰時,您可以選擇指定該金鑰資料的到期日期和時間。當金鑰材料過期時,AWS KMS 會刪除金鑰材料,讓 KMS 金鑰變成不可用。若要再次使用 KMS 金鑰,您必須重新匯入金鑰資料

如需說明,請參閱建立匯入金鑰材料到期的 CloudWatch 警示

建立等待刪除之 KMS 金鑰的使用情形的警示

當您排程刪除 KMS 金鑰時,AWS KMS 會在刪除 KMS 金鑰之前強制執行等待期間。您可以利用等待期間來確保您現在或未來都不需要該 KMS 金鑰。您也可以設定警 CloudWatch示,以便在等待期間的人員或應用程式嘗試在密碼編譯作業中使用 KMS 金鑰時發出警告。如果您收到這類警示的通知,您可能需要取消刪除 KMS 金鑰。

如需說明,請參閱建立警示,偵測正在等待刪除之 KMS 金鑰的使用情況

建立警示以監控外部金鑰存放區

您可以根據外部金鑰存放區和外部金鑰存放區中的 KMS 金鑰指標建立 CloudWatch 警示。

例如,我們建議您設定 CloudWatch 警示,以便在外部金鑰存放區的 TLS 憑證即將到期 (XksProxyCertificateDaysToExpire)、您的外部金鑰存放區 Proxy 報告外部金鑰管理員執行個體處於降級或無法使用狀態時通知您 (XksProxyHsmStates)。

如需說明,請參閱 監控外部金鑰存放區