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

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

AWS KMS 使用範例 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 AWS KMS。

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

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

主題

動作

下列程式碼範例會示範如何使用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 CloudHSM 金鑰存放區的AWS 連線。

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

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

AWS CLI

建立 KMS 金鑰的別名

下列create-alias命令會建立以金鑰 ID 識別example-alias的 KMS 金鑰命名的別名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 金鑰管理服務開發人員指南中的使用別名

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

下列程式碼範例會示範如何使用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.

若要在 AWS CLI 中指定trust-anchor-certificate命令的檔案輸入,則需要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 CloudHSM AWS 金鑰存放區

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

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

在此範例中,XksProxyUriPath使用的選擇性前置詞example-prefix

注意:如果您使用 AWS CLI 1.0 版,請先執行下列命令,然後再使用 HTTP 或 HTTPS 值 (例如參數) 指定 XksProxyUriEndpoint 參數。

aws configure set cli_follow_urlparam false

否則, AWS CLI 1.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 }

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

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

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

注意:如果您使用 AWS CLI 1.0 版,請先執行下列命令,然後再使用 HTTP 或 HTTPS 值 (例如參數) 指定 XksProxyUriEndpoint 參數。

aws configure set cli_follow_urlparam false

否則, AWS CLI 1.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 }

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

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

AWS CLI

若要建立授權

下列create-grant範例會建立允許使用exampleUser者在範1234abcd-12ab-34cd-56ef-1234567890ab例 KMS 金鑰上使用decrypt命令的授權。退休主體是adminRole角色。只有在decrypt要求中的加密內容包含"Department": "IT"索引鍵值配對時,授權才會使用 EncryptionContextSubset grant 條件約束來允許此權限。

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 詳細資訊,請參閱AWS CLI 命令參考CreateGrant中的。

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

AWS CLI

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

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

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

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

aws kms create-key

create-key令會傳回金鑰中繼資料,包括新 KMS 金鑰的金鑰識別碼和 ARN。您可以使用這些值來識別其他 KMS 作業中的 AWS 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命令。

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

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

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

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 KMS 中的非對稱金AWS 鑰

範例 3:建立用於簽署和驗證的非對稱橢圓曲線 KMS 金鑰

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

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 KMS 中的非對稱金AWS 鑰

範例 4:若要建立 HMAC KMS 金鑰

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

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" } }

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的 AWS KMS 中的 HMAC 金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 KMS 中的非對稱金AWS 鑰

範例 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" } }

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

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

下列create-key範例會在指定的 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰。此作業會在 KMS 中建立 KMS 金鑰及其中繼資料,並在與自訂 AWS 金鑰存放區相關聯的 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 CloudHSM AWS 金鑰存放區

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

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

--xks-key-id參數會指定外部金鑰管理員中現有對稱加密金鑰的識別碼。此金鑰可做為 KMS 金鑰的外部金鑰材料。參數的值必須是EXTERNAL_KEY_STORE--origincustom-key-store-id參數必須識別連線至其外部金鑰存放區 Proxy 的外部金鑰存放區。

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金鑰存放區。

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

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

AWS CLI

範例 1:使用對稱的 KMS 金鑰 (Linux 和 macOS) 解密加密郵件

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

在檔案中提供加密文字。在--ciphertext-blob參數值中,請使用fileb://前置詞,告訴 CLI 從二進位檔案讀取資料。如果檔案不在目前目錄中,請輸入檔案的完整路徑。如需有關從檔案讀取 AWS CLI 參數值的詳細資訊,請參閱AWS 命令列介面使用者指南中的從檔案載入 AWS CLI 參數 < https://docs.aws.amazon.com/cli/latest/userguide/ cli-usage-parameters-file .html> 以及本機檔案參數的最佳作法 < https://aws.amazon.com/blogs/developer/ best-practices-for-local-file 參數 s/>。指定 KMS 金鑰以解密 Cipher --key-id Text。AWS AWS KMS 可以取得 KMS 金鑰的金鑰識別碼,該金鑰用來加密密碼中繼資料中的資料。但是指定您正在使用的 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 解碼純文字資料。此程序需要兩個指令,如下列範例所示。

執行此命令之前,請先將範例金鑰 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 KMS 中的非對稱金AWS 鑰

  • 如需 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 金鑰管理服務開發人員指南》中的刪除別名

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

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

AWS CLI

刪除自訂金鑰存放區

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

刪除 AWS CloudHSM 金鑰存放區對相關聯的 CloudHSM 叢集沒有任何影響。刪除外部金鑰存放區不會影響關聯的外部金鑰存放區 Proxy、外部金鑰管理員或外部金鑰。

註:刪除自訂金鑰存放區之前,您必須先排定刪除自訂金鑰存放區中的所有 KMS 金鑰,然後等待刪除這些 KMS 金鑰。然後,您必須中斷自訂金鑰存放區的連線。如需在自訂金鑰存放區中尋找 KMS 金鑰的說明,請參閱金管理服務開發人員指南中的刪除 AWS CloudHSM 金AWS 鑰存放區 (API)

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

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

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

如需有關刪除外部金鑰存放區的資訊,請參閱《金鑰管理服務開發人員指南》中的刪除外部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>。

下列程式碼範例會示範如何使用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 CloudHSM AWS 金鑰存放區

範例 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" } } ] }

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的檢視外部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" } } ] }

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

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

AWS CLI

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

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

若要指定 KMS 金鑰,請使用key-id參數。此範例使用別名名稱值,但您可以在此指令中使用索引鍵 ID、金鑰 ARN、別名或別名 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 鑰管理服務開發人員指南中的檢視金鑰。

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

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

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:若要取得有關 HMAC KMS 金鑰的詳細資料

下列describe-key範例會取得有關 HMAC KMS 金鑰的詳細資訊。

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 詳細資訊,請參閱AWS CLI 命令參考DescribeKey中的。

下列程式碼範例會示範如何使用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 鑰管理服務開發人員指南中的旋轉金鑰

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

AWS CLI

暫時停用 KMS 金鑰

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

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

此命令不會產生輸出。

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

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

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

AWS CLI

中斷自訂金鑰存放區的連線

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

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

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

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

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

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

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

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

AWS CLI

啟用 KMS 金鑰的自動輪替

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

--key-id參數可識別 KMS 金鑰。此範例使用金鑰 ARN 值,但您可以使用 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 鑰管理服務開發人員指南中的旋轉金鑰

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

AWS CLI

若要啟用 KMS 金鑰

下列enable-key範例會啟用客戶管理的金鑰。您可以使用類似這個命令來啟用使用disable-key命令暫時停用的 KMS 金鑰。您也可以使用它來啟用已停用的 KMS 金鑰,因為該金鑰已排程刪除且刪除已取消。

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

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

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

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

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

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

下列程式碼範例會示範如何使用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 命令列介面使用手冊》中的〈從檔案載入--query數〉--output和 AWS 命令行工具部落格中的本機檔案參數的最佳作法。使用和數來控制命令的輸出。《AWS 命令行介面使用者指南》中的輸出。使用公用base64程式將擷取的輸出解碼為二進位資料。成功encrypt指令傳回的密文為 base64 編碼文字。您必須先解碼此文字,才能使用 AWS CLI 解密。將二進位密文儲存為檔案。指令 (> ExampleEncryptedFile) 的最後一部分會將二進位加密文字儲存到檔案中,以便更容易解密。如需使用 AWS CLI 解密資料的範例命令,請參閱解密範例。

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

此範例與前一個範例相同,不同之處在於它使用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 參數是必要參數。如同所有 encrypt CLI 命令一樣,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 非對稱資料 key pair

下列generate-data-key-pair-without-plaintext範例會要求 ECC NIST P384 key pair 在外部使用。 AWS

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

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

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

注意:此範例輸出中的值會被截斷以便顯示。

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金鑰配對。

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

AWS CLI

若要產生 2048 位元 RSA 非對稱資料 key pair

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

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

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

注意:此範例輸出中的值會被截斷以便顯示。

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" }

PublicKeyPrivateKeyPlaintext、和PrivateKeyCiphertextBlob會以 base64 編碼格式傳回。

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

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

AWS CLI

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

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

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

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

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 鑰管理服務開發人員指南中的資料金鑰。

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

AWS CLI

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

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

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

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

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 編碼格式傳回。

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

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

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

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

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

注意:此範例輸出中的值會被截斷以便顯示。

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 編碼格式傳回。

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

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

下列程式碼範例會示範如何使用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 CloudHSM 叢集中產生隨機位元組字串。

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

它使用值為的--number-of-bytes參數32來指示 AWS CLI 將輸出返回為文本,而不是 JSON。它使用從響應中提取Plaintext屬性的值。管道 (|) 命令的輸出--query parameter到公用base64程序,該輸出解碼提取的輸出。文件。它使用重定向運算符(>)--outputtextExampleRandom將二進制密文保存到文件中。

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

此命令不會產生輸出。

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

範例 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令來解碼檔案中的 base64 編碼位元組字串。ExampleRandom.base64然後,它將解碼的字節字符串保存在ExampleRandom文件中。

certutil -decode ExampleRandom.base64 ExampleRandom

輸出:

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

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

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

下列程式碼範例會示範如何使用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

此命令不會產生輸出。

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

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

下列程式碼範例會示範如何使用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 鑰管理服務開發人員指南中的旋轉金鑰

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

AWS CLI

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

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

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

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 金鑰和匯入權杖

下列程式碼範例會示範如何使用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 中使用非對稱 KMS 金鑰的詳細資訊,請參閱在 AWS 金鑰管理服務 API 參考中使用對稱和非對稱金AWS 鑰

範例 2:若要將公開金鑰轉換為 DER 格式 (Linux 和 macOS)

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

當您在 AWS CLI 中使用get-public-key命令時,它會傳回一個以 BAS64 編碼的 DER 編碼 X.509 公開金鑰。此範例會以文字的形式取得PublicKey屬性值。它 Base64 解碼PublicKey並將其保存在文件中。public_key.deroutput參數將輸出返回為文本,而不是 JSON。--query參數只會取得屬性,而不會取得在 AWS KMS 外部安全使用公開金鑰所需的屬性。PublicKey

執行此命令之前,請先將範例金鑰 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 中使用非對稱 KMS 金鑰的詳細資訊,請參閱在 AWS 金鑰管理服務 API 參考中使用對稱和非對稱金AWS 鑰

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

下列程式碼範例會示範如何使用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 取代為 AWS 帳戶中的有效金鑰 ID 或金鑰 ARN。

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指令。

此範例使用 KMS 金鑰的金鑰識別碼做為--key-id參數,但您可以在此命令中使用金鑰識別碼、金鑰 ARN、別名或別名 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 金鑰管理服務開發人員指南中的使用別名

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

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

AWS CLI

若要檢視 AWS KMS 金鑰的授權

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

此命令使用帶有金鑰識別碼的key-id參數來識別 KMS 金鑰。您可以使用金鑰識別碼或金鑰 ARN 來識別 KMS 金鑰。若要取得 AWS 受管 KMS 金鑰的金鑰識別碼或金鑰 ARN,請使用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 詳細資訊,請參閱AWS CLI 命令參考ListGrants中的。

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

AWS CLI

取得 KMS 金鑰的金鑰原則名稱

下列list-key-policies範例會取得範例帳戶和 Region 中客戶管理金鑰的金鑰主要原則名稱。您可以使用此命令來尋找受 AWS 管理金鑰和客戶管理金鑰的金鑰原則名稱。

因為唯一有效的金鑰原則名稱是default,因此此命令沒有用處。

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

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

輸出:

{ "PolicyNames": [ "default" ] }

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

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

下列程式碼範例會示範如何使用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 鑰管理服務開發人員指南中的旋轉金鑰

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

下列程式碼範例會示範如何使用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 詳細資訊,請參閱AWS CLI 命令參考ListKeys中的。

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

AWS CLI

若要取得 KMS 金鑰上的標籤

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

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

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 詳細資訊,請參閱AWS CLI 命令參考ListResourceTags中的。

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

AWS CLI

若要檢視主體可以退休的補助金

下列list-retirable-grants範例顯示ExampleAdmin使用者可在 AWS 帳戶和區域中針對 KMS 金鑰淘汰的所有授權。您可以使用類似這個命令來檢視任何帳戶主體可以在帳戶和區域中的 KMS 金鑰淘汰的 AWS 授權。

所需retiring-principal參數的值必須是帳戶、使用者或角色的 Amazon 資源名稱 (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 金鑰,此範例會使用金鑰識別碼,但您也可以使用金鑰 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 詳細資訊,請參閱AWS CLI 命令參考PutKeyPolicy中的。

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

AWS CLI

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

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

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

執行此命令之前,請先將範例金鑰 ID 取代為 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 解碼純文字資料。此程序需要兩個指令,如下列範例所示。

執行此命令之前,請先將範例金鑰 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 詳細資訊,請參閱AWS CLI 命令參考ReEncrypt中的。

下列程式碼範例會示範如何使用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 金鑰管理服務開發人員指南中的淘汰和撤銷授權

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

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

AWS CLI

撤銷客戶主要金鑰的授權

下列revoke-grant範例會從 KMS 金鑰刪除授權。下列範例命令會指定grant-idkey-id參數。key-id參數的值可以是 KMS 金鑰的金鑰識別碼或金鑰 ARN。

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

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

如需詳細資訊,請參閱AWS 金鑰管理服務開發人員指南中的淘汰和撤銷授權

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

下列程式碼範例會示範如何使用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" }

如需詳細資訊,請參閱金鑰管理服務開發人員指南中的如何執行隨選AWS 金鑰輪換

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

AWS CLI

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

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

--key-id參數可識別 KMS 金鑰。此範例使用金鑰 ARN 值,但您可以使用 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 主控台。處於金鑰狀態的 PendingDeletion KMS 金鑰無法用於密碼編譯作業。

{ "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 鑰管理服務開發人員指南》中的刪除金鑰

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

AWS CLI

範例 1:產生郵件的數位簽章

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

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

在 AWS CLI 2.0 中,message參數的值必須是以 BAS64 編碼。或者,您可以將訊息儲存在檔案中,並使用fileb://前置詞,告訴 AWS CLI 從檔案讀取二進位資料。

執行此命令之前,請先將範例金鑰 ID 取代為 AWS 帳戶中的有效金鑰 ID。金鑰識別碼必須代表具有 SIGN_VERIFY 金鑰使用方式的非對稱 KMS 金鑰。

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 中使用非對稱 KMS 金鑰的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的 AWS KMS 中的非對稱金AWS 鑰

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

下列sign範例會針對儲存在本機檔案中的短訊息產生密碼編譯簽章。該命令還從響應中獲取Signature屬性,Base64 對其進行解碼並將其保存在文件中。 ExampleSignature 您可以在驗證簽名的verify命令中使用簽名檔案。

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

執行此命令之前,請先將範例金鑰 ID 取代為 AWS 帳戶中的有效金鑰 ID。金鑰識別碼必須代表具有 SIGN_VERIFY 金鑰使用方式的非對稱 KMS 金鑰。

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 中使用非對稱 KMS 金鑰的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的 AWS KMS 中的非對稱金AWS 鑰

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

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

AWS CLI

若要將標記新增至 KMS 金鑰

下列tag-resource範例會在客戶管理的 KMS 金鑰中新增"Purpose":"Test""Dept":"IT"標記。您可以使用類似這些標籤來標記 KMS 金鑰,並建立 KMS 金鑰類別以進行權限和稽核。

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

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

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

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

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

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

AWS CLI

從 KMS 金鑰刪除標籤

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

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

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

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

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

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

下列程式碼範例會示範如何使用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 金鑰管理服務開發人員指南 > 中的更新別名

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

下列程式碼範例會示範如何使用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 CloudHSM 金AWS 鑰存放區設定

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

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

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

附註:更新 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 CloudHSM 金AWS 鑰存放區設定

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

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

附註:更新 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 CloudHSM 金AWS 鑰存放區設定

範例 4:編輯外部金鑰存放區的 Proxy 驗證認證

下列範例會更新外部金鑰存放區的 Proxy 驗證認證。即使您只變更其中一個值access-key-id,也必須同時指定raw-secret-access-key和。您可以使用此功能來修正無效的認證,或在外部金鑰存放區 Proxy 旋轉認證時變更認證。

在外部金鑰存放區上建立 AWS KMS 的 Proxy 驗證認證。然後使用此命令將認證提供給 AWS KMS。 AWS KMS 使用此認證將其要求簽署到外部金鑰存放區 Proxy。

您可以在外部金鑰存放區連線或中斷連線時更新 Proxy 驗證認證。若要尋找自訂金鑰存放區的連線狀態,請使用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:編輯外部金鑰存放區的 Proxy 連線

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

注意:在更新外部存放區的 Proxy 連線之前,您必須先中斷連線。使用 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 值,但您可以使用 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指令。

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

範例 2:刪除客戶受管 KMS 金鑰的說明

下列update-key-description範例會刪除客戶受管 KMS 金鑰的說明。

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

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

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

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

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

AWS CLI

驗證數位簽章

下列verify範例會驗證 Base64 編碼簡短訊息的密碼編譯簽章。金鑰識別碼、訊息、訊息類型和簽章演算法必須與用來簽署郵件的相同。您指定的簽章不能使用 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 中使用非對稱 KMS 金鑰的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的使用非對稱金AWS 鑰

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