在外部KMS金鑰存放區中建立金鑰 - AWS Key Management Service

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

在外部KMS金鑰存放區中建立金鑰

建立連接外部金鑰存放區之後,您可以在金鑰存放區 AWS KMS keys 中建立 。它們必須是原始值為外部KMS金鑰存放區 () 的對稱加密金鑰EXTERNAL_KEY_STORE您無法在自訂KMS金鑰存放區中使用匯入的金鑰材料建立非對稱金鑰 HMACKMS金鑰或金鑰。 KMS 匯入金鑰的 AWS KMS 金鑰材料此外,您無法在自訂KMS金鑰存放區中使用對稱加密金鑰來產生非對稱資料金鑰對。

外部金鑰存放區中的KMS金鑰延遲、耐用性和可用性可能比標準KMS金鑰低,因為它取決於位於 外部的元件 AWS。在外部KMS金鑰存放區中建立或使用金鑰之前,請確認您需要具有外部金鑰存放區屬性的金鑰。

注意

有些外部金鑰管理員提供更簡單的方法來在外部KMS金鑰存放區中建立金鑰。如需詳細資訊,請參閱外部金鑰管理器文件。

若要在外部KMS金鑰存放區中建立金鑰,請指定下列項目:

  • 外部金鑰存放區的 ID。

  • 外部金鑰存放區 (EXTERNAL_KEY_STORE) 的金鑰材料來源

  • 與外部金鑰存放區相關聯的外部金鑰管理器中的現有外部金鑰 ID。此外部金鑰做為金鑰的KMS金鑰材料。您無法在建立金鑰之後變更外部KMS金鑰 ID。

    AWS KMS 在加密和解密操作的請求中, 會將外部金鑰 ID 提供給外部金鑰存放區代理。 AWS KMS 無法直接存取您的外部金鑰管理員或其任何密碼編譯金鑰。

除了外部金鑰之外,外部金鑰存放區中的KMS金鑰也具有 AWS KMS 金鑰材料。KMS 金鑰下加密的所有資料會先 AWS KMS 使用金鑰的 AWS KMS 金鑰材料加密,然後使用外部金鑰由外部金鑰管理員加密。此雙重加密程序可確保外部KMS金鑰存放區中受金鑰保護的密碼文字至少與僅受 保護的密碼文字一樣強 AWS KMS。如需詳細資訊,請參閱 外部金鑰存放區的運作方式

CreateKey操作成功時,新金鑰的KMS金鑰狀態Enabled。當您在外部KMS金鑰存放區中檢視金鑰時,您可以看到典型屬性,例如其金鑰 ID、金鑰規格 金鑰用量 金鑰狀態 和建立日期。但是您也可以看到外部金鑰存放區的 ID 和連接狀態以及外部金鑰的 ID。

如果您嘗試在外部KMS金鑰存放區中建立金鑰失敗,請使用錯誤訊息來識別原因。這可能表示外部金鑰存放區未連線 (CustomKeyStoreInvalidStateException)、您的外部金鑰存放區代理找不到具有指定外部金鑰 ID (XksKeyNotFoundException) 的外部金鑰,或外部金鑰已與相同外部金鑰存放區中的KMS金鑰建立關聯XksKeyAlreadyInUseException

如需在外部KMS金鑰存放區中建立金鑰的操作 AWS CloudTrail 日誌範例,請參閱 CreateKey

外部KMS金鑰存放區中金鑰的需求

若要在外部KMS金鑰存放區中建立金鑰,外部金鑰存放區、KMS金鑰和做為KMS金鑰外部密碼編譯金鑰材料的外部金鑰需要下列屬性。

外部金鑰存放區要求

KMS 金鑰需求

您無法在建立KMS金鑰之後變更這些屬性。

  • 金鑰規格:SYMMETRIC_DEFAULT

  • 金鑰用量:ENCRYPT_DECRYPT

  • 金鑰材料來源:EXTERNAL_KEY_STORE

  • 多區域: FALSE

外部金鑰要求

  • 256 位元AES密碼編譯金鑰 (256 個隨機位元)。外部金鑰的 KeySpec 必須為 AES_256

  • 已啟用並可供使用。外部金鑰的 Status 必須為 ENABLED

  • 設定用於加密和解密。外部金鑰的 KeyUsage 必須包含 ENCRYPTDECRYPT

  • 僅與此KMS金鑰搭配使用。外部金鑰存放區中的每個 KMS key 都必須與不同的外部金鑰關聯。

    AWS KMS 也建議將外部金鑰專用於外部金鑰存放區。此限制可讓您更輕鬆地識別並解決金鑰的問題。

  • 可供外部金鑰存放區的外部金鑰存放區代理存取。

    如果外部金鑰存放區代理找不到使用指定外部金鑰 ID 的金鑰,CreateKey 操作就會失敗。

  • 可以處理使用 AWS 服務 產生的預期流量。 AWS KMS 建議外部金鑰準備處理每秒最多 1,800 個請求。

在外部KMS金鑰存放區中建立新的金鑰

您可以在 AWS KMS 主控台的外部KMS金鑰存放區中或使用 CreateKey操作來建立新的金鑰。

有兩種方法可在外部KMS金鑰存放區中建立金鑰。

  • 方法 1 (建議):選擇外部金鑰存放區,然後在該外部KMS金鑰存放區中建立金鑰。

  • 方法 2:建立KMS金鑰,然後指示其位於外部金鑰存放區中。

如果您使用方法 1,在建立金鑰之前選擇外部金鑰存放區, 會為您 AWS KMS 選擇所有必要的KMS金鑰屬性,並填入外部金鑰存放區的 ID。此方法可避免您在建立KMS金鑰時可能發生的錯誤。

注意

請勿在別名、說明或標籤包含機密或敏感資訊。這些欄位可能會在 CloudTrail 日誌和其他輸出中以純文字顯示。

方法 1 (建議選擇):在外部金鑰存放區開始

若要使用此方法,請選擇您的外部金鑰存放區,然後建立KMS金鑰。 AWS KMS 主控台會為您選擇所有必要屬性,並填入外部金鑰存放區的 ID。此方法可避免您在建立KMS金鑰時發生許多錯誤。

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

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

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

  4. 選擇外部金鑰存放區的名稱。

  5. 在右上角,選擇在此KMS金鑰存放區中建立金鑰

    如果連接外部金鑰存放區,系統會提示您進行連接。如果連線嘗試失敗,您需要解決問題並連接外部金鑰存放區,才能在其中建立新的KMS金鑰。

    如果外部金鑰存放區已連接,則系統會將您重新導向至 Customer managed keys (客戶受管金鑰) 頁面以建立金鑰。已為您選擇所需的 Key configuration (金鑰組態) 值。此外,會填寫外部金鑰存放區的自訂金鑰存放區 ID,不過您可以變更它。

  6. 外部金鑰管理器中輸入外部金鑰的金鑰 ID。此外部金鑰必須符合與KMS金鑰搭配使用的要求。建立金鑰之後,便無法變更此值。

    如果外部金鑰具有多個 IDs,請輸入外部金鑰存放區代理用來識別外部金鑰的金鑰 ID。

  7. 確認您打算在指定的外部KMS金鑰存放區中建立金鑰。

  8. 選擇 Next (下一步)

    此程序的其餘部分與建立標準KMS金鑰相同。

  9. 輸入索引KMS鍵的別名 (必要) 和描述 (選用)。

  10. (選用)。在新增標籤頁面上,新增可識別或分類KMS金鑰的標籤。

    當您將標籤新增至 AWS 資源時, AWS 會產生成本分配報告,其中包含使用量和標籤彙總的成本。標籤也可用於控制對KMS金鑰的存取。如需標記KMS金鑰的相關資訊,請參閱 中的標籤 AWS KMSABAC 適用於 AWS KMS

  11. 選擇 Next (下一步)

  12. 金鑰管理員區段中,選取可以管理KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰管理員管理KMS金鑰

    注意

    IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。

    IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用角色IAM,提供臨時憑證。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM

  13. (選用) 若要防止這些金鑰管理員刪除此KMS金鑰,請清除允許金鑰管理員刪除此金鑰核取方塊。

    刪除KMS金鑰是一種具有破壞性且不可復原的操作,可能導致密碼文字無法復原。您無法在外部KMS金鑰存放區中重新建立對稱金鑰,即使您擁有外部金鑰材料。不過,刪除KMS金鑰不會影響其相關聯的外部金鑰。如需有關從外部KMS金鑰存放區刪除金鑰的資訊,請參閱刪除金鑰的特殊考量事項。

  14. 選擇 Next (下一步)

  15. 在此帳戶區段中,選取可在密碼編譯操作 中使用 AWS 帳戶 KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰使用者使用KMS金鑰

    注意

    IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。

    IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用角色IAM,提供臨時憑證。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM

  16. (選用) 您可以允許其他 AWS 帳戶 將此KMS金鑰用於密碼編譯操作。若要這麼做,請在頁面底部的其他 AWS 帳戶區段中,選擇新增另一個 AWS 帳戶並輸入外部帳戶的 AWS 帳戶 ID。若要新增多個外部帳戶,請重複此步驟。

    注意

    其他 的管理員 AWS 帳戶 也必須透過為其使用者建立IAM政策來允許存取KMS金鑰。如需詳細資訊,請參閱允許其他帳戶中的使用者使用KMS金鑰

  17. 選擇 Next (下一步)

  18. 檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。

  19. 完成時,請選擇 Finish (完成) 以建立金鑰。

方法 2:在客戶受管金鑰中開始

此程序與使用 AWS KMS 金鑰材料建立對稱加密金鑰的程序相同。但是,在此程序中,您可指定外部金鑰存放區的自訂金鑰存放區 ID 和外部金鑰的金鑰 ID。您還必須在外部KMS金鑰存放區中指定金鑰的必要屬性值,例如金鑰規格和金鑰用量。

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

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

  3. 在導覽窗格中,選擇 Customer managed keys (客戶受管金鑰)。

  4. 選擇建立金鑰

  5. 選擇 Symmetric (對稱)

  6. Key usage (金鑰用途) 欄位中,系統會自動選取 Encrypt and decrypt (加密和解密) 選項。請勿變更該欄位。

  7. 選擇 Advanced options (進階選項)

  8. 對於 Key material origin (金鑰材料來源),選擇 External key store (外部金鑰存放區)。

  9. 確認您打算在指定的外部KMS金鑰存放區中建立金鑰。

  10. 選擇 Next (下一步)

  11. 選擇代表新金鑰的外部KMS金鑰存放區的資料列。

    您無法選擇已中斷連接的外部金鑰存放區。若要連接已中斷連接的金鑰存放區,請選擇金鑰存放區名稱,然後在 Key store actions (金鑰存放區動作) 中選擇 Connect (連接)。如需詳細資訊,請參閱 使用 AWS KMS 主控台

  12. 外部金鑰管理器中輸入外部金鑰的金鑰 ID。此外部金鑰必須符合與KMS金鑰搭配使用的要求。建立金鑰之後,便無法變更此值。

    如果外部金鑰具有多個 IDs,請輸入外部金鑰存放區代理用來識別外部金鑰的金鑰 ID。

  13. 選擇 Next (下一步)

    此程序的其餘部分與建立標準KMS金鑰相同。

  14. 輸入KMS索引鍵的別名和選用描述。

  15. (選用)。在新增標籤頁面上,新增可識別或分類KMS金鑰的標籤。

    當您將標籤新增至 AWS 資源時, AWS 會產生成本分配報告,其中包含使用量和標籤彙總的成本。標籤也可用於控制對KMS金鑰的存取。如需標記KMS金鑰的相關資訊,請參閱 中的標籤 AWS KMSABAC 適用於 AWS KMS

  16. 選擇 Next (下一步)

  17. 金鑰管理員區段中,選取可以管理KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰管理員管理KMS金鑰

    注意

    IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。

  18. (選用) 若要防止這些金鑰管理員刪除此KMS金鑰,請清除允許金鑰管理員刪除此金鑰核取方塊。

    刪除KMS金鑰是一種具有破壞性且不可復原的操作,可能導致密碼文字無法復原。您無法在外部KMS金鑰存放區中重新建立對稱金鑰,即使您擁有外部金鑰材料。不過,刪除KMS金鑰不會影響其相關聯的外部金鑰。如需有關從外部KMS金鑰存放區刪除金鑰的資訊,請參閱 刪除 AWS KMS keys

  19. 選擇 Next (下一步)

  20. 在此帳戶區段中,選取其中 AWS 帳戶 可在密碼編譯操作 中使用 KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰使用者使用KMS金鑰

    注意

    IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。

  21. (選用) 您可以允許其他 AWS 帳戶 將此KMS金鑰用於密碼編譯操作。若要這麼做,請在頁面底部的其他 AWS 帳戶區段中,選擇新增另一個 AWS 帳戶並輸入外部帳戶的 AWS 帳戶 ID。若要新增多個外部帳戶,請重複此步驟。

    注意

    其他 的管理員 AWS 帳戶 也必須透過為其使用者建立IAM政策來允許存取KMS金鑰。如需詳細資訊,請參閱允許其他帳戶中的使用者使用KMS金鑰

  22. 選擇 Next (下一步)

  23. 檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。

  24. 完成時,請選擇 Finish (完成) 以建立金鑰。

程序成功時,顯示器會在您選擇的外部KMS金鑰存放區中顯示新金鑰。當您選擇新KMS金鑰的名稱或別名時,其詳細資訊頁面上的密碼編譯組態索引標籤會顯示KMS金鑰的來源 (外部金鑰存放區 )、自訂金鑰存放區的名稱、ID 和類型,以及外部金鑰的 ID、金鑰用量和狀態。如果程序失敗,則會出現錯誤訊息來描述失敗。若為 ,請參閱 外部金鑰存放區故障診斷

提示

為了更輕鬆地識別自訂KMS金鑰存放區中的金鑰,請在客戶受管金鑰頁面上,將原始伺服器和自訂金鑰存放區 ID 欄新增至顯示。若要變更資料表欄位,請選擇頁面右上角的齒輪圖示。如需詳細資訊,請參閱 自訂您的主控台檢視

若要在外部KMS金鑰存放區中建立新的金鑰,請使用 CreateKey操作。下列是必要參數:

  • Origin 值必須為 EXTERNAL_KEY_STORE

  • CustomKeyStoreId 參數可識別您的外部金鑰存放區。指定的外部金鑰存放區的 ConnectionState 必須為 CONNECTED。若要尋找 CustomKeyStoreIdConnectionState,請使用 DescribeCustomKeyStores 操作。

  • XksKeyId 參數可識別外部金鑰。此外部金鑰必須符合與KMS金鑰建立關聯的要求

您也可以使用 CreateKey 操作的任何選用參數,例如使用 PolicyTags (標籤) 參數。

注意

請勿在 DescriptionTags 欄位包含機密或敏感資訊。這些欄位可能會在 CloudTrail 日誌和其他輸出中以純文字顯示。

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

此範例命令使用 CreateKey操作在外部KMS金鑰存放區中建立金鑰。回應包含KMS金鑰的屬性、外部金鑰存放區的 ID,以及外部金鑰的 ID、用量和狀態。

執行此命令之前,請將範例自訂金鑰存放區 ID 換成有效的 ID。

$ aws kms create-key --origin EXTERNAL_KEY_STORE --custom-key-store-id cks-1234567890abcdef0 --xks-key-id bb8562717f809024 { "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }