建立金鑰 - AWS Key Management Service

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

建立金鑰

您可以AWS KMS keys在中建立AWS Management Console,也可以使用CreateKey作業或AWS CloudFormation範本來建立。在此過程中,您可選擇 KMS 金鑰的類型、其區域性 (單一區域或多區域),以及金鑰資料的來源 (依預設,AWS KMS 會建立金鑰資料)。建立 KMS 金鑰之後即無法變更這些屬性。您也可以設定 KMS 金鑰的金鑰政策,您可以隨時變更這些政策。

本主題介紹如何使用 AWS KMS 的金鑰資料,為單一區域建立基本 KMS 金鑰 (即對稱加密 KMS 金鑰)。您可使用此 KMS 金鑰來保護 AWS 服務 中的資料。如需有關對稱加密 KMS 金鑰的詳細資訊,請參閱 SYMMETRIC_DEFAULT 金鑰規格。如需有關如何建立其他類型金鑰的說明,請參閱特殊用途金鑰

如果您要建立 KMS 金鑰來加密在 AWS 服務中存放或管理的資料,則請建立對稱加密 KMS 金鑰。與 AWS KMS 整合的 AWS 服務僅會使用對稱加密 KMS 金鑰來加密您的資料。這些服務不支援使用非對稱 KMS 金鑰進行加密。如需決定要建立的 KMS 金鑰類型說明,請參閱 選擇一個 KMS 金鑰類型

注意

對稱 KMS 金鑰現在稱為對稱加密 KMS 金鑰。AWS KMS 支援兩種對稱 KMS 金鑰,即對稱加密 KMS 金鑰 (預設類型) 和 HMAC KMS 金鑰 (也是對稱金鑰)。

在 AWS KMS 主控台建立 KMS 金鑰時,您需要為其提供別名 (易記名稱)。CreateKey 操作不會建立新 KMS 金鑰的別名。若要為新的或現有的 KMS 金鑰建立別名,請使用此CreateAlias作業。如需 AWS KMS 中別名的詳細資訊,請參閱 使用別名

本主題介紹如何建立對稱加密 KMS 金鑰。請利用下表尋找指示,了解如何建立不同類型 KMS 金鑰。

建立 KMS 金鑰的指示
KMS 金鑰類型 指示
對稱加密金鑰 (SYMMETRIC_DEFAULT) 建立對稱加密 KMS 金鑰
非對稱金鑰 建立非對稱 KMS 金鑰
HMAC 金鑰 建立 HMAC KMS 金鑰
多區域金鑰 (任何類型) 建立具有匯入金鑰材料的主要金鑰

建立具有匯入金鑰材料的複本金鑰

匯入的金鑰資料 (「使用自有金鑰 — BYOK」) 匯入金鑰材料步驟 1:建立不含金鑰材料的 AWS KMS key
AWS CloudHSM 金鑰存放區 在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰
外部金鑰存放區 (「持有自有金鑰 — HYOK」) 在外部金鑰存放區中建立 KMS 金鑰

進一步了解

建立 KMS 金鑰的許可

若要在主控台或使用 API 建立 KMS 金鑰,您必須在 IAM 政策中具有下列許可。盡可能使用條件金鑰以限制許可。例如,您可以在 IAM 政策中使用 kms: KeySpec 條件金鑰,允許主體僅建立對稱加密金鑰。

如需建立金鑰之主體的 IAM 政策範例,請參閱 允許使用者建立 KMS 金鑰

注意

授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC

建立 KMS 金鑰不需要公里數:PutKeyPolicy權限。kms:CreateKey 許可包含設定初始金鑰政策的許可。但是,您必須在建立 KMS 金鑰時將此許可新增至金鑰政策,以確保您可以控制對 KMS 金鑰的存取。另一種方法是使用該BypassLockoutSafetyCheck參數,這是不推薦的。

KMS 金鑰屬於建立所在的 AWS 帳戶。建立 KMS 金鑰的 IAM 使用者不會被視為金鑰擁有者,而且他們不會自動擁有使用或管理他們建立之 KMS 金鑰的許可。與任何其他主體一樣,金鑰建立者必須透過金鑰政策、IAM 政策或授予取得許可。不過,擁有 kms:CreateKey 許可的主體可以設定初始金鑰政策,並授予自己使用或管理金鑰的許可。

建立對稱加密 KMS 金鑰

您可以在 AWS Management Console 中或透過使用 AWS KMS API 建立 KMS 金鑰。

本主題介紹如何使用 AWS KMS 的金鑰資料,為單一區域建立基本 KMS 金鑰 (即對稱加密 KMS 金鑰)。您可使用此 KMS 金鑰來保護 AWS 服務 中的資料。如需有關如何建立其他類型金鑰的說明,請參閱特殊用途金鑰

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

您可以使用 AWS Management Console 來建立 AWS KMS keys (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 金鑰,在 Key type (金鑰類型) 欄位中,選擇 Symmetric (對稱)。

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

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

    如需有關如何建立可以產生和驗證 MAC 代碼的 KMS 金鑰的詳細資訊,請參閱建立 HMAC KMS 金鑰

  7. 選擇下一步

    如需有關進階選項的詳細資訊,請參閱特殊用途金鑰

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

    注意

    新增、刪除或更新別名可允許或拒絕 KMS 金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC使用別名來控制對 KMS 金鑰的存取

    別名是您可用來識別 KMS 金鑰的顯示名稱。我們建議您選擇別名來表示您計劃保護的資料類型,或您計劃搭配 KMS 金鑰一起使用的應用程式。

    在 AWS Management Console 中建立 KMS 金鑰時需要別名。當您使用該CreateKey操作時,它們是可選的。

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

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

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

    注意

    標記或取消標記 KMS 金鑰可以允許或拒絕 KMS 金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC使用標籤來控制對 KMS 金鑰的存取

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

  11. 選擇下一步

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

    注意

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

     

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

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

  14. 選擇下一步

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

    注意

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

     

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

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

    注意

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

  17. 選擇下一步

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

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

建立對稱加密 KMS 金鑰 (AWS KMS API)

您可以使用該CreateKey操作來創建AWS KMS keys所有類型。以下範例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何支援的程式設計語言。

重要

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

以下操作建立了最常用的 KMS 金鑰,即單一區域中由 AWS KMS 產生的對稱加密金鑰。此操作沒有必要參數。但您可能還想要使用 Policy 參數指定金鑰政策。您可以隨時變更金鑰原則 (PutKeyPolicy) 並新增選擇性元素,例如說明標籤。您還可以建立非對稱金鑰多區域金鑰匯入金鑰資料中的金鑰,以及自訂金鑰存放區中的金鑰。

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

以下範例呼叫 CreateKey 操作,不帶參數。這個命令會使用所有的預設值。其會使用 AWS KMS 產生的金鑰資料來建立對稱加密 KMS 金鑰。

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

如果您不為您的新 KMS 金鑰指定金鑰政策,則在用其建立新 KMS 金鑰時,CreateKey 套用的預設金鑰政策會不同於主控台套用的預設金鑰政策。

例如,此GetKeyPolicy作業呼叫會傳回套用的金鑰原CreateKey則。它為 AWS 帳戶 提供了 KMS 金鑰的存取權,並允許其建立 KMS 金鑰的 AWS Identity and Access Management (IAM) 政策。如需有關 KMS 金鑰之 IAM 政策和金鑰政策的詳細資訊,請參閱 驗證和存取控制 AWS KMS

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }