本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立金鑰
您可以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 金鑰。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 金鑰 |
進一步了解:
-
若要建立用戶端加密的資料金鑰,請使用此GenerateDataKey作業。
-
若要建立用於加密或簽署的非對稱 KMS 金鑰,請參閱 建立非對稱 KMS 金鑰。
-
若要建立 HMAC KMS 金鑰,請參閱建立 HMAC KMS 金鑰。
-
若要使用匯入的金鑰資料建立 KMS 金鑰 (「使用自有金鑰」),請參閱匯入金鑰材料步驟 1:建立不含金鑰材料的 AWS KMS key。
-
若要建立多區域主要金鑰或複本金鑰,請參閱 建立多區域金鑰。
-
若要在自訂金鑰存放區 (金鑰資料來源為自訂金鑰存放區 (CloudHSM)) 中建立 KMS 金鑰,請參閱在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰。
-
若要使用AWS CloudFormation範本建立 KMS 金鑰,請參閱使用AWS CloudFormation者指南AWS::KMS::Key中的〈〉。
-
若要判斷現有 KMS 金鑰是對稱或非對稱,請參閱 識別非對稱 KMS 金鑰。
-
若要透過編寫程式的方式以及在命令列介面操作中使用 KMS 金鑰,您需要有金鑰 ID 或金鑰 ARN。如需詳細說明,請參閱 尋找金鑰 ID 和金鑰 ARN。
-
如需 KMS 金鑰配額的詳細資訊,請參閱 配額。
建立 KMS 金鑰的許可
若要在主控台或使用 API 建立 KMS 金鑰,您必須在 IAM 政策中具有下列許可。盡可能使用條件金鑰以限制許可。例如,您可以在 IAM 政策中使用 kms: KeySpec 條件金鑰,允許主體僅建立對稱加密金鑰。
如需建立金鑰之主體的 IAM 政策範例,請參閱 允許使用者建立 KMS 金鑰。
注意
授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC。
-
公里:CreateKey是必需的。
-
kms:需要CreateAlias在主控台中建立 KMS 金鑰,其中每個新 KMS 金鑰都需要別名。
-
kms:需要TagResource在建立 KMS 金鑰時新增標籤。
-
iam:需CreateServiceLinkedRole要創建多區域主鍵。如需詳細資訊,請參閱 控制對多區域金鑰的存取。
建立 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 記錄檔和其他輸出中,這些欄位可能會以純文字顯示。
-
請登入 AWS Management Console,並開啟 AWS Key Management Service (AWS KMS) 主控台 (網站:https://console.aws.amazon.com/kms
)。 -
若要變更 AWS 區域,請使用頁面右上角的區域選取器。
-
在導覽窗格中,選擇 Customer managed keys (客戶受管金鑰)。
-
選擇建立金鑰。
-
若要建立對稱加密 KMS 金鑰,在 Key type (金鑰類型) 欄位中,選擇 Symmetric (對稱)。
如需如何在 AWS KMS 主控台中建立非對稱 KMS 金鑰的資訊,請參閱建立非對稱 KMS 金鑰 (主控台)。
-
在 Key usage (金鑰用途) 欄位中,系統會自動選取 Encrypt and decrypt (加密和解密) 選項。
如需有關如何建立可以產生和驗證 MAC 代碼的 KMS 金鑰的詳細資訊,請參閱建立 HMAC KMS 金鑰。
-
選擇下一步。
如需有關進階選項的詳細資訊,請參閱特殊用途金鑰。
-
輸入 KMS 金鑰的別名。別名名稱的開頭不可以是
aws/
。aws/
字首由 Amazon Web Services 保留,以代表您帳戶中的 AWS 受管金鑰。注意
新增、刪除或更新別名可允許或拒絕 KMS 金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC 和 使用別名來控制對 KMS 金鑰的存取。
別名是您可用來識別 KMS 金鑰的顯示名稱。我們建議您選擇別名來表示您計劃保護的資料類型,或您計劃搭配 KMS 金鑰一起使用的應用程式。
在 AWS Management Console 中建立 KMS 金鑰時需要別名。當您使用該CreateKey操作時,它們是可選的。
-
(選用) 輸入 KMS 金鑰的描述。
您可以立即新增描述或在任意時間更新,除非金鑰狀態為
Pending Deletion
或Pending Replica Deletion
。若要加入、變更或刪除現有客戶管理金鑰的描述,請編輯中的描述AWS Management Console或使用UpdateKeyDescription作業。 -
(選用) 輸入標籤索引鍵和選用標籤值。若要將其他標籤新增至 KMS 金鑰,請選擇 Add tag (新增標籤)。
注意
標記或取消標記 KMS 金鑰可以允許或拒絕 KMS 金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC 和 使用標籤來控制對 KMS 金鑰的存取。
將標籤新增到 AWS 資源時,AWS 會產生成本配置報告,內含按標籤彙總的用量與成本。標籤也可以用來控制 KMS 金鑰的存取。如需標記 KMS 金鑰的詳細資訊,請參閱 標記金鑰 和 AWS KMS 的 ABAC。
-
選擇下一步。
-
選取可管理 KMS 金鑰的 IAM 使用者和角色。
注意
此金鑰政策授予 AWS 帳戶 完全控制此 KMS 金鑰。它允許帳戶管理員使用 IAM 政策授予其他主體管理 KMS 金鑰的許可。如需詳細資訊,請參閱 預設金鑰政策。
IAM 最佳實務不建議使用具有長期憑證的 IAM 使用者。盡可能使用提供臨時憑證的 IAM 角色。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 中的安全性最佳實務。
-
(選用) 為了防止選取的 IAM 使用者和角色刪除此 KMS 金鑰,請在頁面底部的 Key deletion (金鑰刪除) 區段中,清除 Allow key administrators to delete this key (允許金鑰管理員刪除此金鑰) 核取方塊。
-
選擇下一步。
-
選取可將金鑰用於密碼編譯操作的 IAM 使用者和角色
注意
此金鑰政策授予 AWS 帳戶 完全控制此 KMS 金鑰。它允許帳戶管理員使用 IAM 政策授予其他主體在密碼編譯操作中使用 KMS 金鑰的許可。如需詳細資訊,請參閱 預設金鑰政策。
IAM 最佳實務不建議使用具有長期憑證的 IAM 使用者。盡可能使用提供臨時憑證的 IAM 角色。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 中的安全性最佳實務。
-
(選用) 您可以允許其他 AWS 帳戶 將此 KMS 金鑰用於密碼編譯操作。若要這樣做,請在頁面底部的其他 AWS 帳戶 區段中,選擇新增另一個 AWS 帳戶,然後輸入外部帳戶的 AWS 帳戶 識別號碼。若要新增多個外部帳戶,請重複此步驟。
注意
若要允許外部帳戶中的主體使用 KMS 金鑰,外部帳戶的管理員必須建立 IAM 政策來提供這些許可。如需詳細資訊,請參閱 允許其他帳戶中的使用者使用 KMS 金鑰。
-
選擇下一步。
-
檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。
-
選擇 Finish (完成) 來建立 KMS 金鑰。
建立對稱加密 KMS 金鑰 (AWS KMS API)
您可以使用該CreateKey操作來創建AWS KMS keys所有類型。以下範例使用 AWS Command Line Interface (AWS CLI)
重要
請勿在 Description
或 Tags
欄位包含機密或敏感資訊。在 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" : "*" } ] }