我有一个KMS密钥,我想用它在shell脚本中解密。我安装了aws-encryption-cli (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/crypto-cli.html)。
hello示例在我的开发环境中运行良好,其中我创建了一个kms-key (它的arn存储在变量$dev_key_arn中)。
> echo 'Hello World' | aws-encryption-cli --encrypt --master-keys key=$dev_key_arn --input - --output - --encode -S | aws-encryption-cli --decrypt --input - --output - --decode -S
Hello World我也有一个生产环境,所以我想使用kms键$prod_key_arn。我在一个名为prod的配置文件中有有效的AWS凭据,所以我希望
> echo 'Hello World' | aws-encryption-cli --encrypt --master-keys key=$prod_key_arn profile=prod region=eu-west-1 --input - --output - --encode -S | aws-encryption-cli --decrypt --input - --output - --decode -S
Encountered unexpected error: increase verbosity to see details.
DecryptKeyError("Unable to decrypt any data key")但是上面的信息却失败了。如果检查加密的消息,我会发现它成功地加密了消息。
> aws-encryption-cli --encrypt --master-keys key=arn:aws:kms:eu-west-1:953495156568:key/2197020f-5b3c-4d05-bffc-04cf6114e405 profile=prod region=eu-west-1 provider=aws-kms --input /tmp/prod_key --output - --encode -S
AYADePCKfZUuL<....>iza1AU=密钥的arn存储在加密的材料中(base64解码显示)。但是关于侧写的信息呢?当解码时,它不能作为参数传递,而且它似乎不是编码材料的一部分。
发布于 2019-09-05 20:06:30
这里是aws-encryption-cli作者。:)
您遇到的问题是,在加密命令中,您将配置文件设置为"prod",但在解密命令中,您没有设置配置文件,因此它使用的是默认配置文件。
aws-encryption-cli --decrypt --input - --output - --decode -S如果您添加了一个主键定义来标识要使用的配置文件,那么它应该可以工作。
aws-encryption-cli --decrypt --master-keys provider=aws-kms profile=prod --input - --output - --decode -S因为如果您不指定名称,我们默认使用aws提供程序,所以仅指定配置文件也应该有效,但我更喜欢识别提供者,因为这使意图更加清晰。
aws-encryption-cli --decrypt --master-keys profile=prod --input - --output - --decode -S如果您在aws-encryption-cli中遇到任何其他问题,请随时在我们的GitHub repo1中打开一个问题。
https://stackoverflow.com/questions/57804829
复制相似问题