建立 HMAC KMS 金鑰 - AWS Key Management Service

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

建立 HMAC KMS 金鑰

您可以在 AWS KMS 主控台、使用 CreateKey API 或使用 AWS::KMS::Key AWS CloudFormation

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

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

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

  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/kms 開啟 AWS Key Management Service (AWS 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. 選擇 Next (下一步)

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

    建議您使用能將 KMS 金鑰識別為 HMAC 金鑰的別名,例如 HMAC/test-key。這可讓您更輕鬆地在 AWS KMS 主控台中識別 HMAC 金鑰,您可以在其中依標籤和別名排序和篩選金鑰,但不能依金鑰規格或金鑰用量。

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

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

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

    您可以立即新增描述或在任意時間更新,除非金鑰狀態Pending DeletionPending Replica Deletion。若要新增、變更或刪除現有客戶受管金鑰的描述,請在 中編輯 KMS AWS Management Console 金鑰詳細資訊頁面上的描述, AWS Management Console 或使用 UpdateKeyDescription 操作。

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

    考慮新增能將金鑰識別為 HMAC 金鑰的標籤,例如 Type=HMAC。這可讓您更輕鬆地在 AWS KMS 主控台中識別 HMAC 金鑰,您可以在其中依標籤和別名排序和篩選金鑰,但不能依金鑰規格或金鑰用量。

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

  13. 選擇 Next (下一步)

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

    備註

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

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

    AWS KMS 主控台會將金鑰管理員新增至陳述式識別碼 下的金鑰政策"Allow access for Key Administrators"。修改此陳述式識別符可能會影響主控台顯示您對陳述式所做的更新。

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

  16. 選擇 Next (下一步)

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

    備註

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

    AWS KMS 主控台會將金鑰使用者新增至陳述式識別碼 "Allow use of the key"和 下的金鑰政策"Allow attachment of persistent resources"。修改這些陳述式識別符可能會影響主控台顯示您對陳述式所做的更新。

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

    注意

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

  19. 選擇 Next (下一步)

  20. 檢閱金鑰的金鑰政策陳述式。若要變更金鑰政策,請選取編輯

  21. 選擇 Next (下一步)

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

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

您可以使用 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 金鑰,您可以依別名排序和篩選金鑰,但無法依金鑰規格或金鑰用量。

如果您嘗試在不支援 HMAC 金鑰 AWS 區域 的 中建立 HMAC KMS 金鑰,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 } }