尋找 KMS 金鑰和金鑰材料 - AWS Key Management Service

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

尋找 KMS 金鑰和金鑰材料

如果管理 AWS CloudHSM 金鑰存放區,則您可能需要識別每個 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。例如,您可能需要執行下列一些任務。

  • 在 AWS CloudTrail 日誌中追蹤 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。

  • 預測中斷連接 AWS CloudHSM 金鑰存放區對 KMS 金鑰造成的影響。

  • 在刪除 AWS CloudHSM 金鑰存放區之前排程刪除 KMS 金鑰。

此外,您可能需要識別 AWS CloudHSM 叢集內的金鑰,這些金鑰作為 KMS 金鑰的金鑰材料。雖然 AWS KMS 會管理 KMS 金鑰及其金鑰材料,但您需要控制和負責管理您的 AWS CloudHSM 叢集、HSM 和備份,以及在 HSM 中的金鑰。您可能需要識別金鑰,以稽核金鑰材料、避免意外刪除它,或在刪除 KMS 金鑰後從 HSM 和叢集備份中刪除它。

AWS CloudHSM 金鑰存放區中 KMS 金鑰的所有金鑰材料是由 kmsuser 加密使用者 (CU) 擁有。AWS KMS 會將只可在 AWS CloudHSM 中檢視的金鑰標籤屬性設定為 KMS 金鑰的 Amazon Resource Name (ARN)。

若要尋找 KMS 金鑰和金鑰材料,請使用下列任何技巧。

在 AWS CloudHSM 金鑰存放區中尋找 KMS 金鑰

如果管理 AWS CloudHSM 金鑰存放區,則您可能需要識別每個 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。您可以使用這項資訊在 AWS CloudTrail 日誌中追蹤 KMS 金鑰操作、預測中斷連接自訂金鑰存放區對 KMS 金鑰造成的影響,或在刪除 AWS CloudHSM 金鑰存放區之前排程刪除 KMS 金鑰。

尋找 AWS CloudHSM 金鑰存放區中的 KMS 金鑰 (主控台)

若要在特定的 AWS CloudHSM 金鑰存放區中尋找 KMS 金鑰,請在 Customer managed keys (客戶受管金鑰) 頁面上,檢視 Custom Key Store Name (自訂金鑰存放區名稱) 或 Custom Key Store ID (自訂金鑰存放區 ID) 欄位中的值。若要在任何 AWS CloudHSM 金鑰存放區中識別 KMS 金鑰,請尋找 Origin (來源) 值為 AWS CloudHSM 的 KMS 金鑰。若要將選用欄新增到畫面上,請選擇頁面右上角的齒輪圖示。

尋找 AWS CloudHSM 金鑰存放區中的 KMS 金鑰 (API)

若要尋找金鑰存放區中的 KMS 金AWS CloudHSM鑰,請使用ListKeysDescribeKey作業,然後依CustomKeyStoreId值篩選。執行範例之前,請將虛構的自訂金鑰存放區 ID 值換成有效值。

Bash

若要在特定的 AWS CloudHSM 金鑰存放區中尋找 KMS 金鑰,請取得帳戶和區域中的所有 KMS 金鑰。然後按自訂金鑰存放區的 ID 進行篩選。

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-1234567890abcdef0"' --context 100; done

若要取得帳戶和區域中任何 AWS CloudHSM 金鑰存放區中的 KMS 金鑰,請搜尋值為 AWS_CloudHSMCustomKeyStoreType

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreType": "AWS_CloudHSM"' --context 100; done
PowerShell

若要尋找特定AWS CloudHSM金鑰存放區中的 KMS 金鑰,請使用 G et-KmsKeyList 和 G et-KmsKey 指令程式來取得帳戶和區域中的所有 KMS 金鑰。然後按自訂金鑰存放區的 ID 進行篩選。

PS C:\> Get-KMSKeyList | Get-KMSKey | where CustomKeyStoreId -eq 'cks-1234567890abcdef0'

若要在帳戶和區域中的任何金AWS CloudHSM鑰存放區中取得 KMS 金鑰,請篩選的 CustomKeyStoreType 值AWS_CLOUDHSM

PS C:\> Get-KMSKeyList | Get-KMSKey | where CustomKeyStoreType -eq 'AWS_CLOUDHSM'

尋找 AWS CloudHSM 金鑰存放區的所有金鑰

您可以在 AWS CloudHSM 叢集內識別金鑰,這些金鑰作為 AWS CloudHSM 金鑰存放區的金鑰材料。若要這麼做,請使用 cloudhsm_mgmt_util 中的findAllKeys命令,尋找擁有或共用之所有金鑰的金鑰控制代碼。kmsuser除非您以 kmsuser 身分登入,且在 AWS KMS 之外建立金鑰,否則 kmsuser 擁有的所有金鑰都代表 KMS 金鑰的金鑰材料。

在不中斷連接 AWS CloudHSM 金鑰存放區的情況下,叢集的任何加密主管都可以執行此命令。

  1. 使用 CloudHSM Management Utility (CMU) 入門主題中所述的程序,啟動 cloudhsm_mgmt_util。

  2. 使用加密主管 (CO) 帳戶登入 cloudhsm_mgmt_util。

  3. 使用 listUsers 命令尋找 kmsuser 加密使用者的使用者 ID。

    在這個範例中,kmsuser 有使用者 ID 3。

    aws-cloudhsm> listUsers Users on server 0(10.0.0.1): Number of users found:3 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CU kmsuser NO 0 NO
  4. 使用命findAllKeys令尋找kmsuser擁有或共用之所有金鑰的金鑰控制代碼。將範例使用者 ID (3) 換成叢集內 kmsuser 的實際使用者 ID。

    範例輸出顯示 kmsuser 在叢集的兩個 HSM 上,擁有金鑰控制代碼為 8、9 和 262162 的金鑰。

    aws-cloudhsm> findAllKeys 3 0 Keys on server 0(10.0.0.1): Number of keys found 3 number of keys matched from start index 0::6 8,9,262162 findAllKeys success on server 0(10.0.0.1) Keys on server 1(10.0.0.2): Number of keys found 6 number of keys matched from start index 0::6 8,9,262162 findAllKeys success on server 1(10.0.0.2)

尋找 AWS CloudHSM 金鑰的 KMS 金鑰

如果您知道 kmsuser 在叢集內擁有的金鑰的金鑰控制代碼,則可以使用金鑰標籤來識別 AWS CloudHSM 金鑰存放區中相關聯的 KMS 金鑰。

當 AWS KMS 在您的 AWS CloudHSM 叢集內建立 KMS 金鑰的金鑰材料時,它會將 KMS 金鑰的 Amazon Resource Name (ARN) 寫入金鑰標籤中。除非您已變更標籤值,否則您可以在 key_mgmt_util 或 cloudhsm_mgmt_util 中使用 getAttribute 命令,將金鑰和其 KMS 金鑰建立關聯。

若要執行此程序,您需要暫時中斷連接 AWS CloudHSM 金鑰存放區,才能以 kmsuser CU 身分登入。

注意

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

  1. 中斷連接 AWS CloudHSM 金鑰存放區 (如果尚未中斷連接),然後以 kmsuser 身分登入 key_mgmt_util,如 如何中斷連線和登入 中所述。

  2. 使用 key_mgmt_utilcloudhsm_mgmt_util 中的 getAttribute 命令,來取得標籤屬性 (OBJ_ATTR_LABEL,屬性 3),用於特定金鑰控制代碼。

    例如,此命令在 cloudhsm_mgmt_util 中使用 getAttribute,以取得金鑰代碼為 262162 的金鑰的標籤屬性 (屬性 3)。輸出顯示對於 ARN 為 arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab 的 KMS 金鑰,262162 作為 KMS 金鑰的金鑰材料。執行此命令之前,請將範例金鑰控制代碼換成有效的控制代碼。

    如需金鑰屬性清單,請使用 listAttributes 命令或參閱《AWS CloudHSM 使用者指南》中的金鑰屬性參考

    aws-cloudhsm> getAttribute 262162 3 Attribute Value on server 0(10.0.1.10): OBJ_ATTR_LABEL arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  3. 登出 key_mgmt_util 或 cloudhsm_mgmt_util,然後如 如何登出和重新連線 中所述,重新連接 AWS CloudHSM 金鑰存放區。

尋找 KMS 金鑰的 AWS CloudHSM 金鑰

您可以使用 AWS CloudHSM 金鑰存放區中的 KMS 金鑰的 KMS 金鑰 ID,以識別 AWS CloudHSM 叢集內的金鑰,此金鑰作為其金鑰材料。然後,您可以使用其金鑰控制代碼,在 AWS CloudHSM 用戶端命令中識別金鑰。

當 AWS KMS 在您的 AWS CloudHSM 叢集內建立 KMS 金鑰的金鑰材料時,它會將 KMS 金鑰的 Amazon Resource Name (ARN) 寫入金鑰標籤中。除非您已變更標籤值,否則您可以在 key_mgmt_util 中使用 findKey 命令,以取得 KMS 金鑰的金鑰材料的金鑰控制代碼。若要執行此程序,您需要暫時中斷連接 AWS CloudHSM 金鑰存放區,才能以 kmsuser CU 身分登入。

注意

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

  1. 中斷連接 AWS CloudHSM 金鑰存放區 (如果尚未中斷連接),然後以 kmsuser 身分登入 key_mgmt_util,如 如何中斷連線和登入 中所述。

  2. 在 key_mgmt_util 中使用 findKey 命令來搜尋金鑰,此金鑰的標籤符合 AWS CloudHSM 金鑰存放區中 KMS 金鑰的 ARN。將 -l (小寫 L 代表 'label') 參數值中的範例 KMS 金鑰 ARN,取代為有效的 KMS 金鑰 ARN。

    例如,此命令會尋找標籤符合範例 KMS 金鑰 ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab 的金鑰。範例輸出顯示金鑰控制代碼為 262162 的金鑰,在其標籤中具有指定的 KMS 金鑰 ARN。您現在可以在其他 key_mgmt_util 命令中使用此金鑰控制代碼。

    Command: findKey -l arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Total number of keys present 1 number of keys matched from start index 0::1 262162 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
  3. 登出 key_mgmt_util,然後如如何登出和重新連線所述,重新連接自訂金鑰存放區。