文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CancelKeyDeletion
。
-
下列程式碼範例示範如何使用 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 金鑰管理服務開發人員指南中的連接和中斷連接 AWS CloudHSM 金鑰存放區。
如需有關連接外部金鑰存放區的資訊,請參閱 金鑰AWS 管理服務開發人員指南中的連接和中斷連接外部金鑰存放區。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ConnectCustomKeyStore
。
-
下列程式碼範例示範如何使用 create-alias
。
- AWS CLI
-
為 KMS 金鑰建立別名
下列
create-alias
命令會為金鑰 ID 所識別的 KMS 金鑰建立名為example-alias
的別名1234abcd-12ab-34cd-56ef-1234567890ab
。別名名稱必須以 開頭
alias/
。請勿使用以 開頭的別名;alias/aws
這些名稱會保留供 使用 AWS。aws kms create-alias \ --alias-name
alias/example-alias
\ --target-key-id1234abcd-12ab-34cd-56ef-1234567890ab
此命令不會傳回任何輸出。若要查看新的別名,請使用
list-aliases
命令。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用別名。
-
如需 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-idcluster-1a23b4cdefg
\ --key-store-passwordkmsPswd
\ --trust-anchor-certificatefile://customerCA.crt
輸出:
{ "CustomKeyStoreId": cks-1234567890abcdef0 }
如需詳細資訊,請參閱 Key AWS Management Service 開發人員指南中的建立 AWS CloudHSM 金鑰存放區。
範例 2:建立具有公有端點連線能力的外部金鑰存放區
下列
create-custom-key-store
範例會建立外部金鑰存放區 (XKS),透過網際網路與 AWS KMS 通訊。在此範例中,
XksProxyUriPath
會使用選用的 字首example-prefix
。NOTE:如果您使用 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-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityPUBLIC_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 CLI 1.0 版會將 參數值取代為該 URI 地址找到的內容。
aws kms create-custom-key-store \ --custom-key-store-name
ExampleVPCEndpointXKS
\ --custom-key-store-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityVPC_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
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateCustomKeyStore
。
-
下列程式碼範例示範如何使用 create-grant
。
- AWS CLI
-
建立授予
下列
create-grant
範例會建立授予,讓使用者exampleUser
在1234abcd-12ab-34cd-56ef-1234567890ab
範例 KMS 金鑰上使用decrypt
命令。淘汰主體是adminRole
角色。只有在decrypt
請求中的加密內容包含"Department": "IT"
鍵值對時,授予才會使用EncryptionContextSubset
授予限制來允許此許可。aws kms create-grant \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --grantee-principalarn:aws:iam::123456789012:user/exampleUser
\ --operationsDecrypt
\ --constraintsEncryptionContextSubset={Department=IT}
\ --retiring-principalarn:aws:iam::123456789012:role/adminRole
輸出:
{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }
若要檢視有關授予的詳細資訊,請使用
list-grants
命令。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的 Grants in AWS KMS。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateGrant
。
-
下列程式碼範例示範如何使用 create-key
。
- AWS CLI
-
範例 1:建立客戶受管 KMS 金鑰 in AWS KMS
下列
create-key
範例會建立對稱加密 KMS 金鑰。若要建立基本 KMS 金鑰、對稱加密金鑰,您不需要指定任何參數。這些參數的預設值會建立對稱加密金鑰。
由於此命令未指定金鑰政策,因此 KMS 金鑰會取得以程式設計方式建立的 KMS 金鑰的預設金鑰政策。若要檢視金鑰政策,請使用
get-key-policy
命令。若要變更金鑰政策,請使用put-key-policy
命令。aws kms create-key
create-key
命令會傳回金鑰中繼資料,包括新 ARN 金鑰的金鑰 ID 和 KMS。您可以使用這些值來識別其他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 Key Management Service 開發人員指南中的建立金鑰。
範例 2:建立非對稱 RSA KMS金鑰以進行加密和解密
下列
create-key
範例會建立 KMS 金鑰,其中包含用於加密和解密的非對稱 RSA 金鑰對。aws kms create-key \ --key-spec
RSA_4096
\ --key-usageENCRYPT_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" } }
如需詳細資訊,請參閱 金鑰管理服務開發人員指南中的非對稱金鑰 in AWS KMS。 AWS
範例 3:建立用於簽署和驗證的非對稱橢圓曲線 KMS 金鑰
建立非對稱 KMS 金鑰,其中包含用於簽署和驗證的非對稱橢圓曲線 (ECC) 金鑰對。即使
--key-usage
參數SIGN_VERIFY
是 ECC KMS金鑰的唯一有效值,仍需要 參數。aws kms create-key \ --key-spec
ECC_NIST_P521
\ --key-usageSIGN_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" ] } }
如需詳細資訊,請參閱 金鑰管理服務開發人員指南中的非對稱金鑰 in AWS KMS。 AWS
範例 4:建立 HMAC KMS金鑰
下列
create-key
範例會建立 384 位元 KMS HMAC 金鑰。即使GENERATE_VERIFY_MAC
--key-usage
參數是 HMAC KMS金鑰的唯一有效值,仍需要 參數的值。aws kms create-key \ --key-spec
HMAC_384
\ --key-usageGENERATE_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" } }
如需詳細資訊,請參閱 Key AWS Management Service 開發人員指南中的 HMAC 金鑰 in AWS KMS。
範例 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" } }
如需詳細資訊,請參閱 金鑰管理服務開發人員指南中的 in 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" } }
如需詳細資訊,請參閱 Key Management Service 開發人員指南中的匯入金鑰材料 in AWS KMS 金鑰。 AWS
範例 6:在 AWS CloudKMS 金鑰存放區中建立 HSM 金鑰
下列
create-key
範例會在指定的 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰。操作會建立 KMS 金鑰及其中繼資料 in AWS KMS,並在與自訂金鑰存放區相關聯的 AWS CloudHSM 叢集中建立金鑰材料。--custom-key-store-id
和--origin
是必要參數。aws kms create-key \ --origin
AWS_CLOUDHSM
\ --custom-key-store-idcks-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 金鑰。此命令需要--custom-key-store-id
、--origin
和--xks-key-id
參數。--xks-key-id
參數指定外部金鑰管理器中現有對稱加密金鑰的 ID。此金鑰做為 KMS 金鑰的外部金鑰材料。--origin
參數的值必須是EXTERNAL_KEY_STORE
。custom-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 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateKey
。
-
下列程式碼範例示範如何使用 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/cliWord-usage-parameters-file.html」檔案的 Load AWS CLI 參數,以及 AWS Command Line Tool Blog 中的本機檔案參數的最佳實務<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-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
此命令不會產生輸出。來自
decrypt
命令的輸出會進行 base64 解碼,並儲存在 檔案中。如需詳細資訊,請參閱 AWS Key Management Service API 參考中的解密。
範例 2:使用對稱 KMS 金鑰解密加密的訊息 (Windows 命令提示)
下列範例與上一個範例相同,但它使用
certutil
公用程式對純文字資料進行 Base64-decode。此程序需要兩個命令,如下列範例所示。在執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。
aws kms decrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--outputtext
^
--queryPlaintext
>
ExamplePlaintextFile.base64
執行
certutil
命令。certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
輸出:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
如需詳細資訊,請參閱 AWS Key Management Service API 參考中的解密。
範例 3:使用非對稱 KMS 金鑰 (Linux 和 macOS) 解密加密的訊息
下列
decrypt
命令範例示範如何解密在 RSA 非對稱 KMS 金鑰下加密的資料。使用非對稱 KMS 金鑰時,需要 參數,該
encryption-algorithm
參數指定用於加密純文字的演算法。在執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。
aws kms decrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
此命令不會產生輸出。來自
decrypt
命令的輸出會進行 base64 解碼,並儲存在 檔案中。如需詳細資訊,請參閱 金鑰管理服務開發人員指南中的非對稱金鑰 in AWS KMS。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的解密
。
-
下列程式碼範例示範如何使用 delete-alias
。
- AWS CLI
-
刪除 a AWS KMS 別名
下列
delete-alias
範例會刪除別名alias/example-alias
。別名名稱必須以別名/ 開頭。aws kms delete-alias \ --alias-name
alias/example-alias
此命令不會產生輸出。若要尋找別名,請使用
list-aliases
命令。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的刪除別名。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteAlias
。
-
下列程式碼範例示範如何使用 delete-custom-key-store
。
- AWS CLI
-
若要刪除自訂金鑰存放區
下列
delete-custom-key-store
範例會刪除指定的自訂金鑰存放區。刪除 AWS CloudHSM 金鑰存放區不會影響關聯的 CloudHSM 叢集。刪除外部金鑰存放區不會影響相關聯的外部金鑰存放區代理、外部金鑰管理員或外部金鑰。
NOTE:您必須先排程刪除自訂金鑰存放區中的所有 KMS 金鑰,然後等待刪除這些 KMS 金鑰。然後,您必須中斷連接自訂金鑰存放區。如需在自訂金鑰存放區中尋找 KMS 金鑰的協助,請參閱 AWS 金鑰管理服務開發人員指南中的刪除 AWS CloudHSM 金鑰存放區 (API)。
delete-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0
此命令不會傳回任何輸出。若要確認自訂金鑰存放區已刪除,請使用
describe-custom-key-stores
命令。如需有關刪除 AWS CloudHSM 金鑰存放區的資訊,請參閱 AWS 金鑰管理服務開發人員指南中的刪除 AWS CloudHSM 金鑰存放區。
如需有關刪除外部金鑰存放區的資訊,請參閱 AWS 金鑰管理服務開發人員指南中的刪除外部金鑰存放區。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteCustomKeyStore
。
-
下列程式碼範例示範如何使用 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 管理服務開發人員指南中的刪除匯入的金鑰材料<latest/developerguide/importinghttps://docs.aws.amazon.com/kms/-keys-delete-key-material.html>。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteImportedKeyMaterial
。
-
下列程式碼範例示範如何使用 derive-shared-secret
。
- AWS CLI
-
若要衍生共用秘密
下列
derive-shared-secret
範例使用金鑰協議演算法衍生共用秘密。您必須使用值為 to
KeyUsage
KEY_AGREEMENT
call DeriveSharedSecret 的非對稱 NIST 建議橢圓曲線 (ECC) 或 SM2 (僅限中國區域) KMS 金鑰對。aws kms derive-shared-secret \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --key-agreement-algorithmECDH
\ --public-key"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"
輸出:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }
如需詳細資訊,請參閱 Key Management Service DeriveSharedSecret 參考中的 Word。 AWS API
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeriveSharedSecret
。
-
下列程式碼範例示範如何使用 describe-custom-key-stores
。
- AWS CLI
-
範例 1:取得 AWS CloudHSM 金鑰存放區的詳細資訊
下列
describe-custom-key-store
範例顯示指定 AWS CloudHSM 金鑰存放區的詳細資訊。命令對所有類型的自訂金鑰存放區都相同,但輸出會因金鑰存放區類型而有所不同,而對於外部金鑰存放區,則會有其連線選項。根據預設,此命令會顯示帳戶和區域中所有自訂金鑰存放區的相關資訊。若要顯示特定自訂金鑰存放區的相關資訊,請使用
custom-key-store-name
或custom-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>" } ] }
如需詳細資訊,請參閱 Key AWS Management Service 開發人員指南中的檢視 AWS CloudHSM 金鑰存放區。
範例 2:取得具有公有端點連線的外部金鑰存放區詳細資訊
下列
describe-custom-key-store
範例顯示指定外部金鑰存放區的詳細資訊。命令對所有類型的自訂金鑰存放區都相同,但輸出會因金鑰存放區類型而有所不同,而對於外部金鑰存放區,則會有其連線選項。根據預設,此命令會顯示帳戶和區域中所有自訂金鑰存放區的相關資訊。若要顯示特定自訂金鑰存放區的相關資訊,請使用
custom-key-store-name
或custom-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-name
或custom-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
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeCustomKeyStores
。
-
下列程式碼範例示範如何使用 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 Key Management Service 開發人員指南中的輪換金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DisableKeyRotation
。
-
下列程式碼範例示範如何使用 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 金鑰管理服務開發人員指南中的連接和中斷連接 AWS CloudHSM 金鑰存放區。
如需中斷連接外部金鑰存放區的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的連接和中斷連接外部金鑰存放區。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DisconnectCustomKeyStore
。
-
下列程式碼範例示範如何使用 enable-key-rotation
。
- AWS CLI
-
若要啟用 KMS 金鑰的自動輪換
下列
enable-key-rotation
範例可自動輪換客戶受管 KMS 金鑰,輪換期間為 180 天。KMS 金鑰將從此命令完成之日起一年 (大約 365 天) 輪換,之後每年輪換一次。--key-id
參數可識別 KMS 金鑰。此範例使用金鑰 ARN 值,但您可以使用金鑰 ID 或 ARN 金鑰的 KMS。--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-days180
此命令不會產生輸出。若要確認 KMS 金鑰已啟用,請使用
get-key-rotation-status
命令。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的輪換金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 EnableKeyRotation
。
-
下列程式碼範例示範如何使用 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
輸出中KeyState
和Enabled
欄位的值。如需詳細資訊,請參閱 金鑰管理服務開發人員指南中的啟用和停用AWS 金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 EnableKey
。
-
下列程式碼範例示範如何使用 encrypt
。
- AWS CLI
-
範例 1:加密 Linux 或 MacOS 上檔案的內容
下列
encrypt
命令示範使用 AWS CLI 加密資料的建議方法。aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
命令會執行下列動作:
使用
--plaintext
參數來指示要加密的資料。此參數值必須是 base64 編碼。plaintext
參數的值必須是 base64 編碼,或者您必須使用fileb://
字首,告訴 AWS CLI 從檔案讀取二進位資料。如果檔案不在目前的目錄中,請輸入檔案的完整路徑。例如:fileb:///var/tmp/ExamplePlaintextFile
或fileb://C:\Temp\ExamplePlaintextFile
。如需從 檔案讀取 AWS CLI 參數值的詳細資訊, 請參閱 AWS 命令列介面使用者指南 中的從檔案載入參數,以及 AWS Command Line Tool 部落格上的本機檔案參數的最佳實務。使用 --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
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
>
C:\Temp\ExampleEncryptedFile.base64certutil
-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-algorithmRSAES_OAEP_SHA_256
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
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-specECC_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" }
PublicKey
和PrivateKeyCiphertextBlob
會以 base64 編碼格式傳回。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰對。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GenerateDataKeyPairWithoutPlaintext
。
-
下列程式碼範例示範如何使用 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-specRSA_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" }
PublicKey
、PrivateKeyPlaintext
和PrivateKeyCiphertextBlob
會以 base64 編碼格式傳回。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰對。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GenerateDataKeyPair
。
-
下列程式碼範例示範如何使用 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 金鑰,也就是具有 KMSSYMMETRIC_Word 金鑰規格值的 DEFAULT 金鑰。
aws kms generate-data-key-without-plaintext \ --key-id
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
\ --key-specAES_256
輸出:
{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
CiphertextBlob
(加密資料金鑰) 會以 base64 編碼格式傳回。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的資料金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GenerateDataKeyWithoutPlaintext
。
-
下列程式碼範例示範如何使用 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 金鑰,也就是具有 KMSSYMMETRIC_Word 金鑰規格值的 DEFAULT 金鑰。
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_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 金鑰管理服務開發人員指南中的資料金鑰 <https://docs.aws.amazon.com/kms/latest/developerguide/conceptsWord.html#data-keys。
範例 2:產生 512 位元對稱資料金鑰
下列
generate-data-key
範例會請求 512 位元對稱資料金鑰以進行加密和解密。命令會傳回純文字資料金鑰以供立即使用和刪除,以及在指定的 KMS 金鑰下加密的資料金鑰複本。加密的資料金鑰可以安全地跟加密資料一起存放。若要請求 128 或 256 位元以外的金鑰長度,請使用
number-of-bytes
參數。若要請求 512 位元資料金鑰,下列範例會使用 值為 64 (位元組) 的number-of-bytes
參數。您指定的 KMS 金鑰必須是對稱加密的 KMS 金鑰,也就是具有 KMSSYMMETRIC_Word 金鑰規格值的 DEFAULT 金鑰。
NOTE:此範例輸出中的值被截斷以供顯示。
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
輸出:
{ "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/conceptsWord.html#data-keys。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GenerateDataKey
。
-
下列程式碼範例示範如何使用 generate-random
。
- AWS CLI
-
範例 1:產生 256 位元隨機位元組字串 (Linux 或 macOs)
下列
generate-random
範例會產生 256 位元 (32 位元組)、Base64 編碼的隨機位元組字串。此範例會解碼位元組字串,並將其儲存在隨機檔案中。執行此命令時,您必須使用
number-of-bytes
參數以位元組為單位指定隨機值的長度。當您執行此命令時,不會指定 KMS 金鑰。隨機位元組字串與任何 KMS 金鑰無關。
根據預設, AWS KMS 會產生隨機數字。不過,如果您指定自訂金鑰存放區<latest/developerguide/customhttps://docs.aws.amazon.com/kms/-key-store-overview.html>,隨機位元組字串會在與自訂金鑰存放區相關聯的 AWS CloudHSM 叢集中產生。
此範例使用下列參數和值:
它使用值為 的必要
--number-of-bytes
參數32
來請求 32 位元組 (256 位元) 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
此命令不會產生輸出。
如需詳細資訊,請參閱 Key Management Service GenerateRandom 參考中的 Word。 AWS API
範例 2:產生 256 位元隨機數字 (Windows Command Prompt)
下列範例使用
generate-random
命令來產生 256 位元 (32 位元組)、Base64 編碼的隨機位元組字串。此範例會解碼位元組字串,並將其儲存在隨機檔案中。此範例與上一個範例相同,除了在將隨機位元組字串儲存在檔案中之前,它使用 Windows 中的certutil
公用程式來對隨機位元組字串進行 base64 解碼。首先,產生 base64 編碼的隨機位元組字串,並將其儲存在暫存檔案 中
ExampleRandom.base64
。aws kms generate-random \ --number-of-bytes
32
\ --outputtext
\ --queryPlaintext
>
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.
如需詳細資訊,請參閱 Key Management Service GenerateRandom 參考中的 Word。 AWS API
-
如需 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-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --queryPolicy
\ --outputtext
>
policy.txt
aws
kms
put-key-policy
\ --policy-namedefault
\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --policyfile://policy.txt
此命令不會產生輸出。
如需詳細資訊,請參閱 PutKeyPolicy Word AWS 參考中的KMS API。
-
如需 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 Key Management Service 開發人員指南中的輪換金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetKeyRotationStatus
。
-
下列程式碼範例示範如何使用 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-algorithmRSAES_OAEP_SHA_256
\ --wrapping-key-specRSA_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 開發人員指南中的下載公有金鑰和匯入權杖。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetParametersForImport
。
-
下列程式碼範例示範如何使用 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 金鑰 in AWS KMS 的詳細資訊,請參閱 AWS Key Management Service API 參考中的使用對稱和非對稱金鑰。
範例 2:將公有金鑰轉換為 DER 格式 (Linux 和 macOS)
下列
get-public-key
範例會下載非對稱 KMS 金鑰的公有金鑰,並將其儲存在 DER 檔案中。當您在 AWS CLI 中使用
get-public-key
命令時,它會傳回以 DER 編碼的 X.509 公有金鑰,其為 Base64-encoded。此範例會以文字的形式取得PublicKey
屬性的值。它 Base64-decodesPublicKey
,並將其儲存在public_key.der
檔案中。output
參數會以文字形式傳回輸出,而不是 JSON。--query
參數只會取得PublicKey
屬性,而不是您在 AWS KMS 之外安全地使用公有金鑰所需的屬性。執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。
aws kms get-public-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
\ --queryPublicKey
|
base64
--decode>
public_key.der
此命令不會產生輸出。
如需使用非對稱 KMS 金鑰 in AWS KMS 的詳細資訊,請參閱 AWS Key Management Service API 參考中的使用對稱和非對稱金鑰。
-
如需 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 取代為有效的金鑰 ID 或來自您 AWS 帳戶的金鑰 ARN。
aws kms import-key-material \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encrypted-key-materialfileb://EncryptedKeyMaterial.bin
\ --import-tokenfileb://ImportToken.bin
\ --expiration-modelKEY_MATERIAL_EXPIRES
\ --valid-to2021-09-21T19:00:00Z
此命令不會產生輸出。
如需有關匯入金鑰材料的詳細資訊,請參閱 金鑰管理服務開發人員指南中的匯入金鑰材料。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ImportKeyMaterial
。
-
下列程式碼範例示範如何使用 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,但您可以在此命令中使用金鑰 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
-
在 a 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-keys
或list-aliases
命令。aws kms list-grants \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
輸出顯示 授予授予 Amazon DynamoDB 許可,以使用 KMS 金鑰進行密碼編譯操作,並允許其檢視 KMS 金鑰 (
DescribeKey
) 的詳細資訊,以及淘汰授予 ()RetireGrant
。EncryptionContextSubset
限制條件會將這些許可限制為包含指定加密內容對的請求。因此,授予中的許可僅在指定的帳戶和 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 Key Management Service 開發人員指南中的 Grants in AWS KMS。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListGrants
。
-
下列程式碼範例示範如何使用 list-key-policies
。
- AWS CLI
-
取得 KMS 金鑰之金鑰政策的名稱
下列
list-key-policies
範例會取得範例帳戶和區域中客戶受管金鑰之金鑰政策的名稱。您可以使用此命令來尋找 AWS 受管金鑰和客戶受管金鑰的金鑰政策名稱。由於唯一有效的金鑰政策名稱是
default
,因此此命令沒有用。若要指定 KMS 金鑰,請使用
key-id
參數。此範例使用金鑰 ID 值,但您可以在此命令中使用金鑰 ID 或金鑰 ARN。aws kms list-key-policies \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
輸出:
{ "PolicyNames": [ "default" ] }
如需有關 AWS KMS 金鑰政策的詳細資訊,請參閱 金鑰管理服務開發人員指南中的使用 in 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 Key Management Service 開發人員指南中的輪換金鑰。
-
如需 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 }
如需使用 in AWS KMS 標籤的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的標記金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListResourceTags
。
-
下列程式碼範例示範如何使用 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 Key Management Service 開發人員指南中的 Grants in AWS KMS。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListRetirableGrants
。
-
下列程式碼範例示範如何使用 put-key-policy
。
- AWS CLI
-
若要變更 KMS 金鑰的金鑰政策
下列
put-key-policy
範例會變更客戶受管金鑰的金鑰政策。若要開始,請建立金鑰政策並將其儲存在本機 JSON 檔案中。在此範例中,檔案為
key_policy.json
。您也可以將金鑰政策指定為policy
參數的字串值。此金鑰政策中的第一個陳述式授予 AWS 帳戶使用 IAM 政策控制 KMS 金鑰存取權的許可。第二個陳述式提供
test-user
使用者在 KMS 金鑰上執行describe-key
和list-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-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --policyfile://key_policy.json
此命令不會產生任何輸出。若要驗證命令是否有效,請使用
get-key-policy
命令。下列範例命令會取得相同 KMS 金鑰的金鑰政策。值為 的output
參數會text
傳回易於讀取的文字格式。aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
輸出:
{ "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 重新加密資料的建議方法。在 file.In 中提供
--ciphertext-blob
參數值的密碼文字,使用fileb://
字首,告訴 CLI 從二進位檔案讀取資料。如果檔案不在目前的目錄中,請輸入檔案的完整路徑。如需從 檔案讀取 AWS CLI 參數值的詳細資訊,請參閱 AWS 命令列介面使用者指南中的「https://docs.aws.amazon.com/cli/latest/userguide/cliWord-usage-parameters-file.html」檔案的 Load AWS CLI 參數,以及 AWS Command Line Tool Blog 中本機檔案參數的最佳實務<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
參數會以 text.Base64 形式傳回輸出。將純文字解碼並儲存在檔案中。下列範例會將Plaintext
參數的值 (|) 引導至 Base64 公用程式,以解碼該參數。然後,它會將解碼的輸出重新導向 (>) 至ExamplePlaintext
檔案。執行此命令之前,請將範例金鑰 IDs 取代為您 AWS 帳戶中的有效金鑰識別符。
aws kms re-encrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --queryCiphertextBlob
\ --outputtext
|
base64
--decode>
ExampleReEncryptedFile
此命令不會產生輸出。來自
re-encrypt
命令的輸出會進行 base64 解碼,並儲存在 檔案中。如需詳細資訊,請參閱 AWS Key Management Service API 參考中的 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/APIWord_ReEncrypt.html。
範例 2:在不同的對稱 KMS 金鑰 (Windows 命令提示) 下重新加密訊息。
下列
re-encrypt
命令範例與上一個命令範例相同,但它使用certutil
公用程式對純文字資料進行 Base64-decode。此程序需要兩個命令,如下列範例所示。執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。
aws kms re-encrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
^
--queryCiphertextBlob
^
--outputtext
>
ExampleReEncryptedFile.base64
然後使用
certutil
公用程式certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
輸出:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
如需詳細資訊,請參閱 AWS Key Management Service API 參考中的 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/APIWord_ReEncrypt.html。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ReEncrypt
。
-
下列程式碼範例示範如何使用 retire-grant
。
- AWS CLI
-
淘汰客戶主金鑰的授予
下列
retire-grant
範例會從 KMS 金鑰刪除授予。下列範例命令會指定
grant-id
和key-id
參數。key-id
參數的值必須是 ARN 金鑰的 KMS。aws kms retire-grant \ --grant-id
1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3
\ --key-idarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
此命令不會產生輸出。若要確認授予已淘汰,請使用
list-grants
命令。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的淘汰和撤銷授予。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RetireGrant
。
-
下列程式碼範例示範如何使用 revoke-grant
。
- AWS CLI
-
撤銷客戶主金鑰的授予
下列
revoke-grant
範例會從 KMS 金鑰刪除授予。下列範例命令會指定grant-id
和key-id
參數。key-id
參數的值可以是 ARN 金鑰的金鑰 ID 或金鑰 KMS。aws kms revoke-grant \ --grant-id
1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3
\ --key-id1234abcd-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 Key Management Service 開發人員指南中的如何執行隨需金鑰輪換。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RotateKeyOnDemand
。
-
下列程式碼範例示範如何使用 schedule-key-deletion
。
- AWS CLI
-
排程刪除客戶受管 KMS 金鑰。
下列
schedule-key-deletion
範例會排程要在 15 天內刪除的指定客戶受管 KMS 金鑰。--key-id
參數會識別 KMS 金鑰。此範例使用金鑰 ARN 值,但您可以使用金鑰 ID 或 ARN 金鑰的 KMS。--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 Key Management Service 開發人員指南中的刪除金鑰。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ScheduleKeyDeletion
。
-
下列程式碼範例示範如何使用 sign
。
- AWS CLI
-
範例 1:為訊息產生數位簽章
下列
sign
範例會產生短訊息的密碼編譯簽章。命令的輸出包含 base-64 編碼Signature
欄位,您可以使用verify
命令進行驗證。您必須指定要簽署的訊息,以及非對稱 KMS 金鑰支援的簽署演算法。若要取得 KMS 金鑰的簽署演算法,請使用
describe-key
命令。In AWS CLI 2.0 中,
message
參數的值必須是 Base64-encoded。或者,您可以將訊息儲存在檔案中並使用fileb://
字首,告訴 AWS CLI 從檔案中讀取二進位資料。執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。金鑰 ID 必須代表使用 KMSSIGN_Word 的金鑰用量的非對稱 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 金鑰 in AWS KMS 的詳細資訊,請參閱 金鑰AWS 管理服務開發人員指南中的非對稱金鑰 in AWS KMS。
範例 2:在檔案中儲存數位簽章 (Linux 和 macOs)
下列
sign
範例會為儲存在本機檔案中的短訊息產生密碼編譯簽章。命令也會從回應取得Signature
屬性,Base64-decodes該屬性,並將其儲存在 ExampleSignature 檔案中。您可以在驗證簽章的verify
命令中使用簽章檔案。此
sign
命令需要 Base64-encoded的訊息,以及非對稱 KMS 金鑰支援的簽署演算法。若要取得 KMS 金鑰支援的簽署演算法,請使用describe-key
命令。執行此命令之前,請將範例金鑰 ID 取代為來自您 AWS 帳戶的有效金鑰 ID。金鑰 ID 必須代表使用 KMSSIGN_Word 的金鑰用量的非對稱 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 金鑰 in AWS KMS 的詳細資訊,請參閱 金鑰AWS 管理服務開發人員指南中的非對稱金鑰 in AWS KMS。
-
如需 API 詳細資訊,請參閱登入
AWS CLI 命令參考。
-
下列程式碼範例示範如何使用 tag-resource
。
- AWS CLI
-
將標籤新增至 KMS 金鑰
下列
tag-resource
範例會將"Purpose":"Test"
和"Dept":"IT"
標籤新增至客戶受管 KMS 金鑰。您可以使用這類標籤來標記 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'此命令不會產生輸出。若要檢視 a AWS KMS KMS 金鑰上的標籤,請使用
list-resource-tags
命令。如需使用 in 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
'此命令不會產生輸出。若要檢視 a AWS KMS KMS 金鑰上的標籤,請使用
list-resource-tags
命令。如需使用 in 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 Key Management Service 開發人員指南中的更新別名。
-
如需 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-nameExampleKeyStore
此命令不會傳回任何資料。若要驗證命令是否正常運作,請使用
describe-custom-key-stores
命令。如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的編輯 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-passwordExamplePassword
此命令不會傳回任何輸出。若要驗證變更是否有效,請使用
describe-custom-key-stores
命令。如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的編輯 AWS CloudHSM 金鑰存放區設定。
範例 3:編輯 AWS HSM金鑰存放區的 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-idcluster-1a23b4cdefg
此命令不會傳回任何輸出。若要驗證變更是否有效,請使用
describe-custom-key-stores
命令。如需更新 AWS CloudHSM 金鑰存放區的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的編輯 AWS CloudHSM 金鑰存放區設定。
範例 4:編輯外部金鑰存放區的代理身分驗證憑證
下列範例會更新外部金鑰存放區的代理身分驗證憑證。您必須同時指定
raw-secret-access-key
和access-key-id
,即使您只變更其中一個值。您可以使用此功能來修正無效的憑證,或在外部金鑰存放區代理輪換憑證時變更憑證。在外部金鑰存放區上建立 for AWS KMS 的代理身分驗證憑證。然後,使用此命令來提供憑證 to 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
值,以反映與 DNS 端點服務相關聯的私有 VPC 名稱。您也必須新增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-connectivityVPC_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 管理服務開發人員指南中的編輯外部金鑰存放區屬性。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateCustomKeyStore
。
-
下列程式碼範例示範如何使用 update-key-description
。
- AWS CLI
-
範例 1:新增或變更描述至客戶受管 KMS 金鑰
下列
update-key-description
範例會將描述新增至客戶受管 KMS 金鑰。您可以使用相同的命令來變更現有的描述。--key-id
參數會識別 命令中的 KMS 金鑰。此範例使用金鑰 ARN 值,但您可以使用金鑰 ID 或 ARN 金鑰的金鑰 KMS。--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
命令。如需詳細資訊,請參閱 Key Management Service UpdateKeyDescription 參考中的 Word。 AWS API
範例 2:刪除客戶受管 KMS 金鑰的描述
下列
update-key-description
範例會刪除對客戶受管 KMS 金鑰的描述。--key-id
參數會識別 命令中的 KMS 金鑰。此範例使用金鑰 ID 值,但您可以使用金鑰 ID 或 ARN 金鑰的金鑰 KMS。具有空字串值 ('') 的--description
參數會刪除現有的描述。aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''
此命令不會產生輸出。若要檢視 KMS 金鑰的描述,請使用 describe-key 命令。
如需詳細資訊,請參閱 Key Management Service UpdateKeyDescription 參考中的 Word。 AWS API
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateKeyDescription
。
-
下列程式碼範例示範如何使用 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
\ --messagefileb://EncodedMessage
\ --message-typeRAW
\ --signing-algorithmRSASSA_PKCS1_V1_5_SHA_256
\ --signaturefileb://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 金鑰 in AWS KMS 的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南中的使用非對稱金鑰。
-
如需 API 詳細資訊,請參閱在AWS CLI 命令參考中驗證
。
-