GenerateDataKeyWithoutPlaintext搭配使用 Amazon SDK或 CLI - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GenerateDataKeyWithoutPlaintext搭配使用 Amazon SDK或 CLI

以下代码示例演示如何使用 GenerateDataKeyWithoutPlaintext

CLI
Amazon CLI

生成不带明文密钥的 256 位对称数据密钥

以下generate-data-key-without-plaintext示例请求一份 256 位对称数据密钥的加密副本以供在之外使用 Amazon。 你可以打电话 Amazon KMS以便在准备好使用数据密钥时对其进行解密。

要请求 256 位数据密钥,请使用值为 AES_256key-spec 参数。要请求 128 位数据密钥,请使用值为 AES_128key-spec 参数。对于所有其他数据密钥长度,请使用 number-of-bytes 参数。

您指定的KMS密钥必须是对称加密KMS密钥,即KMS密钥规格值为 SYMMETRIC _ DEFAULT 的密钥。

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

输出:

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

CiphertextBlob(加密数据密钥)以 base64 编码的格式返回。

有关更多信息,请参阅《中的数据密钥Amazon 密钥管理服务开发人员指南

Rust
SDK对于 Rust
注意

还有更多相关信息 GitHub。在中查找完整的示例,学习如何设置和运行 Amazon 代码示例存储库

async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key_without_plaintext() .key_id(key) .key_spec(DataKeySpec::Aes256) .send() .await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }

有关完整列表 Amazon SDK开发者指南和代码示例,请参阅使用 Amazon KMS 用一个 Amazon SDK。本主题还包括有关入门的信息以及有关先前SDK版本的详细信息。