本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
以下代码示例演示如何使用 ReEncrypt
。
- 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> 和AWS 命令行工具博客中的本地文件参数最佳实践 < dev https://aws.amazon.com/blogs/ eloper/ 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 密钥管理服务 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-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 密钥管理服务 API 参考》中的 ReEncrypt < https://docs.aws.amazon.com/kms/ latest/APIReference/API _ ReEncrypt .html。
-
有关 API 的详细信息,请参阅AWS CLI 命令参考ReEncrypt
中的。
-
有关 S AWS DK 开发者指南和代码示例的完整列表,请参阅将此服务与 AWS SDK 配合使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。