本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在KMS金鑰存放區中建立 AWS CloudHSM 金鑰
建立 AWS CloudHSM 金鑰存放區後,您可以在金鑰存放區 AWS KMS keys 中建立 。它們必須是對稱加密KMS金鑰和 AWS KMS 產生的金鑰材料。您無法在自訂KMS金鑰存放區中使用匯入的金鑰材料建立非對稱金鑰 、HMACKMS金鑰或金鑰。 KMS 匯入金鑰的 AWS KMS 金鑰材料此外,您無法在自訂KMS金鑰存放區中使用對稱加密金鑰來產生非對稱資料金鑰對。
若要在KMS金鑰存放區中建立 AWS CloudHSM 金鑰, AWS CloudHSM 金鑰存放區必須連線至相關聯的 AWS CloudHSM 叢集,且叢集必須至少包含兩個HSMs在不同可用區域中作用中的 。若要尋找 的連線狀態和數量HSMs,請在 中檢視AWS CloudHSM 金鑰存放區頁面 AWS Management Console。使用 API操作時,請使用 DescribeCustomKeyStores操作來驗證 AWS CloudHSM 金鑰存放區是否已連線。若要驗證叢集HSMs中的作用中數量及其可用區域,請使用 AWS CloudHSM DescribeClusters操作。
當您在KMS金鑰存放區中建立 AWS CloudHSM 金鑰時, 會在 中 AWS KMS 建立KMS金鑰 AWS KMS。但是,它會為關聯 AWS CloudHSM 叢集中的金鑰建立KMS金鑰材料。具體而言, 會將 AWS KMS 登入叢集,做為kmsuser您建立 的 CU。然後,它會在叢集中建立持久性、不可提取的 256 位元進階加密標準 (AES) 對稱金鑰。 AWS KMS 會將僅叢集中可見的金鑰標籤屬性 的值設定為KMS金鑰的 Amazon Resource Name (ARN)。
當命令成功時,新金鑰的KMS金鑰狀態為 ,Enabled
其原始伺服器為 AWS_CLOUDHSM
。您無法在建立任何KMS金鑰之後變更金鑰的原始伺服器。當您在 AWS KMS 主控台的 AWS CloudHSM 金鑰存放區中檢視KMS金鑰或使用 DescribeKey操作時,您可以看到典型屬性,例如其金鑰 ID、金鑰狀態和建立日期。但是,您也可以查看自訂金鑰存放區 ID 和 (選擇性) AWS CloudHSM
叢集 ID。
如果您嘗試在KMS金鑰存放區中建立 AWS CloudHSM 金鑰失敗,請使用錯誤訊息來協助您判斷原因。這可能表示 AWS CloudHSM 金鑰存放區未連線 (CustomKeyStoreInvalidStateException
),或相關聯的 AWS CloudHSM 叢集沒有此操作HSMs所需的兩個作用中 (CloudHsmClusterInvalidConfigurationException
)。如需協助,請參閱對自訂金鑰存放區進行故障診斷。
如需在KMS金鑰存放區中建立 AWS CloudHSM 金鑰的操作 AWS CloudTrail 日誌範例,請參閱 CreateKey。
在 CloudHSM KMS金鑰存放區中建立新的金鑰
您可以在主控台的 AWS CloudHSM AWS KMS 金鑰存放區中或使用 CreateKey操作來建立對稱加密KMS金鑰。
使用下列程序在 AWS CloudHSM 金鑰存放區中建立對稱加密KMS金鑰。
注意
請勿在別名、說明或標籤包含機密或敏感資訊。這些欄位可能會在 CloudTrail 日誌和其他輸出中以純文字顯示。
-
登入 AWS Management Console 並在 https://console.aws.amazon.com/kms
開啟 AWS Key Management Service (AWS KMS) 主控台。 -
若要變更 AWS 區域,請使用頁面右上角的區域選取器。
-
在導覽窗格中,選擇 Customer managed keys (客戶受管金鑰)。
-
選擇建立金鑰。
-
選擇 Symmetric (對稱)。
-
在 Key usage (金鑰用途) 欄位中,系統會自動選取 Encrypt and decrypt (加密和解密) 選項。請勿變更該欄位。
-
選擇 Advanced options (進階選項)。
-
對於金鑰資料來源,選擇 AWS CloudHSM 金鑰存放區。
您無法在金鑰存放區中建立多區域 AWS CloudHSM 金鑰。
-
選擇 Next (下一步)。
-
為您的新 AWS CloudHSM 金鑰選取KMS金鑰存放區。若要建立新的 AWS CloudHSM 金鑰存放區,請選擇建立自訂金鑰存放區。
您選擇的 AWS CloudHSM 金鑰存放區必須具有已連線 的狀態。其關聯的 AWS CloudHSM 叢集必須處於作用中HSMs狀態,並在不同的可用區域中包含至少兩個作用中的叢集。
如需連接 AWS CloudHSM 金鑰存放區的說明,請參閱 中斷連接 AWS CloudHSM 金鑰存放區。如需新增 的說明HSMs,請參閱 使用者指南 中的新增 HSM 。 AWS CloudHSM
-
選擇 Next (下一步)。
-
輸入KMS索引鍵的別名和選用描述。
-
(選用)。在新增標籤頁面上,新增可識別或分類KMS金鑰的標籤。
當您將標籤新增至 AWS 資源時, AWS 會產生成本分配報告,其中包含使用量和標籤彙總的成本。標籤也可用於控制對KMS金鑰的存取。如需有關標記KMS金鑰的資訊,請參閱 中的標籤 AWS KMS和 ABAC 適用於 AWS KMS。
-
選擇 Next (下一步)。
-
在金鑰管理員區段中,選取可以管理KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰管理員管理KMS金鑰 。
注意
IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。
IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用角色IAM,提供臨時憑證。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM。
-
(選用) 若要防止這些金鑰管理員刪除此KMS金鑰,請清除頁面底部的方塊,讓金鑰管理員刪除此金鑰。
-
選擇 Next (下一步)。
-
在此帳戶區段中,選取可在密碼編譯操作 中使用 AWS 帳戶 KMS金鑰IAM的使用者和角色。如需詳細資訊,請參閱允許金鑰使用者使用KMS金鑰 。
注意
IAM 政策可以授予其他IAM使用者和角色使用 KMS金鑰的許可。
IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用角色IAM,提供臨時憑證。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM。
-
(選用) 您可以允許其他 AWS 帳戶 將此KMS金鑰用於密碼編譯操作。若要這麼做,請在頁面底部的其他 AWS 帳戶區段中,選擇新增另一個 AWS 帳戶並輸入外部帳戶的 AWS 帳戶 ID。若要新增多個外部帳戶,請重複此步驟。
注意
其他 的管理員 AWS 帳戶 也必須透過為其使用者建立IAM政策來允許存取KMS金鑰。如需詳細資訊,請參閱允許其他帳戶中的使用者使用KMS金鑰。
-
選擇 Next (下一步)。
-
檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。
-
完成時,請選擇 Finish (完成) 以建立金鑰。
程序成功時,顯示器會在您選擇的KMS金鑰存放區中顯示新 AWS CloudHSM 金鑰。當您選擇新KMS金鑰的名稱或別名時,其詳細資訊頁面上的密碼編譯組態索引標籤會顯示KMS金鑰的來源 (AWS CloudHSM)、自訂金鑰存放區的名稱、ID 和類型,以及 AWS CloudHSM 叢集的 ID。如果程序失敗,則會出現錯誤訊息來描述失敗。
提示
為了更輕鬆地識別自訂KMS金鑰存放區中的金鑰,請在客戶受管金鑰頁面上,將自訂金鑰存放區 ID 欄新增至顯示。按一下右上方的齒輪圖示,然後選取 Custom key store ID (自訂金鑰存放區 ID)。如需詳細資訊,請參閱 自訂您的主控台檢視。
若要在 AWS CloudHSM 金鑰存放區中建立新的 AWS KMS key (KMS 金鑰),請使用 CreateKey操作。使用 CustomKeyStoreId
參數來識別您的自訂金鑰存放區,並指定 Origin
值為 AWS_CLOUDHSM
。
您可能還想要使用 Policy
參數來指定金鑰政策。您可以隨時變更金鑰政策 (PutKeyPolicy) 並新增選用元素,例如描述和標籤。
本節中的範例使用 AWS Command Line Interface
(AWS CLI)
下列範例從呼叫 DescribeCustomKeyStores操作開始,以確認 AWS CloudHSM 金鑰存放區已連接至其相關聯的 AWS CloudHSM 叢集。在預設情況下,此操作會傳回您帳戶和區域中的所有自訂金鑰存放區。若要僅描述特定 AWS CloudHSM 金鑰存放區,請使用其 CustomKeyStoreId
或 CustomKeyStoreName
參數 (但不能同時使用兩者)。
執行此命令之前,請將範例自訂金鑰存放區 ID 換成有效的 ID。
注意
請勿在 Description
或 Tags
欄位包含機密或敏感資訊。這些欄位可能會在 CloudTrail 日誌和其他輸出中以純文字顯示。
$
aws kms describe-custom-key-stores --custom-key-store-id
cks-1234567890abcdef0
{ "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CustomKeyStoreType": "AWS CloudHSM key store", "CloudHsmClusterId": "cluster-1a23b4cdefg", "TrustAnchorCertificate": "
<certificate string appears here>
", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED" ], }
下一個範例命令使用 DescribeClusters操作來驗證與 ExampleKeyStore
(cluster-1a23b4cdefg) 相關聯的 AWS CloudHSM 叢集至少有兩個作用中 HSMs。如果叢集的 少於兩個 HSMs,則CreateKey
操作會失敗。
$
aws cloudhsmv2 describe-clusters
{ "Clusters": [ { "SubnetMapping": { ... }, "CreateTimestamp": 1507133412.351, "ClusterId": "cluster-1a23b4cdefg", "SecurityGroup": "sg-865af2fb", "HsmType": "hsm1.medium", "VpcId": "vpc-1a2b3c4d", "BackupPolicy": "DEFAULT", "Certificates": { "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n" }, "Hsms": [ { "AvailabilityZone": "us-west-2a", "EniIp": "10.0.1.11", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-a6b10bd1", "HsmId": "hsm-abcdefghijk", "State": "ACTIVE" }, { "AvailabilityZone": "us-west-2b", "EniIp": "10.0.0.2", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-b6b10bd2", "HsmId": "hsm-zyxwvutsrqp", "State": "ACTIVE" }, ], "State": "ACTIVE" } ] }
此範例命令使用 CreateKey操作在KMS金鑰存放區中建立 AWS CloudHSM 金鑰。若要在KMS金鑰存放區中建立 AWS CloudHSM 金鑰,您必須提供金鑰存放區的自訂 AWS CloudHSM 金鑰存放區 ID,並指定Origin
值 AWS_CLOUDHSM
。
回應包含IDs自訂金鑰存放區和 AWS CloudHSM 叢集的 。
執行此命令之前,請將範例自訂金鑰存放區 ID 換成有效的 ID。
$
aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id
cks-1234567890abcdef0
{ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1.499288695918E9, "Description": "Example key", "Enabled": true, "MultiRegion": false, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_CLOUDHSM" "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreId": "cks-1234567890abcdef0" "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }