連接和中斷連接外部金鑰存放區 - AWS Key Management Service

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

連接和中斷連接外部金鑰存放區

新的外部金鑰存放區未連接。若要在外部金鑰存放區中建立和使用 AWS KMS keys,您需要將外部金鑰存放區連接至其外部金鑰存放區代理。您可以隨時連接和中斷連接您的外部金鑰存放區,並且檢視其連接狀態

當您的外部金鑰存放區中斷連接時,AWS KMS 無法與外部金鑰存放區代理進行通訊。因此,您可以檢視和管理外部金鑰存放區和其現有 KMS 金鑰。但是,您無法在外部金鑰存放區中建立 KMS 金鑰,或在密碼編譯操作中使用其 KMS 金鑰。您可能需要在某些時候中斷連接外部金鑰存放區,例如在編輯其屬性時,但需要進行相應的規劃。中斷連接金鑰存放區可能會中斷使用其 KMS 金鑰之 AWS 服務的操作。

您不需要連接您的外部金鑰存放區。您可以將外部金鑰存放區無限期保留在中斷連接狀態,並只在您需要使用它時連接它。不過,您可能希望定期測試連接,以驗證設定正確並且可連接。

當您中斷連接自訂金鑰存放區時,該金鑰存放區中的 KMS 金鑰會立即變成無法使用 (視最終一致性而定)。不過,使用受 KMS 金鑰保護之資料金鑰所加密的資源不會受影響,除非再次使用 KMS 金鑰 (例如解密資料金鑰)。此問題會影響 AWS 服務,其中許多服務會使用資料金鑰來保護您的資源。如需詳細資訊,請參閱 無法使用的 KMS 金鑰如何影響資料金鑰

注意

僅當金鑰存放區從未連接或明確中斷連接時,外部金鑰存放區才會處於 DISCONNECTED 狀態。CONNECTED 狀態並不表示外部金鑰存放區或其支援元件正在高效運作。如需外部金鑰存放區元件效能的相關資訊,請參閱每個外部金鑰存放區詳細資訊頁面之 Monitoring (監控) 區段中的圖表。如需詳細資訊,請參閱 監控外部金鑰存放區

您的外部金鑰管理器可能會提供其他方法來停止和重新啟動 AWS KMS 外部金鑰存放區與外部金鑰存放區代理之間的通訊,或者外部金鑰存放區代理與外部金鑰管理器之間的通訊。如需詳細資訊,請參閱外部金鑰管理器文件。

連接外部金鑰存放區

外部金鑰存放區連接到其外部金鑰存放區代理時,您可以在外部金鑰存放區中建立 KMS 金鑰,並在密碼編譯操作中使用其現有的 KMS 金鑰。

將外部金鑰存放區連接至其外部金鑰存放區代理的程序會有所不同,這取決於外部金鑰存放區的連接。

連接操作開始了連接自訂金鑰存放區的過程,但將外部金鑰存放區連接到其外部代理大約需要五分鐘。來自連接操作的成功回應並不表示外部金鑰存放區已連接。若要確認連線成功,請使用AWS KMS主控台或DescribeCustomKeyStores作業來檢視金鑰存放區外部的連線狀態

當連接狀態為 FAILED 時,AWS KMS 主控台中會顯示連接錯誤代碼,並會新增到 DescribeCustomKeyStore 回應中。如需有關解譯連接錯誤代碼的說明,請參閱 外部金鑰存放區的連接錯誤代碼

中斷連接外部金鑰存放區

當您中斷具有 VPC 端點服務連接的外部金鑰存放區與其外部金鑰存放區代理的連接時,AWS KMS 會刪除其與 VPC 端點服務的介面端點,並移除其為支援連接而建立的網路基礎設施。具有公有端點連接的外部金鑰存放區不需要同等程序。此動作不會影響 VPC 端點服務或其任何支援元件,也不會影響外部金鑰存放區代理或任何外部元件。

當外部金鑰存放區中斷連接時,AWS KMS 不會傳送任何請求至外部金鑰存放區代理。外部金鑰存放區的連接狀態為 DISCONNECTED。中斷連接的外部金鑰存放區中的 KMS 金鑰處於 UNAVAILABLE 金鑰狀態 (除非其為待刪除),這表示其無法用於密碼編譯操作。但是,您仍可以檢視和管理外部金鑰存放區和其現有 KMS 金鑰。

中斷連接狀態被設計為暫時且可還原的。您可以隨時重新連接外部金鑰存放區。通常,不需要重新設定。但是,如果相關聯的外部金鑰存放區代理的任何屬性在中斷連接時發生變更,例如其代理身分驗證憑證的輪換,則必須先編輯外部金鑰存放區設定,才能重新連接。

注意

當自訂金鑰存放區中斷連接時,所有在自訂金鑰存放區中建立 KMS 金鑰的嘗試,或在密碼編譯操作中使用現有 KMS 金鑰的嘗試,均會失敗。此動作可防止使用者存放和存取敏感資料。

若要更好地預估中斷連接您的外部金鑰存放區的效果,請在外部金鑰存放區中識別 KMS 金鑰,並判斷其過去的使用情形

您可能中斷連接外部金鑰存放區的原因如下所示:

  • 編輯其屬性。在連接外部金鑰存放區時,您可以編輯自訂金鑰存放區名稱、代理 URI 路徑和代理身分驗證憑證。但是,若要編輯代理連接類型、代理 URI 端點或 VPC 端點服務名稱,您必須先中斷連接外部金鑰存放區。如需詳細資訊,請參閱 編輯外部金鑰存放區屬性

  • 停止 AWS KMS 與外部金鑰存放區代理之間的所有通訊。也可以透過停用您的端點或 VPC 端點服務來停止 AWS KMS 與代理之間的通訊。此外,您的外部金鑰存放區代理或金鑰管理軟體可能會提供額外的機制,以防止 AWS KMS 與代理通訊,或防止代理存取您的外部金鑰管理器。

  • 停用外部金鑰存放區中的所有 KMS 金鑰。您可以使用AWS KMS主控台或DisableKey作業停用和重新啟用外部金鑰存放區中的 KMS 金鑰。這些操作會快速完成 (視最終一致性而定),但一次只能對一個 KMS 金鑰進行。中斷連接外部金鑰存放區會將外部金鑰存放區中所有 KMS 金鑰的金鑰狀態變更為 Unavailable,這會防止在任何密碼編譯操作中對其進行使用。

  • 為了修復失敗的連接嘗試。如果嘗試連接外部金鑰存放區失敗 (自訂金鑰存放區的連接狀態為 FAILED),您必須先中斷連接外部金鑰存放區,之後再嘗試重新連接。

連線狀態

連接和中斷連接會變更自訂金鑰存放區的連接狀態。AWS CloudHSM 金鑰存放區和外部金鑰存放區的連接狀態值相同。

若要檢視自訂金鑰存放區的連線狀態,請使用DescribeCustomKeyStores作業或AWS KMS主控台。Connection state (連接狀態) 會顯示在每個自訂金鑰存放區資料表、每個自訂金鑰存放區詳細資料頁面的 General configuration (一般組態) 區段以及自訂金鑰存放區中 KMS 金鑰的 Cryptographic configuration (密碼編譯組態) 索引標籤中。如需詳細資訊,請參閱 檢視 AWS CloudHSM 金鑰存放區檢視外部金鑰存放區

自訂金鑰存放區可以有下列其中一個連接狀態:

  • CONNECTED:自訂金鑰存放區已連接至其備份金鑰存放區。您可在自訂金鑰存放區中建立和使用 KMS 金鑰。

    AWS CloudHSM 金鑰存放區的備份金鑰存放區是其相關聯的 AWS CloudHSM 叢集。外部金鑰存放區的備份金鑰存放區是外部金鑰存放區代理及其支援的外部金鑰管理器。

    CONNECTED 狀態表示連接成功,且自訂金鑰存放區尚未有意中斷連接。這並不表示連接運作正常。如需有關與AWS CloudHSM金鑰存放區相關聯之AWS CloudHSM叢集狀態的資訊,請參閱《AWS CloudHSM使用指南》AWS CloudHSM中的〈取得的指 CloudWatch 標〉。如需有關外部金鑰存放區狀態和操作的相關資訊,請參閱每個外部金鑰存放區詳細資訊頁面的監控區段中的圖表。如需詳細資訊,請參閱 監控外部金鑰存放區

  • CONNECTING:連接自訂金鑰存放區的程序正在進行中。這是暫時的狀態。

  • DISCONNECTED:自訂金鑰存放區從未連線至其支援,或是使用AWS KMS主控台或DisconnectCustomKeyStore作業故意中斷連線。

  • DISCONNECTING:中斷連接自訂金鑰存放區的程序正在進行中。這是暫時的狀態。

  • FAILED:嘗試連接自訂金鑰存放區失敗。ConnectionErrorCodeDescribeCustomKeyStores響應中表示問題。

若要連接自訂金鑰存放區,其連接狀態必須為 DISCONNECTED。如果連接狀態為 FAILED,則請使用 ConnectionErrorCode 來識別並解決問題。請先中斷連接自訂金鑰存放區,然後再重試連接。如需連線失敗的協助,請參閱 外部金鑰存放區連接錯誤。如需有關回應連接錯誤代碼的說明,請參閱 外部金鑰存放區的連接錯誤代碼

若要檢視連接錯誤代碼:

  • DescribeCustomKeyStores回應中,檢視ConnectionErrorCode元素的值。只有當 ConnectionStateFAILED 時,此元素才會出現在 DescribeCustomKeyStores 回應中。

  • 若要在 AWS KMS 主控台中檢視連接錯誤代碼,請在外部金鑰存放區的詳細資訊頁面上,將滑鼠游標移至 Failed (失敗) 值上。

    自訂金鑰存放區詳細資訊頁面上的連接錯誤代碼

連接外部金鑰存放區 (主控台)

您可以使用 AWS KMS 主控台將外部金鑰存放區連接至其外部金鑰存放區代理。

  1. 請登入 AWS Management Console,並開啟 AWS Key Management Service (AWS KMS) 主控台 (網站:https://console.aws.amazon.com/kms)。

  2. 若要變更 AWS 區域,請使用頁面右上角的區域選取器。

  3. 在導覽窗格中,依次選擇 Custom key stores (自訂金鑰存放區)、External key stores (外部金鑰存放區)。

  4. 選擇您想要連接的外部金鑰存放區資料列。

    如果外部金鑰存放區的連接狀態FAILED (失敗),則在連接之前,必須中斷連接外部金鑰存放區

  5. Key store actions (金鑰存放區動作) 選單中,選擇 Connect (連接)。

連接程序通常需要大約五分鐘才能完成。操作完成時,連接狀態會變更為 CONNECTED (已連接)。

如果連接狀態為 Failed (失敗),則請將滑鼠游標移至連接狀態上,以查看連接錯誤代碼,其中會說明錯誤原因。如需有關回應連接錯誤代碼的說明,請參閱 外部金鑰存放區的連接錯誤代碼。若要連接具有 Failed (失敗) 連接狀態的外部金鑰存放區,您必須先中斷連接自訂金鑰存放區

連接外部金鑰存放區 (API)

若要連線已中斷連線的外部金鑰存放區,請使用此ConnectCustomKeyStore作業。

在連接之前,外部金鑰存放區的連接狀態必須為 DISCONNECTED。如果當前連接狀態為 FAILED,則請中斷連接外部金鑰存放區,然後將其連接。

連接程序需要大約五分鐘才能完成。除非它快速失敗,否則 ConnectCustomKeyStore 會傳回 HTTP 200 回應和不帶屬性的 JSON 物件。不過,這個初始回應並不表示連接已成功。若要判斷外部金鑰存放區是否已連線,請參閱DescribeCustomKeyStores回應中的連線狀態。

本節中的範例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何支援的程式設計語言。

若要識別外部金鑰存放區,請使用其自訂金鑰存放區 ID。您可以在主控台的 [自訂金鑰存放區] 頁面上或使用DescribeCustomKeyStores作業來尋找 ID。執行此範例之前,請將範例 ID 以有效的 ID 取代。

$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

ConnectCustomKeyStore 操作不會傳回其回應中的 ConnectionState。若要確認外部金鑰存放區已連線,請使用DescribeCustomKeyStores作業。在預設情況下,此操作會傳回您帳戶和區域中的所有自訂金鑰存放區。但是,您可以使用 CustomKeyStoreIdCustomKeyStoreName 參數 (但不能同時使用) 來限制對特定自訂金鑰存放區的回應。CONNECTEDConnectionState 值表示外部金鑰存放區已連接至其外部金鑰存放區代理。

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc { "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }

如果 DescribeCustomKeyStores 回應中的 ConnectionState 值為 FAILED,則 ConnectionErrorCode 元素會指出失敗的原因。

在下列範例中,ConnectionErrorCodeXKS_VPC_ENDPOINT_SERVICE_NOT_FOUND 值表示 AWS KMS 找不到它用來與外部金鑰存放區代理通訊的 VPC 端點服務。確認 XksProxyVpcEndpointServiceName 正確無誤、AWS KMS 服務主體是 Amazon VPC 端點服務中允許的主體以及 VPC 端點服務不需要接受連接請求。如需有關回應連接錯誤代碼的說明,請參閱 外部金鑰存放區的連接錯誤代碼

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc { "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "FAILED", "ConnectionErrorCode": "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }

中斷連接外部金鑰存放區 (主控台)

您可以使用 AWS KMS 主控台將外部金鑰存放區連接至其外部金鑰存放區代理。此程序約需 5 分鐘才能完成。

  1. 請登入 AWS Management Console,並開啟 AWS Key Management Service (AWS KMS) 主控台 (網站:https://console.aws.amazon.com/kms)。

  2. 若要變更 AWS 區域,請使用頁面右上角的區域選取器。

  3. 在導覽窗格中,依次選擇 Custom key stores (自訂金鑰存放區)、External key stores (外部金鑰存放區)。

  4. 選擇您想要中斷連接之外部金鑰存放區的資料列。

  5. Key store actions (金鑰存放區動作) 選單中,選擇 Disconnect (中斷連接)。

操作完成時,連接狀態會從 DISCONNECTING (中斷連接中) 變更為 DISCONNECTED (已中斷連接)。如果操作失敗,會出現錯誤訊息,其中描述問題並提供如何修正的協助。如果您需要更多協助,請參閱外部金鑰存放區連接錯誤

中斷連接外部金鑰存放區 (API)

若要中斷連接的外部金鑰存放區,請使用此DisconnectCustomKeyStore作業。如果操作成功,則 AWS KMS 傳回 HTTP 200 回應和不帶屬性的 JSON 物件。該程序需要大約五分鐘才能完成。若要尋找外部金鑰存放區的連線狀態,請使用DescribeCustomKeyStores作業。

本節中的範例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何支援的程式設計語言。

此範例中斷連接具有 VPC 端點服務連接的外部金鑰存放區。執行此範例之前,請將範例自訂金鑰存放區 ID 取代為有效的 ID。

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

若要確認外部金鑰存放區已中斷連線,請使用此DescribeCustomKeyStores作業。在預設情況下,此操作會傳回您帳戶和區域中的所有自訂金鑰存放區。但是,您可以使用 CustomKeyStoreIdCustomKeyStoreName 參數 (但不能同時使用) 來限制對特定自訂金鑰存放區的回應。DISCONNECTEDConnectionState 值表示此範例外部金鑰存放區不再連接至其外部金鑰存放區代理。

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc { "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "DISCONNECTED", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }