AWS KMS 使用 的範例 AWS CLI - AWS Command Line Interface

本文件 AWS CLI 僅適用於 的第 1 版。如需與 第 2 版相關的文件 AWS CLI,請參閱 第 2 版使用者指南

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

AWS KMS 使用 的範例 AWS CLI

下列程式碼範例示範如何搭配 AWS Command Line Interface 使用 來執行動作和實作常見案例 AWS KMS。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 cancel-key-deletion

AWS CLI

若要取消客戶受管KMS金鑰的排程刪除

下列cancel-key-deletion範例會取消客戶受管KMS金鑰的排程刪除。

aws kms cancel-key-deletion \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

cancel-key-deletion命令成功時,排程刪除會取消。不過,KMS金鑰的金鑰狀態為 Disabled,因此您無法在密碼編譯操作中使用KMS金鑰。若要還原其功能,請使用 enable-key命令 。

如需詳細資訊,請參閱AWS 金鑰管理服務開發人員指南中的排程和取消金鑰刪除

下列程式碼範例示範如何使用 connect-custom-key-store

AWS CLI

連接自訂金鑰存放區

下列connect-custom-key-store範例會重新連接指定的自訂金鑰存放區。您可以使用像這樣的命令來第一次連接自訂金鑰存放區,或重新連接已中斷連線的金鑰存放區。

您可以使用此命令來連接 AWS CloudHSM 金鑰存放區或外部金鑰存放區。

aws kms connect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

此命令不會傳回任何輸出。若要驗證命令是否有效,請使用 describe-custom-key-stores命令。

如需有關連接 AWS CloudHSM 金鑰存放區的資訊,請參閱 AWS Key Management Service 開發人員指南中的連接和中斷連接 AWS CloudHSM 金鑰存放區。

如需有關連接外部金鑰存放區的資訊,請參閱金鑰管理服務開發人員指南中的連接和中斷連接外部金鑰存放區。 AWS

下列程式碼範例示範如何使用 create-alias

AWS CLI

為KMS金鑰建立別名

下列create-alias命令會為KMS金鑰 ID 所識別的金鑰建立名為 example-alias的別名1234abcd-12ab-34cd-56ef-1234567890ab

別名名稱必須以 開頭alias/。請勿使用以 開頭的別名名稱alias/aws;這些名稱會保留供 使用 AWS。

aws kms create-alias \ --alias-name alias/example-alias \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會傳回任何輸出。若要查看新的別名,請使用 list-aliases命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用別名

  • 如需API詳細資訊,請參閱 命令參考 CreateAlias中的 。 AWS CLI

下列程式碼範例示範如何使用 create-custom-key-store

AWS CLI

範例 1:建立 AWS CloudHSM 金鑰存放區

下列create-custom-key-store範例會使用所需的參數建立由 AWS CloudHSM 叢集支援的 AWS CloudHSM 金鑰存放區。您也可以新增 custom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM

若要在 中指定trust-anchor-certificate命令的檔案輸入 AWS CLI,需要字file://首。

aws kms create-custom-key-store \ --custom-key-store-name ExampleCloudHSMKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate file://customerCA.crt

輸出:

{ "CustomKeyStoreId": cks-1234567890abcdef0 }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的建立 AWS 雲端HSM金鑰存放區。

範例 2:建立具有公有端點連線能力的外部金鑰存放區

下列create-custom-key-store範例會建立透過網際網路與 AWS KMS 通訊的外部金鑰存放區 (XKS)。

在此範例中, XksProxyUriPath會使用選用的 字首example-prefix

NOTE:如果您使用 AWS CLI 1.0 版,請在指定具有 HTTP或 HTTPS值的參數之前執行下列命令,例如 XksProxyUriEndpoint 參數。

aws configure set cli_follow_urlparam false

否則, AWS CLI1.0 版會將 參數值取代為該URI地址找到的內容。

aws kms create-custom-key-store \ --custom-key-store-name ExamplePublicEndpointXKS \ --custom-key-store-type EXTERNAL_KEY_STORE \ --xks-proxy-connectivity PUBLIC_ENDPOINT \ --xks-proxy-uri-endpoint "https://myproxy.xks.example.com" \ --xks-proxy-uri-path "/example-prefix/kms/xks/v1" \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

輸出:

{ "CustomKeyStoreId": cks-2234567890abcdef0 }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的建立外部金鑰存放區。 AWS

範例 3:建立具有VPC端點服務連線的外部金鑰存放區

下列create-custom-key-store範例會建立使用 Amazon VPC端點服務與 通訊的外部金鑰存放區 (XKS) AWS KMS。

NOTE:如果您使用 AWS CLI 1.0 版,請在指定具有 HTTP或 HTTPS值的參數之前執行下列命令,例如 XksProxyUriEndpoint 參數。

aws configure set cli_follow_urlparam false

否則, AWS CLI1.0 版會將 參數值取代為該URI地址找到的內容。

aws kms create-custom-key-store \ --custom-key-store-name ExampleVPCEndpointXKS \ --custom-key-store-type EXTERNAL_KEY_STORE \ --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ --xks-proxy-uri-path "/kms/xks/v1" \ --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example1" \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

輸出:

{ "CustomKeyStoreId": cks-3234567890abcdef0 }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的建立外部金鑰存放區。 AWS

下列程式碼範例示範如何使用 create-grant

AWS CLI

建立授予

下列create-grant範例會建立授予,允許使用者exampleUser1234abcd-12ab-34cd-56ef-1234567890ab範例KMS金鑰上使用 decrypt命令。淘汰主體是 adminRole角色。只有在decrypt請求中的加密內容包含"Department": "IT"鍵值對時,授予才會使用EncryptionContextSubset授予限制來允許此許可。

aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::123456789012:user/exampleUser \ --operations Decrypt \ --constraints EncryptionContextSubset={Department=IT} \ --retiring-principal arn:aws:iam::123456789012:role/adminRole

輸出:

{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }

若要檢視授予的詳細資訊,請使用 list-grants命令。

如需詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南 中的 授予 AWS KMS

  • 如需API詳細資訊,請參閱 命令參考 CreateGrant中的 。 AWS CLI

下列程式碼範例示範如何使用 create-key

AWS CLI

範例 1:在 中建立客戶受管KMS金鑰 AWS KMS

下列create-key範例會建立對稱加密KMS金鑰。

若要建立基本KMS金鑰、對稱加密金鑰,您不需要指定任何參數。這些參數的預設值會建立對稱加密金鑰。

由於此命令未指定金鑰政策,KMS因此金鑰會取得以程式設計方式建立之金鑰的預設金鑰政策。 KMS若要檢視金鑰政策,請使用 get-key-policy命令。若要變更金鑰政策,請使用 put-key-policy命令。

aws kms create-key

create-key 命令會傳回金鑰中繼資料,包括金鑰 ID 和新KMS金鑰ARN的 。您可以使用這些值來識別其他 AWS KMS操作中的KMS金鑰。輸出不包含標籤。若要檢視KMS金鑰的標籤,請使用 list-resource-tags command

輸出:

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

注意: create-key命令不允許您指定別名,若要為新KMS金鑰建立別名,請使用 create-alias命令。

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的建立AWS 金鑰

範例 2:建立用於加密和解密的非對稱RSAKMS金鑰

下列create-key範例會建立金鑰KMS,其中包含用於加密和解密的非對稱RSA金鑰對。

aws kms create-key \ --key-spec RSA_4096 \ --key-usage ENCRYPT_DECRYPT

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2021-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "RSA_4096", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "RSA_4096", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" } }

如需詳細資訊,請參閱 金鑰管理服務開發人員指南 中的非對稱 AWS KMSAWS 金鑰

範例 3:建立非對稱橢圓曲線KMS金鑰以進行簽署和驗證

建立非對稱KMS金鑰,其中包含用於簽署和驗證的非對稱橢圓曲線 (ECC) 金鑰對。即使 --key-usage 參數SIGN_VERIFY是ECCKMS金鑰的唯一有效值,仍需要 參數。

aws kms create-key \ --key-spec ECC_NIST_P521 \ --key-usage SIGN_VERIFY

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "ECC_NIST_P521", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "ECC_NIST_P521", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "MultiRegion": false, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }

如需詳細資訊,請參閱 金鑰管理服務開發人員指南 中的非對稱 AWS KMSAWS 金鑰

範例 4:建立HMACKMS金鑰

下列create-key範例會建立 384 位元HMACKMS金鑰。即使 --key-usage 參數是HMACKMS金鑰的唯一有效GENERATE_VERIFY_MAC值,仍需要 參數的值。

aws kms create-key \ --key-spec HMAC_384 \ --key-usage GENERATE_VERIFY_MAC

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "HMAC_384", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "HMAC_384", "KeyState": "Enabled", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_384" ], "MultiRegion": false, "Origin": "AWS_KMS" } }

如需詳細資訊,請參閱 HMAC金鑰管理服務開發人員指南 AWS KMS AWS 中的金鑰

範例 4:建立多區域主KMS金鑰

下列create-key範例會建立多區域主要對稱加密金鑰。由於所有參數的預設值都會建立對稱加密金鑰,因此此KMS金鑰只需要 --multi-region 參數。在 中 AWS CLI,若要指示布林值參數為 true,只需指定參數名稱即可。

aws kms create-key \ --multi-region

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "AWSAccountId": "111122223333", "CreationDate": "2021-09-02T016:15:21-09:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "Region": "us-west-2" }, "ReplicaKeys": [] }, "Origin": "AWS_KMS" } }

如需詳細資訊,請參閱 金鑰管理服務開發人員指南 中的非對稱 AWS KMSAWS 金鑰

範例 5:為匯入的KMS金鑰材料建立金鑰

下列create-key範例會建立不含KMS金鑰材料的金鑰。操作完成後,您可以將自己的金鑰材料匯入KMS金鑰。若要建立此KMS金鑰,請將 --origin 參數設定為 EXTERNAL

aws kms create-key \ --origin EXTERNAL

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": false, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingImport", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL" } }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的在金鑰中 AWS KMS匯入金鑰材料AWS

範例 6:在 AWS CloudHSM KMS金鑰存放區中建立金鑰

下列create-key範例會在指定的 AWS CloudHSM KMS金鑰存放區中建立金鑰。操作會在 中 AWS KMS建立KMS金鑰及其中繼資料,並在與自訂金鑰存放區相關聯的 AWS CloudHSM 叢集中建立金鑰材料。--custom-key-store-id--origin 是必要參數。

aws kms create-key \ --origin AWS_CLOUDHSM \ --custom-key-store-id cks-1234567890abcdef0

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_CLOUDHSM" } }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的AWS 雲端HSM金鑰存放區。

範例 7:在外部KMS金鑰存放區中建立金鑰

下列create-key範例會在指定的外部KMS金鑰存放區中建立金鑰。此命令中需要 --custom-key-store-id--origin--xks-key-id 參數。

--xks-key-id 參數指定外部金鑰管理器中現有對稱加密金鑰的 ID。此金鑰是KMS金鑰的外部金鑰材料。 --origin 參數的值必須是 EXTERNAL_KEY_STOREcustom-key-store-id 參數必須識別連接至其外部金鑰存放區代理的外部金鑰存放區。

aws kms create-key \ --origin EXTERNAL_KEY_STORE \ --custom-key-store-id cks-9876543210fedcba9 \ --xks-key-id bb8562717f809024

輸出:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-9876543210fedcba9", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的外部金鑰存放區。

  • 如需API詳細資訊,請參閱 命令參考 CreateKey中的 。 AWS CLI

下列程式碼範例示範如何使用 decrypt

AWS CLI

範例 1:使用對稱KMS金鑰 (Linux 和 macOS解密加密的訊息

下列decrypt命令範例示範使用 解密資料的建議方法 AWS CLI。此版本說明如何在對稱KMS金鑰下解密資料。

在 file.In 中提供 --ciphertext-blob 參數值的密碼文字,使用 fileb:// 字首,告訴 讀取二進位檔案CLI的資料。如果檔案不在目前的目錄中,請輸入檔案的完整路徑。如需從檔案讀取 AWS CLI參數值的詳細資訊,請參閱 AWS 命令列介面使用者指南https://docs.aws.amazon.com/cli/latest/userguide/cliusage-parameters-file中的從檔案載入 AWS CLI參數,以及 AWS Command Line Tool 部落格 中的本機檔案參數最佳實務<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/>。指定要解密密碼文字的KMS金鑰。使用對稱KMS金鑰解密時不需要 --key-id 參數。 AWS KMS 可以取得用於加密密碼文字中中繼資料之金鑰的KMS金鑰 ID。但是,指定您正在使用的KMS金鑰始終是最佳實務。此做法可確保您使用您打算使用的KMS金鑰,並防止您使用不信任的KMS金鑰無意中解密密碼文字。請求純文字輸出作為文字值。 --query 參數會告訴 CLI, 只會從輸出取得Plaintext欄位的值。--output 參數會以文字傳回輸出。Base64 會解碼純文字,並將其儲存在檔案中。下列範例會將Plaintext參數的值 (|) 引導至 Base64 公用程式,以解碼該參數。然後,它會將解碼的輸出重新導向 (>) 至 ExamplePlaintext 檔案。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms decrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --output text \ --query Plaintext | base64 \ --decode > ExamplePlaintextFile

此命令不會產生輸出。來自 decrypt命令的輸出會進行 base64 解碼,並儲存在 檔案中。

如需詳細資訊,請參閱AWS 金鑰管理服務API參考 中的解密

範例 2:使用對稱KMS金鑰解密加密的訊息 (Windows 命令提示)

下列範例與上一個範例相同,但使用 certutil 公用程式對純文字資料進行 Base64-decode。此程序需要兩個命令,如下列範例所示。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms decrypt ^ --ciphertext-blob fileb://ExampleEncryptedFile ^ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ --output text ^ --query Plaintext > ExamplePlaintextFile.base64

執行 certutil 命令。

certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile

輸出:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

如需詳細資訊,請參閱AWS 金鑰管理服務API參考 中的解密

範例 3:使用非對稱KMS金鑰 (Linux 和 macOS解密加密的訊息

下列decrypt命令範例示範如何解密RSA非對稱KMS金鑰下加密的資料。

使用非對稱KMS金鑰時,需要指定用於加密純文字的演算法的 encryption-algorithm 參數。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms decrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --encryption-algorithm RSAES_OAEP_SHA_256 \ --output text \ --query Plaintext | base64 \ --decode > ExamplePlaintextFile

此命令不會產生輸出。來自 decrypt命令的輸出會進行 base64 解碼,並儲存在 檔案中。

如需詳細資訊,請參閱 金鑰管理服務開發人員指南 中的非對稱 AWS KMSAWS 金鑰

  • 如需API詳細資訊,請參閱 AWS CLI 命令參考 中的解密

下列程式碼範例示範如何使用 delete-alias

AWS CLI

若要刪除 AWS KMS別名

下列delete-alias範例會刪除別名 alias/example-alias。別名名稱必須以別名/ 開頭。

aws kms delete-alias \ --alias-name alias/example-alias

此命令不會產生輸出。若要尋找別名,請使用 list-aliases命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的刪除別名

  • 如需API詳細資訊,請參閱 命令參考 DeleteAlias中的 。 AWS CLI

下列程式碼範例示範如何使用 delete-custom-key-store

AWS CLI

若要刪除自訂金鑰存放區

下列delete-custom-key-store範例會刪除指定的自訂金鑰存放區。

刪除 AWS CloudHSM 金鑰存放區不會影響相關聯的 CloudHSM 叢集。刪除外部金鑰存放區不會影響相關聯的外部金鑰存放區代理、外部金鑰管理員或外部金鑰。

NOTE:您必須先排程刪除自訂金鑰存放KMS區中的所有金鑰,然後等待刪除這些KMS金鑰。然後,您必須中斷連接自訂金鑰存放區。如需尋找自訂KMS金鑰存放區中金鑰的協助,請參閱AWS 金鑰管理服務開發人員指南中的刪除 AWS 雲端HSM金鑰存放區 (API)

delete-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

此命令不會傳回任何輸出。若要確認自訂金鑰存放區已刪除,請使用 describe-custom-key-stores命令。

如需刪除 AWS CloudHSM 金鑰存放區的相關資訊,請參閱 AWS Key Management Service 開發人員指南中的刪除 AWS CloudHSM 金鑰存放區。

如需刪除外部金鑰存放區的相關資訊,請參閱AWS 金鑰管理服務開發人員指南中的刪除外部金鑰存放區。

下列程式碼範例示範如何使用 delete-imported-key-material

AWS CLI

從金鑰中刪除匯入的KMS金鑰材料

下列delete-imported-key-material範例會刪除已匯入金鑰的KMS金鑰材料。

aws kms delete-imported-key-material \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要驗證金鑰材料是否已刪除,請使用 describe-key命令來尋找 PendingImport或 的金鑰狀態PendingDeletion

如需詳細資訊,請參閱金鑰AWS 管理服務開發人員指南中的刪除匯入的金鑰材料<https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-delete-key-material.html>。

下列程式碼範例示範如何使用 derive-shared-secret

AWS CLI

若要衍生共用密碼

下列derive-shared-secret範例使用金鑰協議演算法衍生共用秘密。

您必須使用值為 的非對稱 NIST建議的橢圓曲線 (ECC) 或 SM2(僅限中國區域) KMS金鑰對KeyUsageKEY_AGREEMENT來呼叫 DeriveSharedSecret。

aws kms derive-shared-secret \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-agreement-algorithm ECDH \ --public-key "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"

輸出:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }

如需詳細資訊,請參閱 金鑰管理服務參考 DeriveSharedSecret 中的 。 AWS API

下列程式碼範例示範如何使用 describe-custom-key-stores

AWS CLI

範例 1:取得 AWS CloudHSM 金鑰存放區的詳細資訊

下列describe-custom-key-store範例顯示指定 AWS CloudHSM 金鑰存放區的詳細資訊。命令在所有類型的自訂金鑰存放區都相同,但輸出會因金鑰存放區類型而有所不同,而對於外部金鑰存放區,則會有其連線選項。

根據預設,此命令會顯示帳戶和區域中所有自訂金鑰存放區的相關資訊。若要顯示特定自訂金鑰存放區的相關資訊,請使用 custom-key-store-namecustom-key-store-id 參數。

aws kms describe-custom-key-stores \ --custom-key-store-name ExampleCloudHSMKeyStore

此命令的輸出包含有關 AWS CloudHSM 金鑰存放區的實用詳細資訊,包括其連線狀態 (ConnectionState)。如果連線狀態為 FAILED,輸出會包含描述問題ConnectionErrorCode的欄位。

輸出:

{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "CONNECTED", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleExternalKeyStore", "TrustAnchorCertificate": "<certificate appears here>" } ] }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的檢視 AWS 雲端HSM金鑰存放區。

範例 2:取得具有公有端點連線的外部金鑰存放區詳細資訊

下列describe-custom-key-store範例顯示指定外部金鑰存放區的詳細資訊。命令在所有類型的自訂金鑰存放區都相同,但輸出會因金鑰存放區類型而有所不同,而對於外部金鑰存放區,則會有其連線選項。

根據預設,此命令會顯示帳戶和區域中所有自訂金鑰存放區的相關資訊。若要顯示特定自訂金鑰存放區的相關資訊,請使用 custom-key-store-namecustom-key-store-id 參數。

aws kms describe-custom-key-stores \ --custom-key-store-id cks-9876543210fedcba9

此命令的輸出包含有關外部金鑰存放區的實用詳細資訊,包括其連線狀態 (ConnectionState)。如果連線狀態為 FAILED,輸出會包含描述問題ConnectionErrorCode的欄位。

輸出:

{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXKS", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "PUBLIC_ENDPOINT", "UriEndpoint": "https://myproxy.xks.example.com", "UriPath": "/example-prefix/kms/xks/v1" } } ] }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的檢視外部金鑰存放區。 AWS

範例 3:取得具有VPC端點服務連線的外部金鑰存放區詳細資訊

下列describe-custom-key-store範例顯示指定外部金鑰存放區的詳細資訊。命令在所有類型的自訂金鑰存放區都相同,但輸出會因金鑰存放區類型而有所不同,而對於外部金鑰存放區,則會有其連線選項。

根據預設,此命令會顯示帳戶和區域中所有自訂金鑰存放區的相關資訊。若要顯示特定自訂金鑰存放區的相關資訊,請使用 custom-key-store-namecustom-key-store-id 參數。

aws kms describe-custom-key-stores \ --custom-key-store-id cks-2234567890abcdef0

此命令的輸出包含有關外部金鑰存放區的實用詳細資訊,包括其連線狀態 (ConnectionState)。如果連線狀態為 FAILED,輸出會包含描述問題ConnectionErrorCode的欄位。

輸出:

{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-3234567890abcdef0", "CustomKeyStoreName": "ExampleVPCExternalKeyStore", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-22T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://myproxy-private.xks.example.com", "UriPath": "/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1" } } ] }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的檢視外部金鑰存放區。 AWS

下列程式碼範例示範如何使用 describe-key

AWS CLI

範例 1:尋找KMS金鑰的詳細資訊

下列describe-key範例會在範例帳戶和區域中取得 Amazon S3 受 AWS 管金鑰的詳細資訊。您可以使用此命令來尋找受 AWS 管金鑰和客戶受管金鑰的詳細資訊。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用別名名稱值,但您可以在此命令ARN中使用金鑰 ID、金鑰 ARN、別名名稱或別名。

aws kms describe-key \ --key-id alias/aws/s3

輸出:

{ "KeyMetadata": { "AWSAccountId": "846764612917", "KeyId": "b8a9477d-836c-491f-857e-07937918959b", "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b", "CreationDate": 2017-06-30T21:44:32.140000+00:00, "Enabled": true, "Description": "Default KMS key that protects my S3 objects when no other key is defined", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "AWS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的檢視金鑰

範例 2:取得RSA非對稱KMS金鑰的詳細資訊

下列describe-key範例會取得用於簽署和驗證的非對稱RSAKMS金鑰的詳細資訊。

aws kms describe-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2019-12-02T19:47:14.861000+00:00", "CustomerMasterKeySpec": "RSA_2048", "Enabled": false, "Description": "", "KeyState": "Disabled", "Origin": "AWS_KMS", "MultiRegion": false, "KeyManager": "CUSTOMER", "KeySpec": "RSA_2048", "KeyUsage": "SIGN_VERIFY", "SigningAlgorithms": [ "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512" ] } }

範例 3:取得多區域複本金鑰的詳細資訊

下列describe-key範例取得多區域複本金鑰的中繼資料。此多區域金鑰是對稱加密金鑰。任何多區域金鑰的describe-key命令輸出會傳回有關主金鑰及其所有複本的資訊。

aws kms describe-key \ --key-id arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab

輸出:

{ "KeyMetadata": { "MultiRegion": true, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": "2021-06-28T21:09:16.114000+00:00", "Description": "", "Enabled": true, "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-west-2" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" }, { "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-northeast-1" }, { "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "sa-east-1" } ] } } }

範例 4:取得HMACKMS金鑰的詳細資訊

下列describe-key範例會取得HMACKMS金鑰的詳細資訊。

aws kms describe-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyMetadata": { "AWSAccountId": "123456789012", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2022-04-03T22:23:10.194000+00:00", "Enabled": true, "Description": "Test key", "KeyUsage": "GENERATE_VERIFY_MAC", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "HMAC_256", "MacAlgorithms": [ "HMAC_SHA_256" ], "MultiRegion": false } }
  • 如需API詳細資訊,請參閱 命令參考 DescribeKey中的 。 AWS CLI

下列程式碼範例示範如何使用 disable-key-rotation

AWS CLI

停用KMS金鑰的自動輪換

下列disable-key-rotation範例會停用客戶受管KMS金鑰的自動輪換。若要啟用自動輪換,請使用 enable-key-rotation命令。

aws kms disable-key-rotation \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要確認KMS金鑰的自動輪換已停用,請使用 get-key-rotation-status命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的輪換金鑰

下列程式碼範例示範如何使用 disable-key

AWS CLI

暫時停用KMS金鑰

下列範例使用 disable-key命令來停用客戶受管KMS金鑰。若要重新啟用KMS金鑰,請使用 enable-key命令。

aws kms disable-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的啟用和停用AWS 金鑰

  • 如需API詳細資訊,請參閱 命令參考 DisableKey中的 。 AWS CLI

下列程式碼範例示範如何使用 disconnect-custom-key-store

AWS CLI

若要中斷連接自訂金鑰存放區

下列disconnect-custom-key-store範例會中斷自訂金鑰存放區與其 AWS CloudHSM 叢集的連線。您可以中斷連接金鑰存放區,以解決問題、更新其設定,或防止金鑰存放區中的KMS金鑰用於密碼編譯操作。

此命令對所有自訂金鑰存放區都相同,包括 AWS 雲端HSM金鑰存放區和外部金鑰存放區。

執行此命令之前,請將範例自訂金鑰存放區 ID 以有效的 ID 取代。

$ aws kms disconnect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

此命令不會產生任何輸出。請確認命令是否有效,請使用 describe-custom-key-stores命令。

如需中斷連接 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的連接和中斷連接 AWS CloudHSM 金鑰存放區。

如需中斷連接外部金鑰存放區的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南 中的連接和中斷連接外部金鑰存放區

下列程式碼範例示範如何使用 enable-key-rotation

AWS CLI

若要啟用KMS金鑰的自動輪換

下列enable-key-rotation範例會啟用客戶受管KMS金鑰的自動輪換,輪換期間為 180 天。KMS 金鑰將從此命令完成之日起一年 (大約 365 天) 輪換,之後每年輪換一次。

--key-id 參數會識別KMS金鑰。此範例使用金鑰ARN值,但您可以使用金鑰 ID 或KMS金鑰ARN的 。 --rotation-period-in-days 參數會指定每個輪換日期之間的天數。指定介於 90 到 2560 天之間的值。如果未指定值,則預設值為 365 天。

aws kms enable-key-rotation \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --rotation-period-in-days 180

此命令不會產生輸出。若要確認KMS金鑰已啟用,請使用 get-key-rotation-status命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的輪換金鑰

下列程式碼範例示範如何使用 enable-key

AWS CLI

若要啟用KMS金鑰

下列enable-key範例會啟用客戶受管金鑰。您可以使用像這樣的命令來啟用您暫時停用的KMS金鑰,方法是使用 disable-key命令。您也可以使用它來啟用停用的金鑰,因為該KMS金鑰已排定刪除,且刪除已取消。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID 值,但您可以在此命令中使用金鑰 ID 或金鑰ARN值。

執行此命令之前,請將範例金鑰 ID 取代為有效的金鑰 ID。

aws kms enable-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要確認KMS金鑰已啟用,請使用 describe-key命令。請參閱describe-key輸出中 KeyStateEnabled 欄位的值。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的啟用和停用金鑰

  • 如需API詳細資訊,請參閱 命令參考 EnableKey中的 。 AWS CLI

下列程式碼範例示範如何使用 encrypt

AWS CLI

範例 1:加密 Linux 或 MacOS 上的檔案內容

下列encrypt命令示範使用 加密資料的建議方法 AWS CLI。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob | base64 \ --decode > ExampleEncryptedFile

命令會執行下列動作:

使用 --plaintext 參數指示要加密的資料。此參數值必須是 base64 編碼。 plaintext 參數的值必須是 base64 編碼,或者您必須使用 fileb:// 字首,這可讓 從 AWS CLI檔案讀取二進位資料。如果檔案不在目前的目錄中,請輸入檔案的完整路徑。例如:fileb:///var/tmp/ExamplePlaintextFilefileb://C:\Temp\ExamplePlaintextFile。如需從檔案讀取 AWS CLI參數值的詳細資訊, 請參閱AWS 命令列介面使用者指南中的從檔案載入參數,以及 AWS 命令列工具部落格上的本機檔案參數最佳實務。使用 --output--query 參數來控制命令的輸出。這些參數會擷取加密的資料, 稱為密碼文字 , 從命令的輸出。如需控制輸出的詳細資訊, 請參閱 命令列介面使用者指南 中的控制命令輸出。使用 base64 公用程式將擷取的輸出解碼為二進位資料。成功encrypt命令傳回的密碼文字是 base64 編碼文字。 AWS 您必須先解碼此文字,才能使用 AWS CLI 進行解密。將二進位密碼文字儲存到 檔案。命令 (> ExampleEncryptedFile) 的最後一個部分會將二進位密碼文字儲存到 檔案,讓解密更容易。如需使用 AWS CLI 解密資料的範例命令,請參閱解密範例。

範例 2:使用 AWS CLI加密 Windows 上的資料

此範例與上一個範例相同,除了它使用 certutil工具而非 base64。此程序需要兩個命令,如下列範例所示。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64 certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile

範例 3:使用非對稱KMS金鑰加密

下列encrypt命令顯示如何使用非對稱KMS金鑰加密純文字。--encryption-algorithm 參數是必要參數。如同所有encryptCLI命令一樣, plaintext 參數必須是 base64 編碼,或者您必須使用 fileb:// 字首,該字首會告訴 從 AWS CLI 檔案讀取二進位資料。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encryption-algorithm RSAES_OAEP_SHA_256 \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob | base64 \ --decode > ExampleEncryptedFile

此命令不會產生輸出。

  • 如需API詳細資訊,請參閱 AWS CLI 命令參考 中的加密

下列程式碼範例示範如何使用 generate-data-key-pair-without-plaintext

AWS CLI

若要產生 ECC NIST P384 非對稱資料金鑰對

下列generate-data-key-pair-without-plaintext範例會請求在 之外使用 ECC NIST P384 金鑰對 AWS。

命令會傳回純文字公有金鑰和在指定金鑰下加密的私有KMS金鑰複本。它不會傳回純文字私有金鑰。您可以安全地將加密的私有金鑰與加密的資料一起存放,並在您需要使用私有金鑰時呼叫 AWS KMS 來解密私有金鑰。

若要請求 ECC NIST P384 非對稱資料金鑰對,請使用 值為 的 key-pair-spec 參數ECC_NIST_P384

您指定的KMS金鑰必須是對稱加密KMS金鑰,也就是KeySpec值為 的KMS金鑰SYMMETRIC_DEFAULT

NOTE:此範例的輸出中的值已截斷以供顯示。

aws kms generate-data-key-pair-without-plaintext \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-pair-spec ECC_NIST_P384

輸出:

{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "ECC_NIST_P384" }

PublicKeyPrivateKeyCiphertextBlob會以 base64 編碼格式傳回。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰對

下列程式碼範例示範如何使用 generate-data-key-pair

AWS CLI

若要產生 2048 位元RSA非對稱資料金鑰對

下列generate-data-key-pair範例會請求在 之外使用 2048 位元RSA非對稱資料金鑰對 AWS。命令會傳回純文字公有金鑰和純文字私有金鑰,以供立即使用和刪除,以及在指定金鑰下加密的私有KMS金鑰複本。您可以使用加密的資料安全地存放加密的私有金鑰。

若要請求 2048 位元RSA非對稱資料金鑰對,請使用 值為 的 key-pair-spec 參數RSA_2048

您指定的KMS金鑰必須是對稱加密KMS金鑰,也就是KeySpec值為 的KMS金鑰SYMMETRIC_DEFAULT

NOTE:此範例的輸出中的值已截斷以供顯示。

aws kms generate-data-key-pair \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-pair-spec RSA_2048

輸出:

{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "RSA_2048" }

PublicKeyPrivateKeyPlaintextPrivateKeyCiphertextBlob會以 base64 編碼格式傳回。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰對

下列程式碼範例示範如何使用 generate-data-key-without-plaintext

AWS CLI

若要產生不含純文字金鑰的 256 位元對稱資料金鑰

下列generate-data-key-without-plaintext範例會請求 256 位元對稱資料金鑰的加密複本,以便在 之外使用 AWS。當您準備好使用資料金鑰時,您可以呼叫 AWS KMS 來解密資料金鑰。

若要請求 256 位元資料金鑰,請使用 值為 的 key-spec 參數AES_256。若要請求 128 位元資料金鑰,請使用 值為 的 key-spec 參數AES_128。對於所有其他資料金鑰長度,請使用 number-of-bytes 參數。

您指定的KMS金鑰必須是對稱加密KMS金鑰,亦即KMS金鑰規格值為 SYMMETRIC_ 的金鑰DEFAULT。

aws kms generate-data-key-without-plaintext \ --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --key-spec AES_256

輸出:

{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

CiphertextBlob (加密資料金鑰) 會以 base64 編碼格式傳回。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰

下列程式碼範例示範如何使用 generate-data-key

AWS CLI

範例 1:產生 256 位元對稱資料金鑰

下列generate-data-key範例會請求在 之外使用 256 位元對稱資料金鑰 AWS。命令會傳回純文字資料金鑰以供立即使用和刪除,以及在指定金鑰下加密的資料KMS金鑰複本。加密的資料金鑰可以安全地跟加密資料一起存放。

若要請求 256 位元資料金鑰,請使用 值為 的 key-spec 參數AES_256。若要請求 128 位元資料金鑰,請使用 值為 的 key-spec 參數AES_128。對於所有其他資料金鑰長度,請使用 number-of-bytes 參數。

您指定的KMS金鑰必須是對稱加密KMS金鑰,也就是KMS金鑰規格值為 SYMMETRIC_ 的金鑰DEFAULT。

aws kms generate-data-key \ --key-id alias/ExampleAlias \ --key-spec AES_256

輸出:

{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }

Plaintext (純文字資料金鑰) 和 CiphertextBlob(加密資料金鑰) 會以 base64 編碼格式傳回。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰 <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys。

範例 2:產生 512 位元對稱資料金鑰

下列generate-data-key範例會請求 512 位元對稱資料金鑰以進行加密和解密。命令會傳回純文字資料金鑰以供立即使用和刪除,以及在指定金鑰下加密的資料KMS金鑰複本。加密的資料金鑰可以安全地跟加密資料一起存放。

若要請求 128 或 256 位元以外的金鑰長度,請使用 number-of-bytes 參數。若要請求 512 位元資料金鑰,下列範例會使用值為 64 (位元組) 的 number-of-bytes 參數。

您指定的KMS金鑰必須是對稱加密KMS金鑰,也就是KMS金鑰規格值為 SYMMETRIC_ 的金鑰DEFAULT。

NOTE:此範例的輸出中的值已截斷以供顯示。

aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --number-of-bytes 64

輸出:

{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Plaintext (純文字資料金鑰) 和 CiphertextBlob(加密資料金鑰) 會以 base64 編碼格式傳回。

如需詳細資訊,請參閱AWS 金鑰管理服務開發人員指南中的資料金鑰 <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys。

  • 如需API詳細資訊,請參閱 命令參考 GenerateDataKey中的 。 AWS CLI

下列程式碼範例示範如何使用 generate-random

AWS CLI

範例 1:產生 256 位元隨機位元組字串 (Linux 或 macOs)

下列generate-random範例會產生 256 位元 (32 位元組)、Base64 編碼的隨機位元組字串。此範例會解碼位元組字串,並將其儲存在隨機檔案中。

執行此命令時,您必須使用 number-of-bytes 參數以位元組為單位指定隨機值的長度。

執行此命令時,您不會指定KMS金鑰。隨機位元組字串與任何KMS金鑰無關。

根據預設, AWS KMS 會產生隨機數字。不過,如果您指定自訂金鑰存放區<https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>,隨機位元組字串會在與自訂金鑰存放區相關聯的 AWS 雲端HSM叢集中產生。

此範例使用下列參數和值:

它使用 值為 的必要--number-of-bytes參數32來請求 32 位元組 (256 位元) https://string.It 使用 值為 的--output參數text來指示 AWS CLI將輸出傳回為文字, 而不是 JSON。它使用 從 response.It 管道 ( | ) --query parameter擷取 Plaintext 屬性的值,命令的輸出到base64公用程式, 解碼擷取的 output.It 使用重新導向運算子 ( > ) 將解碼後的位元組字串儲存到 ExampleRandom file.It 使用重新導向運算子 ( > ) 將二進位密碼文字儲存到檔案。

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom

此命令不會產生輸出。

如需詳細資訊,請參閱 金鑰管理服務參考 GenerateRandom 中的 。 AWS API

範例 2:產生 256 位元隨機數字 (Windows 命令提示字元)

下列範例使用 generate-random命令來產生 256 位元 (32 位元組)、Base64 編碼的隨機位元組字串。此範例會解碼位元組字串,並將其儲存在隨機檔案中。此範例與上一個範例相同,除了在將隨機位元組字串儲存到檔案中之前,它在 Windows 中使用certutil公用程式來對隨機位元組字串進行 base64 解碼。

首先,產生 base64 編碼的隨機位元組字串,並將其儲存在暫存檔案 中ExampleRandom.base64

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext > ExampleRandom.base64

由於generate-random命令的輸出儲存在檔案中,因此此範例不會產生輸出。

現在,請使用 certutil -decode命令來解碼ExampleRandom.base64檔案中以 base64 編碼的位元組字串。然後,它會將解碼後的位元組字串儲存在ExampleRandom檔案中。

certutil -decode ExampleRandom.base64 ExampleRandom

輸出:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

如需詳細資訊,請參閱 金鑰管理服務參考 GenerateRandom 中的 。 AWS API

  • 如需API詳細資訊,請參閱 命令參考 GenerateRandom中的 。 AWS CLI

下列程式碼範例示範如何使用 get-key-policy

AWS CLI

將金鑰政策從一個KMS金鑰複製到另一個KMS金鑰

下列get-key-policy範例會從一個KMS金鑰取得金鑰政策,並將其儲存在文字檔案中。然後,它會使用文字檔案作為政策輸入來取代不同KMS金鑰的政策。

由於 的 --policy 參數put-key-policy需要字串,因此您必須使用 --output text選項,將輸出傳回為文字字串,而不是 JSON。

aws kms get-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --query Policy \ --output text > policy.txt aws kms put-key-policy \ --policy-name default \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --policy file://policy.txt

此命令不會產生輸出。

如需詳細資訊,請參閱 參考 PutKeyPolicy中的 。 AWS KMS API

  • 如需API詳細資訊,請參閱 命令參考 GetKeyPolicy中的 。 AWS CLI

下列程式碼範例示範如何使用 get-key-rotation-status

AWS CLI

擷取KMS金鑰的輪換狀態。

下列get-key-rotation-status範例會傳回指定KMS金鑰輪換狀態的相關資訊,包括是否啟用自動輪換、輪換期間和下一個排定的輪換日期。您可以在客戶受管KMS金鑰和 AWS 受管KMS金鑰上使用此命令。不過,所有 AWS 受管KMS金鑰每年都會自動輪換。

aws kms get-key-rotation-status \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyRotationEnabled": true, "NextRotationDate": "2024-02-14T18:14:33.587000+00:00", "RotationPeriodInDays": 365 }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的輪換金鑰

下列程式碼範例示範如何使用 get-parameters-for-import

AWS CLI

取得將金鑰材料匯入KMS金鑰所需的項目

下列get-parameters-for-import範例會取得您匯入金鑰材料至KMS金鑰所需的公有金鑰和匯入權杖。當您使用 import-key-material 命令時,請務必使用匯入權杖,以及由相同get-parameters-for-import命令中傳回的公有金鑰加密的金鑰材料。此外,您在此命令中指定的包裝演算法必須是您使用公有金鑰加密金鑰材料的演算法。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID,但您可以在此命令ARN中使用金鑰 ID 或金鑰。

aws kms get-parameters-for-import \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSAES_OAEP_SHA_256 \ --wrapping-key-spec RSA_2048

輸出:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "<public key base64 encoded data>", "ImportToken": "<import token base64 encoded data>", "ParametersValidTo": 1593893322.32 }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的下載公有金鑰和匯入權杖

下列程式碼範例示範如何使用 get-public-key

AWS CLI

範例 1:下載非對稱金鑰的公有KMS金鑰

下列get-public-key範例會下載非對稱金鑰的公有KMS金鑰。

除了傳回公有金鑰之外,輸出還包含您在 外安全使用公有金鑰所需的資訊 AWS KMS,包括金鑰使用方式和支援的加密演算法。

aws kms get-public-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ] }

如需在 中使用非對稱KMS金鑰的詳細資訊 AWS KMS,請參閱AWS 金鑰管理服務API參考 中的使用對稱和非對稱金鑰

範例 2:將公有金鑰轉換為 DER 格式 (Linux 和 macOS

下列get-public-key範例會下載非對稱金鑰的公KMS有金鑰,並將其儲存在DER檔案中。

當您在 中使用 get-public-key命令時 AWS CLI,它會傳回 DER編碼的 X.509 公有金鑰,其為 Base64-encoded。此範例會以文字的形式取得 PublicKey 屬性的值。它 Base64-decodes PublicKey,並將其儲存在 public_key.der 檔案中。output 參數會以文字形式傳回輸出,而不是 JSON。--query 參數只會取得 PublicKey 屬性,而不是您在 之外安全地使用公有金鑰所需的屬性 AWS KMS。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms get-public-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --output text \ --query PublicKey | base64 --decode > public_key.der

此命令不會產生輸出。

如需在 中使用非對稱KMS金鑰的詳細資訊 AWS KMS,請參閱AWS 金鑰管理服務API參考 中的使用對稱和非對稱金鑰

  • 如需API詳細資訊,請參閱 命令參考 GetPublicKey中的 。 AWS CLI

下列程式碼範例示範如何使用 import-key-material

AWS CLI

將金鑰材料匯入KMS金鑰

下列import-key-material範例會將金鑰材料上傳至不使用KMS金鑰材料建立的金鑰。金鑰的KMS金鑰狀態必須為 PendingImport

此命令會使用您以get-parameters-for-import命令傳回的公有金鑰加密的金鑰材料。它也會使用來自相同get-parameters-for-import命令的匯入權杖。

expiration-model 參數指出金鑰材料會自動在 valid-to 參數指定的日期和時間過期。當金鑰材料過期時, AWS KMS 會刪除金鑰材料,KMS金鑰的金鑰狀態會變更為 ,Pending import而KMS金鑰會變成無法使用。若要還原KMS金鑰,您必須重新匯入相同的金鑰材料。若要使用不同的金鑰材料,您必須建立新的KMS金鑰。

在執行此命令之前,請將範例金鑰 ID 取代為有效的金鑰 ID 或ARN來自您 AWS 帳戶的金鑰。

aws kms import-key-material \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ --import-token fileb://ImportToken.bin \ --expiration-model KEY_MATERIAL_EXPIRES \ --valid-to 2021-09-21T19:00:00Z

此命令不會產生輸出。

如需匯入金鑰材料的詳細資訊,請參閱金鑰管理服務開發人員指南中的匯入金鑰材料AWS 。

下列程式碼範例示範如何使用 list-aliases

AWS CLI

範例 1:列出 AWS 帳戶和區域中的所有別名

下列範例使用 list-aliases命令來列出 AWS 帳戶預設區域中的所有別名。輸出包含與 AWS 受管KMS金鑰和客戶受管KMS金鑰相關聯的別名。

aws kms list-aliases

輸出:

{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey", "AliasName": "alias/testKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept", "AliasName": "alias/FinanceDept", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "AliasName": "alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "AliasName": "alias/aws/ebs", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef" }, ... ] }

範例 2:列出特定KMS金鑰的所有別名

下列範例使用 list-aliases命令及其key-id參數來列出與特定KMS金鑰相關聯的所有別名。

每個別名僅與一個KMS金鑰相關聯,但KMS金鑰可以具有多個別名。此命令非常有用, AWS KMS因為主控台只會為每個KMS金鑰列出一個別名。若要尋找KMS金鑰的所有別名,您必須使用 list-aliases命令。

此範例使用 --key-id 參數金鑰的KMS金鑰 ID,但您可以在此命令ARN中使用金鑰 ID、金鑰 ARN、別名名稱或別名。

aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "Aliases": [ { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key", "AliasName": "alias/oregon-test-key" }, { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test", "AliasName": "alias/project121-test" } ] }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用別名

  • 如需API詳細資訊,請參閱 命令參考 ListAliases中的 。 AWS CLI

下列程式碼範例示範如何使用 list-grants

AWS CLI

在金鑰上 AWS KMS檢視授予

下列list-grants範例顯示您帳戶中 Amazon DynamoDB 指定 AWS 受管KMS金鑰上的所有授予。此授予允許 DynamoDB 代表您使用 KMS金鑰來加密 DynamoDB 資料表,然後再寫入磁碟。您可以使用像這樣的命令來檢視 AWS 帳戶和區域中受 AWS 管KMS金鑰和客戶受管KMS金鑰上的授予。

此命令使用 key-id 參數搭配金鑰 ID 來識別KMS金鑰。您可以使用金鑰 ID 或金鑰ARN來識別KMS金鑰。若要取得 AWS 受管金鑰ARN的金鑰 ID 或KMS金鑰,請使用 list-keyslist-aliases命令。

aws kms list-grants \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出顯示授予 Amazon DynamoDB 許可,以使用KMS金鑰進行密碼編譯操作,並允許其檢視KMS金鑰 (DescribeKey) 和淘汰授予 () 的詳細資訊RetireGrantEncryptionContextSubset 限制條件會將這些許可限制為包含指定加密內容對的請求。因此,授予中的許可僅在指定的帳戶和 DynamoDB 資料表上有效。

{ "Grants": [ { "Constraints": { "EncryptionContextSubset": { "aws:dynamodb:subscriberId": "123456789012", "aws:dynamodb:tableName": "Services" } }, "IssuingAccount": "arn:aws:iam::123456789012:root", "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ], "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59", "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", "CreationDate": "2021-05-13T18:32:45.144000+00:00" } ] }

如需詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南 中的 授予 AWS KMS

  • 如需API詳細資訊,請參閱 命令參考 ListGrants中的 。 AWS CLI

下列程式碼範例示範如何使用 list-key-policies

AWS CLI

取得金鑰的KMS金鑰政策名稱

下列list-key-policies範例會取得範例帳戶和區域中客戶受管金鑰之金鑰政策的名稱。您可以使用此命令來尋找 AWS 受管金鑰和客戶受管金鑰的金鑰政策名稱。

由於唯一有效的金鑰政策名稱是 default,因此此命令沒有用。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID 值,但您可以在此命令ARN中使用金鑰 ID 或金鑰。

aws kms list-key-policies \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "PolicyNames": [ "default" ] }

如需金鑰政策的詳細資訊 AWS KMS,請參閱 金鑰管理服務開發人員指南 中的使用金鑰政策 AWS KMSAWS

  • 如需API詳細資訊,請參閱 命令參考 ListKeyPolicies中的 。 AWS CLI

下列程式碼範例示範如何使用 list-key-rotations

AWS CLI

擷取所有已完成金鑰材料輪換的相關資訊

下列list-key-rotations範例會列出指定金鑰之所有已完成KMS金鑰材料輪換的相關資訊。

aws kms list-key-rotations \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "Rotations": [ { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-03-02T10:11:36.564000+00:00", "RotationType": "AUTOMATIC" }, { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-04-05T15:14:47.757000+00:00", "RotationType": "ON_DEMAND" } ], "Truncated": false }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的輪換金鑰

  • 如需API詳細資訊,請參閱 命令參考 ListKeyRotations中的 。 AWS CLI

下列程式碼範例示範如何使用 list-keys

AWS CLI

若要取得帳戶和區域中的KMS金鑰

下列list-keys範例取得 帳戶和區域中的KMS金鑰。此命令會同時傳回 AWS 受管金鑰和客戶受管金鑰。

aws kms list-keys

輸出:

{ "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的檢視AWS 金鑰

  • 如需API詳細資訊,請參閱 命令參考 ListKeys中的 。 AWS CLI

下列程式碼範例示範如何使用 list-resource-tags

AWS CLI

取得KMS金鑰上的標籤

下列list-resource-tags範例會取得KMS金鑰的標籤。若要在KMS金鑰上新增或取代資源標籤,請使用 tag-resource命令。輸出顯示此KMS金鑰有兩個資源標籤,每個標籤都有金鑰和值。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID 值,但您可以在此命令ARN中使用金鑰 ID 或金鑰。

aws kms list-resource-tags \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "Tags": [ { "TagKey": "Dept", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }

如需在 中使用標籤的詳細資訊 AWS KMS,請參閱AWS 金鑰管理服務開發人員指南 中的標記金鑰

  • 如需API詳細資訊,請參閱 命令參考 ListResourceTags中的 。 AWS CLI

下列程式碼範例示範如何使用 list-retirable-grants

AWS CLI

檢視委託人可以淘汰的授予

下列list-retirable-grants範例顯示ExampleAdmin使用者可在 AWS 帳戶和區域中的KMS金鑰上淘汰的所有授予。您可以使用像這樣的命令來檢視任何帳戶主體都可以從 AWS 帳戶和區域中的KMS金鑰淘汰的授予。

所需retiring-principal參數的值必須是帳戶、使用者或角色的 Amazon Resource Name (ARN)。

您無法在此命令retiring-principal中為 的值指定服務,即使服務可以是退役委託人。若要尋找特定服務為淘汰主體的授予,請使用 list-grants命令。

輸出顯示ExampleAdmin使用者有權淘汰帳戶和區域中兩個不同KMS金鑰的授予。除了淘汰委託人之外,帳戶還具有淘汰帳戶中任何授予的許可。

aws kms list-retirable-grants \ --retiring-principal arn:aws:iam::111122223333:user/ExampleAdmin

輸出:

{ "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e", "Name": "", "CreationDate": 2021-01-14T20:17:36.419000+00:00, "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Encrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } }, { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "Name": "", "CreationDate": "2021-02-02T19:49:49.638000+00:00", "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Decrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } } ], "Truncated": false }

如需詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南 中的 授予 AWS KMS

下列程式碼範例示範如何使用 put-key-policy

AWS CLI

若要變更金鑰的KMS金鑰政策

下列put-key-policy範例會變更客戶受管金鑰的金鑰政策。

若要開始,請建立金鑰政策並將其儲存在本機JSON檔案中。在此範例中,檔案為 key_policy.json。您也可以將金鑰政策指定為 policy 參數的字串值。

此金鑰政策中的第一個陳述式授予 AWS 帳戶使用IAM政策來控制對KMS金鑰的存取的許可。第二個陳述式提供test-user使用者在KMS金鑰上執行 describe-keylist-keys命令的許可。

key_policy.json 的內容:

{ "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" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:DescribeKey", "kms:ListKeys" ], "Resource" : "*" } ] }

若要識別KMS金鑰,此範例會使用金鑰 ID,但您也可以使用金鑰 ARN。若要指定金鑰政策,命令會使用 policy 參數。若要指出政策位於檔案中,會使用所需的file://字首。識別所有支援的作業系統上的檔案時,需要此字首。最後, 命令會使用 值為 的 policy-name 參數default。如果未指定政策名稱,則預設值為 default。唯一有效的值為 default

aws kms put-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --policy file://key_policy.json

此命令不會產生任何輸出。若要驗證命令是否有效,請使用 get-key-policy命令。下列範例命令會取得相同金鑰的KMS金鑰政策。值為 的 output 參數會text傳回易於讀取的文字格式。

aws kms get-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --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" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:Describe", "kms:List" ], "Resource" : "*" } ] }

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的變更金鑰政策AWS

  • 如需API詳細資訊,請參閱 命令參考 PutKeyPolicy中的 。 AWS CLI

下列程式碼範例示範如何使用 re-encrypt

AWS CLI

範例 1:在不同的對稱KMS金鑰 (Linux 和 macOS ) 下重新加密訊息。

下列re-encrypt命令範例示範使用 重新加密資料的建議方法 AWS CLI。

在 file.In 中提供 --ciphertext-blob 參數值的密碼文字,使用 fileb:// 字首,告訴 讀取二進位檔案CLI的資料。如果檔案不在目前的目錄中,請輸入檔案的完整路徑。如需從檔案讀取 AWS CLI參數值的詳細資訊,請參閱 AWS 命令列介面使用者指南https://docs.aws.amazon.com/cli/latest/userguide/cliusage-parameters-file中的從檔案載入 AWS CLI參數,以及 AWS Command Line Tool 部落格 中的本機檔案參數最佳實務<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/>。指定來源KMS金鑰,以解密加密文字。使用對稱加密KMS金鑰解密時不需要 --source-key-id 參數。 AWS KMS 可以取得用來加密加密加密加密加密文字 Blob 中中繼資料資料的KMS金鑰。但是,指定您正在使用的KMS金鑰始終是最佳實務。此做法可確保您使用您打算使用的KMS金鑰,並防止您使用不信任的KMS金鑰意外解密密碼文字。指定目的地KMS金鑰,重新加密資料。--destination-key-id參數始終是必要的。此範例使用金鑰 ARN,但您可以使用任何有效的金鑰識別符。請求純文字輸出作為文字值。 --query 參數會告訴 僅從輸出CLI取得Plaintext欄位的值。--output 參數會以文字傳回輸出。Base64 解碼純文字,並將其儲存在檔案中。下列範例會將Plaintext參數的值 (|) 引導至 Base64 公用程式,以解碼該參數。然後,它會將解碼的輸出重新導向 (>) 至 ExamplePlaintext 檔案。

執行此命令之前,請將範例金鑰取代IDs為 AWS 帳戶中的有效金鑰識別符。

aws kms re-encrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --query CiphertextBlob \ --output text | base64 --decode > ExampleReEncryptedFile

此命令不會產生輸出。來自 re-encrypt命令的輸出會進行 base64 解碼,並儲存在檔案中。

如需詳細資訊,請參閱 AWS 金鑰管理服務API參考 中的 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html。

範例 2:在不同的對稱KMS金鑰 (Windows 命令提示) 下重新加密訊息。

下列re-encrypt命令範例與上一個命令範例相同,但它使用 certutil 公用程式對純文字資料進行 Base64-decode。此程序需要兩個命令,如下列範例所示。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms re-encrypt ^ --ciphertext-blob fileb://ExampleEncryptedFile ^ --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 ^ --query CiphertextBlob ^ --output text > ExampleReEncryptedFile.base64

然後使用 certutil 公用程式

certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile

輸出:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

如需詳細資訊,請參閱 AWS 金鑰管理服務API參考 中的 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html。

  • 如需API詳細資訊,請參閱 命令參考 ReEncrypt中的 。 AWS CLI

下列程式碼範例示範如何使用 retire-grant

AWS CLI

淘汰客戶主金鑰的授予

下列retire-grant範例會從KMS金鑰刪除授予。

下列範例命令會指定 grant-idkey-id 參數。key-id 參數的值必須是KMS金鑰ARN的金鑰。

aws kms retire-grant \ --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要確認授予已淘汰,請使用 list-grants命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的淘汰和撤銷授予

  • 如需API詳細資訊,請參閱 命令參考 RetireGrant中的 。 AWS CLI

下列程式碼範例示範如何使用 revoke-grant

AWS CLI

撤銷客戶主金鑰的授予

下列revoke-grant範例會從KMS金鑰刪除授予。下列範例命令會指定 grant-idkey-id 參數。key-id 參數的值可以是金鑰 ID 或ARNKMS金鑰。

aws kms revoke-grant \ --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要確認授予已撤銷,請使用 list-grants命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的淘汰和撤銷授予

  • 如需API詳細資訊,請參閱 命令參考 RevokeGrant中的 。 AWS CLI

下列程式碼範例示範如何使用 rotate-key-on-demand

AWS CLI

執行KMS金鑰的隨需輪換

下列rotate-key-on-demand範例會立即啟動指定金鑰的KMS金鑰材料輪換。

aws kms rotate-key-on-demand \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

輸出:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }

如需詳細資訊,請參閱 Key Management Service 開發人員指南中的如何執行隨需金鑰輪換AWS

下列程式碼範例示範如何使用 schedule-key-deletion

AWS CLI

排程刪除客戶受管KMS金鑰。

下列schedule-key-deletion範例會排程要在 15 天內刪除的指定客戶受管KMS金鑰。

--key-id 參數會識別KMS金鑰。此範例使用金鑰ARN值,但您可以使用金鑰 ID 或KMS金鑰ARN的 。 --pending-window-in-days 參數會指定 7-30 天等待期的長度。根據預設,等待期為 30 天。此範例會指定 15 的值,該值 AWS 會在命令完成後 15 天永久刪除KMS金鑰。

aws kms schedule-key-deletion \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --pending-window-in-days 15

回應包含金鑰 ARN、金鑰狀態、等待期間 (PendingWindowInDays) 和刪除日期,以 Unix 時間表示。若要在本機時間檢視刪除日期,請使用 AWS KMS 主控台。KMS PendingDeletion金鑰狀態的金鑰無法用於密碼編譯操作。

{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": "2022-06-18T23:43:51.272000+00:00", "KeyState": "PendingDeletion", "PendingWindowInDays": 15 }

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的刪除金鑰

下列程式碼範例示範如何使用 sign

AWS CLI

範例 1:為訊息產生數位簽章

下列sign範例會產生短訊息的密碼編譯簽章。命令的輸出包含 base-64 編碼Signature欄位,您可以使用 verify命令進行驗證。

您必須指定要簽署的訊息,以及非對稱KMS金鑰支援的簽署演算法。若要取得KMS金鑰的簽署演算法,請使用 describe-key命令。

在 AWS CLI 2.0 中, message 參數的值必須是 Base64-encoded。或者,您可以將訊息儲存在檔案中,並使用 fileb:// 字首,告訴 從 AWS CLI檔案中讀取二進位資料。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。金鑰 ID 必須代表KMS金鑰用量為 SIGN_ 的非對稱金鑰VERIFY。

msg=(echo 'Hello World' | base64) aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://UnsignedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256

輸出:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...", "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

如需在 中使用非對稱KMS金鑰的詳細資訊 AWS KMS,請參閱 AWS 金鑰管理服務開發人員指南 中的 非對稱金鑰 AWS KMS

範例 2:在檔案中儲存數位簽章 (Linux 和 macOs)

下列sign範例會為儲存在本機檔案中的短訊息產生密碼編譯簽章。命令也會從回應取得 Signature 屬性,Base64-decodes該屬性,並將其儲存在 ExampleSignature 檔案中。您可以在驗證簽章的verify命令中使用簽章檔案。

sign命令需要 Base64-encoded的訊息和非對稱KMS金鑰支援的簽署演算法。若要取得KMS金鑰支援的簽署演算法,請使用 describe-key命令。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。金鑰 ID 必須代表KMS金鑰用量為 SIGN_ 的非對稱金鑰VERIFY。

echo 'hello world' | base64 > EncodedMessage aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --output text \ --query Signature | base64 --decode > ExampleSignature

此命令不會產生輸出。此範例會擷取輸出的 Signature 屬性,並將其儲存在檔案中。

如需在 中使用非對稱KMS金鑰的詳細資訊 AWS KMS,請參閱 AWS 金鑰管理服務開發人員指南 中的 非對稱金鑰 AWS KMS

  • 如需API詳細資訊,請參閱登入AWS CLI 命令參考

下列程式碼範例示範如何使用 tag-resource

AWS CLI

將標籤新增至KMS金鑰

下列tag-resource範例會將 "Purpose":"Test""Dept":"IT" 標籤新增至客戶受管KMS金鑰。您可以使用這類標籤來標記KMS金鑰,並建立用於許可和稽核的KMS金鑰類別。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID 值,但您可以在此命令ARN中使用金鑰 ID 或金鑰。

aws kms tag-resource \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'

此命令不會產生輸出。若要檢視KMS金鑰上的 AWS KMS標籤,請使用 list-resource-tags命令。

如需在 中使用標籤的詳細資訊 AWS KMS,請參閱AWS 金鑰管理服務開發人員指南 中的標記金鑰

  • 如需API詳細資訊,請參閱 命令參考 TagResource中的 。 AWS CLI

下列程式碼範例示範如何使用 untag-resource

AWS CLI

從KMS金鑰刪除標籤

下列untag-resource範例會從客戶受管"Purpose"金鑰刪除具有 KMS金鑰的標籤。

若要指定KMS金鑰,請使用 key-id 參數。此範例使用金鑰 ID 值,但您可以在此命令ARN中使用金鑰 ID 或金鑰。在執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms untag-resource \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --tag-key 'Purpose'

此命令不會產生輸出。若要檢視KMS金鑰上的 AWS KMS標籤,請使用 list-resource-tags命令。

如需在 中使用標籤的詳細資訊 AWS KMS,請參閱AWS 金鑰管理服務開發人員指南 中的標記金鑰

  • 如需API詳細資訊,請參閱 命令參考 UntagResource中的 。 AWS CLI

下列程式碼範例示範如何使用 update-alias

AWS CLI

將別名與不同的KMS金鑰建立關聯

下列update-alias範例會將別名alias/test-key與不同的KMS金鑰建立關聯。

--alias-name 參數指定別名。別名名稱值必須以 開頭alias/--target-key-id 參數會指定要與別名建立關聯的KMS金鑰。您不需要為別名指定目前的KMS金鑰。

aws kms update-alias \ --alias-name alias/test-key \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab

此命令不會產生輸出。若要尋找別名,請使用 list-aliases命令。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的更新別名

  • 如需API詳細資訊,請參閱 命令參考 UpdateAlias中的 。 AWS CLI

下列程式碼範例示範如何使用 update-custom-key-store

AWS CLI

範例 1:編輯自訂金鑰存放區的易記名稱

下列update-custom-key-store範例會變更自訂金鑰存放區的名稱。此範例適用於 AWS CloudHSM 金鑰存放區或外部金鑰存放區。

使用 custom-key-store-id來識別金鑰存放區。使用 new-custom-key-store-name 參數來指定新的易記名稱。

若要更新 AWS CloudHSM 金鑰存放區易記的名稱,您必須先中斷連接金鑰存放區,例如使用 disconnect-custom-key-store命令。您可以在外部金鑰存放區連線或中斷連線時,更新其易記的名稱。若要尋找自訂金鑰存放區的連線狀態,請使用 describe-custom-key-store命令。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --new-custom-key-store-name ExampleKeyStore

此命令不會傳回任何資料。若要驗證命令是否正常運作,請使用 describe-custom-key-stores命令。

如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的編輯 AWS CloudHSM 金鑰存放區設定

如需更新外部金鑰存放區的詳細資訊,請參閱金鑰管理服務開發人員指南中的編輯外部金鑰存放區屬性AWS

範例 2:編輯 AWS CloudHSM 金鑰存放區的 kmsuser 密碼

下列update-custom-key-store範例會將kmsuser密碼的值更新為與指定金鑰存放區相關聯之 CloudHSM 叢集kmsuser中 的目前密碼。此命令不會變更其叢集kmsuser的密碼。它只會告訴 AWS KMS目前的密碼。如果 KMS沒有目前的kmsuser密碼,則無法連線至 AWS CloudHSM 金鑰存放區。

NOTE:在更新 AWS CloudHSM 金鑰存放區之前,您必須先中斷連線。使用 disconnect-custom-key-store 命令。命令完成後,您可以重新連接 AWS CloudHSM 金鑰存放區。使用 connect-custom-key-store 命令。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --key-store-password ExamplePassword

此命令不會傳回任何輸出。若要驗證變更是否有效,請使用 describe-custom-key-stores命令。

如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的編輯 AWS CloudHSM 金鑰存放區設定

範例 3:編輯 AWS CloudHSM 金鑰存放區的 AWS CloudHSM 叢集

下列範例會將與 AWS CloudHSM 金鑰存放區相關聯的 AWS CloudHSM 叢集變更為相關叢集,例如相同叢集的不同備份。

NOTE:在更新 AWS CloudHSM 金鑰存放區之前,您必須中斷連線。使用 disconnect-custom-key-store 命令。命令完成後,您可以重新連接 AWS CloudHSM 金鑰存放區。使用 connect-custom-key-store 命令。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --cloud-hsm-cluster-id cluster-1a23b4cdefg

此命令不會傳回任何輸出。若要驗證變更是否有效,請使用 describe-custom-key-stores命令。

如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的編輯 AWS CloudHSM 金鑰存放區設定

範例 4:編輯外部金鑰存放區的代理身分驗證憑證

下列範例會更新外部金鑰存放區的代理身分驗證憑證。您必須同時指定 raw-secret-access-keyaccess-key-id,即使您只變更其中一個值。您可以使用此功能來修正無效的憑證,或在外部金鑰存放區代理輪換憑證時變更憑證。

在外部金鑰存放區上建立 的 AWS KMS代理身分驗證憑證。然後,使用此命令將憑證提供給 AWS KMS。 AWS KMS 使用此憑證簽署其請求給您的外部金鑰存放區代理。

您可以在外部金鑰存放區連線或中斷連線時更新代理身分驗證憑證。若要尋找自訂金鑰存放區的連線狀態,請使用 describe-custom-key-store命令。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

此命令不會傳回任何輸出。若要驗證變更是否有效,請使用 describe-custom-key-stores命令。

如需更新外部金鑰存放區的詳細資訊,請參閱 金鑰管理服務開發人員指南 中的編輯外部金鑰存放區屬性AWS

範例 5:編輯外部金鑰存放區的代理連線

下列範例會將外部金鑰存放區代理連線選項從公有端點連線變更為VPC端點服務連線。除了變更xks-proxy-connectivity值之外,您還必須變更xks-proxy-uri-endpoint值,以反映與VPC端點服務相關聯的私有DNS名稱。您也必須新增 xks-proxy-vpc-endpoint-service-name值。

NOTE:在更新外部存放區的代理連線之前,您必須中斷連線。使用 disconnect-custom-key-store 命令。命令完成後,您可以使用 connect-custom-key-store命令重新連接外部金鑰存放區。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example"

此命令不會傳回任何輸出。若要驗證變更是否有效,請使用 describe-custom-key-stores命令。

如需更新外部金鑰存放區的詳細資訊,請參閱金鑰管理服務開發人員指南中的編輯外部金鑰存放區屬性AWS

下列程式碼範例示範如何使用 update-key-description

AWS CLI

範例 1:新增或變更描述至客戶受管KMS金鑰

下列update-key-description範例會將描述新增至客戶受管KMS金鑰。您可以使用相同的命令來變更現有的描述。

--key-id 參數會識別 命令中的KMS金鑰。此範例使用金鑰ARN值,但您可以使用金鑰 ID 或KMS金鑰ARN的金鑰。 --description 參數會指定新的描述。此參數的值會取代索引KMS鍵的目前描述,如果有的話。

aws kms update-key-description \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --description "IT Department test key"

此命令不會產生輸出。若要檢視KMS金鑰的描述,請使用 describe-key命令。

如需詳細資訊,請參閱 金鑰管理服務參考 UpdateKeyDescription 中的 。 AWS API

範例 2:刪除客戶受管KMS金鑰的描述

下列update-key-description範例會將描述刪除為客戶受管KMS金鑰。

--key-id 參數會識別 命令中的KMS金鑰。此範例使用金鑰 ID 值,但您可以使用金鑰 ID 或KMS金鑰ARN的金鑰。具有空字串值 ('') 的 --description 參數會刪除現有的描述。

aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''

此命令不會產生輸出。若要檢視KMS金鑰的描述,請使用 describe-key 命令。

如需詳細資訊,請參閱 金鑰管理服務參考 UpdateKeyDescription 中的 。 AWS API

下列程式碼範例示範如何使用 verify

AWS CLI

驗證數位簽章

下列verify範例會驗證簡短的 Base64-encoded訊息的密碼編譯簽章。金鑰 ID、訊息、訊息類型和簽署演算法必須與用來簽署訊息的演算法相同。您指定的簽章不能是 base64 編碼。如需協助解碼sign命令傳回的簽章,請參閱sign命令範例。

命令的輸出包含布林SignatureValid值欄位,指出簽章已驗證。如果簽章驗證失敗,verify命令也會失敗。

執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。

aws kms verify \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --signature fileb://ExampleSignature

輸出:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

如需在 中使用非對稱KMS金鑰的詳細資訊 AWS KMS,請參閱 AWS 金鑰管理服務開發人員指南 中的使用非對稱金鑰

  • 如需API詳細資訊,請參閱在AWS CLI 命令參考 驗證