建立非對稱 KMS 金鑰 - AWS Key Management Service

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

建立非對稱 KMS 金鑰

您可以使用 CreateKeyAPI 或使用AWS CloudFormation 範本,在 AWS KMS 主控台中建立非對稱 KMS 金鑰。非對稱 KMS 金鑰代表可用於加密、簽署或衍生共用密鑰的公開和私密 key pair。私密金鑰會保留在其中 AWS KMS。若要下載公開金鑰以供外部使用 AWS KMS,請參閱下載公開金鑰

建立 KMS 金鑰來加密您在 AWS 服務中儲存或管理的資料時,請使用對稱加密 KMS 金鑰。 AWS 與整合的服務 AWS KMS 不支援非對稱 KMS 金鑰。如需有關如何決定建立對稱還是非對稱 KMS 金鑰的說明,請參閱選擇一個 KMS 金鑰類型

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

建立非對稱 KMS 金鑰 (主控台)

您可以使用建 AWS Management Console 立非對稱 AWS KMS keys (KMS 金鑰)。每個非對稱 KMS 金鑰皆代表一對公有和私有金鑰對。

重要

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

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

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

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

  4. 選擇建立金鑰

  5. 若要建立非對稱 KMS 金鑰,請在金鑰類型中選擇 Asymmetric (非對稱)。

    如需如何在主控台中建立對稱加密 KMS 金鑰的相關資 AWS KMS 訊,請參閱建立對稱加密 KMS 金鑰 (主控台)

  6. 若要建立用於公有金鑰加密的非對稱 KMS 金鑰,請在金鑰使用情形中選擇 Encrypt and decrypt (加密和解密)。或者,若要建立用於簽署訊息和驗證簽名的非對稱 KMS 金鑰,請在金鑰使用情形中選擇 Sign and verify (簽署和驗證)。若要建立用於衍生共用密碼的非對稱 KMS 金鑰,請在 [金鑰使用] 中選擇 [金合約]。

    如需選擇金鑰用途值的說明,請參閱選取金鑰用途

  7. 選取非對稱 KMS 金鑰的規格 (Key spec (金鑰規格))。

    通常,您選取的金鑰規格取決於法規、安全或業務需求。但也可能受需要加密或簽署之訊息的大小所左右。一般而言,較長的加密金鑰更能抵禦暴力破解攻擊。

    如需選擇金鑰規格的說明,請參閱選取金鑰規格

  8. 選擇下一步

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

    名是易記的名稱,可用來識別主控台和某些 AWS KMS API 中的 KMS 金鑰。我們建議您選擇別名來表示您計劃保護的資料類型,或您計劃搭配 KMS 金鑰一起使用的應用程式。

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

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

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

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

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

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

  12. 選擇下一步

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

    注意

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

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

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

  15. 選擇下一步

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

    注意

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

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

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

    注意

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

  18. 選擇下一步

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

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

建立非對稱 KMS 金鑰 (AWS KMS API)

您可以使用該CreateKey操作來建立非對稱 AWS KMS key。以下範例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何支援的程式設計語言。

當您建立非對稱 KMS 金鑰時,必須指定 KeySpec 參數,決定您建立的金鑰類型。此外,您必須指定加密 _ 解密、簽署驗證或金鑰 _ 協議的KeyUsage值。建立 KMS 金鑰之後即無法變更這些屬性。

CreateKey作業不允許您指定別名,但您可以使用此CreateAlias作業為新 KMS 金鑰建立別名。

重要

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

下列範例會使用 CreateKey 操作建立專為公有金鑰加密設計之 4096 位元 RSA 金鑰的非對稱 KMS 金鑰。

$ aws kms create-key --key-spec RSA_4096 --key-usage ENCRYPT_DECRYPT { "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": 1569973196.214, "MultiRegion": false, "KeySpec": "RSA_4096", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "AWSAccountId": "111122223333", "Origin": "AWS_KMS", "Enabled": true } }

下列範例命令建立的非對稱 KMS 金鑰,代表用於簽署和驗證的一對 ECDSA 金鑰。您無法建立用於加密和解密的橢圓曲線金鑰對。

$ aws kms create-key --key-spec ECC_NIST_P521 --key-usage SIGN_VERIFY { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1570824817.837, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ], "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "AWSAccountId": "111122223333", "KeySpec": "ECC_NIST_P521", "CustomerMasterKeySpec": "ECC_NIST_P521", "KeyManager": "CUSTOMER", "Description": "", "Enabled": true, "MultiRegion": false, "KeyUsage": "SIGN_VERIFY" } }

下列範例命令會建立非對稱 KMS 金鑰,該金鑰代表一對用於衍生共用密碼的 ECDH 金鑰。您無法建立用於加密和解密的橢圓曲線金鑰對。

$ aws kms create-key --key-spec ECC_NIST_P256 --key-usage KEY_AGREEMENT { "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": "2023-12-27T19:10:15.063000+00:00", "Enabled": true, "Description": "", "KeyUsage": "KEY_AGREEMENT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "ECC_NIST_P256", "KeySpec": "ECC_NIST_P256", "KeyAgreementAlgorithms": [ "ECDH" ], "MultiRegion": false } }