建立 HMAC KMS 金鑰 - AWS Key Management Service

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

建立 HMAC KMS 金鑰

您可以在 AWS KMS 主控台中,使用 CreateKey API 或 AWS CloudFormation 範本來建立 HMAC KMS 金鑰。

AWS KMS 支援 HMAC KMS 金鑰的多種金鑰規格。金鑰規格可根據您的法規、安全或業務需求進行選取。一般而言,較長的金鑰更能抵禦暴力破解攻擊。

重要

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

若要建立 KMS 金鑰來加密在 AWS 服務中的資料,請使用對稱加密 KMS 金鑰。與 AWS KMS 整合的 AWS 服務不支援非對稱 KMS 金鑰或 HMAC KMS 金鑰。如需有關如何建立對稱加密 KMS 金鑰的說明,請參閱建立金鑰

進一步了解

  • 若要確定要建立哪種 KMS 金鑰,請參閱選擇一個 KMS 金鑰類型

  • 您可以使用本主題中所述的程序來建立多區域主要 HMAC KMS 金鑰。若要複製多區域 HMAC 金鑰,請參閱建立多區域複本金鑰

  • 如需建立 KMS 金鑰所需之許可的詳細資訊,請參閱 建立 KMS 金鑰的許可

  • 如需使用AWS CloudFormation範本建立 HMAC KMS 金鑰的相關資訊,請參閱使用AWS CloudFormation者指南AWS::KMS::Key中的〈〉。

建立 HMAC KMS 金鑰 (主控台)

您可以使用 AWS Management Console 來建立 HMAC KMS 金鑰。HMAC KMS 金鑰是對稱金鑰,其金鑰用途為 Generate and verify MAC (產生和驗證 MAC)。您也可以建立多區域 HMAC 金鑰。

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

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

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

  4. 選擇建立金鑰

  5. 針對 Key type (金鑰類型),請選擇 Symmetric (對稱)

    HMAC KMS 金鑰為對稱金鑰。您可以使用相同的金鑰產生和驗證 HMAC 標籤。

  6. Key usage (金鑰用途) 欄位中,請選擇 Generate and verify MAC (產生和驗證 MAC)。

    產生和驗證 MAC 是 HMAC KMS 金鑰的唯一有效金鑰用途。

    注意

    僅當所選區域支援 HMAC KMS 金鑰時,才會顯示對稱金鑰的 Key usage (金鑰用途)。

  7. 選取 HMAC KMS 金鑰的規格 (Key spec (金鑰規格))。

    金鑰規格可根據您的法規、安全或業務需求進行選取。通常,較長的金鑰更安全。

  8. 若要建立多區域主要 HMAC 金鑰,請在 Advanced options (進階選項) 中選擇 Multi-Region key (多區域金鑰)。您為此 KMS 金鑰定義的共用屬性 (如金鑰類型和金鑰用途) 將與其複本金鑰共享。如需詳細資訊,請參閱 建立多區域金鑰

    您無法使用此程序來建立複本金鑰。若要建立多區域複本 HMAC 金鑰,請遵循建立複本金鑰的指示

  9. 選擇下一步

  10. 輸入 KMS 金鑰的別名。別名名稱的開頭不可以是 aws/aws/ 字首由 Amazon Web Services 保留,以代表您帳戶中的 AWS 受管金鑰。

    建議您使用能將 KMS 金鑰識別為 HMAC 金鑰的別名,例如 HMAC/test-key。這可讓您更容易識別 AWS KMS 主控台中的 HMAC 金鑰,您可以依標籤和別名對金鑰進行排序和篩選,但不能依金鑰規格或金鑰用途進行排序和篩選。

    在 AWS Management Console 中建立 KMS 金鑰時需要別名。使用CreateKey作業時無法指定別名,但可以使用主控台或CreateAlias作業為現有 KMS 金鑰建立別名。如需詳細資訊,請參閱 使用別名

  11. (選用) 輸入 KMS 金鑰的描述。

    輸入描述來說明您計劃保護的資料類型,或您計劃搭配 KMS 金鑰一起使用的應用程式。

    您可以立即新增描述或在任意時間更新,除非金鑰狀態Pending DeletionPending Replica Deletion。若要加入、變更或刪除現有客戶管理金鑰的描述,請編輯中的描述AWS Management Console或使用UpdateKeyDescription作業。

  12. (選用) 輸入標籤索引鍵和選用標籤值。若要將其他標籤新增至 KMS 金鑰,請選擇 Add tag (新增標籤)。

    考慮新增能將金鑰識別為 HMAC 金鑰的標籤,例如 Type=HMAC。這可讓您更容易識別 AWS KMS 主控台中的 HMAC 金鑰,您可以依標籤和別名對金鑰進行排序和篩選,但不能依金鑰規格或金鑰用途進行排序和篩選。

    將標籤新增到 AWS 資源時,AWS 會產生成本配置報告,內含按標籤彙總的用量與成本。標籤也可以用來控制 KMS 金鑰的存取。如需標記 KMS 金鑰的詳細資訊,請參閱 標記金鑰AWS KMS 的 ABAC

  13. 選擇下一步

  14. 選取可管理 KMS 金鑰的 IAM 使用者和角色。

    注意

    此金鑰政策授予 AWS 帳戶 完全控制此 KMS 金鑰。它允許帳戶管理員使用 IAM 政策授予其他主體管理 KMS 金鑰的許可。如需詳細資訊,請參閱 預設金鑰政策

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

  15. (選用) 為了防止選取的 IAM 使用者和角色刪除此 KMS 金鑰,請在頁面底部的 Key deletion (金鑰刪除) 區段中,清除 Allow key administrators to delete this key (允許金鑰管理員刪除此金鑰) 核取方塊。

  16. 選擇下一步

  17. 選取可將 KMS 金鑰用於密碼編譯操作的 IAM 使用者和角色。

    注意

    此金鑰政策授予 AWS 帳戶 完全控制此 KMS 金鑰。它允許帳戶管理員使用 IAM 政策授予其他主體在密碼編譯操作中使用 KMS 金鑰的許可。如需詳細資訊,請參閱 預設金鑰政策

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

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

    注意

    若要允許外部帳戶中的主體使用 KMS 金鑰,外部帳戶的管理員必須建立 IAM 政策來提供這些許可。如需詳細資訊,請參閱 允許其他帳戶中的使用者使用 KMS 金鑰

  19. 選擇下一步

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

  21. 選擇 Finish (完成) 來建立 HMAC KMS 金鑰。

建立 HMAC KMS 金鑰 (AWS KMS API)

您可以使用此CreateKey作業來建立 HMAC KMS 金鑰。以下範例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何支援的程式設計語言。

建立 HMAC KMS 金鑰時,必須指定 KeySpec 參數,以決定 KMS 金鑰的類型。此外,您必須指定 GENERATE_VERIFY_MAC 的 KeyUsage 值,即使它是 HMAC 金鑰的唯一有效金鑰用途值。若要建立多區域 HMAC KMS 金鑰,請新增值為 trueMultiRegion 參數。建立 KMS 金鑰之後即無法變更這些屬性。

CreateKey作業不允許您指定別名,但您可以使用此CreateAlias作業為新 KMS 金鑰建立別名。建議您使用能將 KMS 金鑰識別為 HMAC 金鑰的別名,例如 HMAC/test-key。這將讓您更容易識別 AWS KMS 主控台中的 HMAC 金鑰,您可以依別名對金鑰進行排序和篩選,但不能依金鑰規格或金鑰用途進行排序和篩選。

如果您嘗試在某個 AWS 區域 中建立 HMAC KMS 金鑰,而這個區域不支援 HMAC 金鑰時,則 CreateKey 操作會傳回 UnsupportedOperationException

下列範例會使用 CreateKey 操作建立 512 位元的 HMAC KMS 金鑰。

$ aws kms create-key --key-spec HMAC_512 --key-usage GENERATE_VERIFY_MAC { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "Description": "", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1669973196.214, "MultiRegion": false, "KeySpec": "HMAC_512", "CustomerMasterKeySpec": "HMAC_512", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_512" ], "AWSAccountId": "111122223333", "Origin": "AWS_KMS", "Enabled": true } }