首页 > 解决方案 > 如何使用 aws 加密 cli 解密?

问题描述

我已使用 aws 加密 cli 加密 zip 文件(实际上是数据库备份),如下所示:

aws-encryption-cli -vv --encrypt \
  --input "backup.zip" \
  --wrapping-keys key=caf...854 region=us-east-1 \
  --encryption-context purpose=dbbackup \
  --metadata-output backup.metadata \
  --output backup.zip.enc

这很好用,并生成加密的备份文件。但是我似乎无法使用相同的基本模式进行解密。

aws-encryption-cli \
  -vv \
  --decrypt \
  --input backup.zip.enc \
  --wrapping-keys key=caf...854 region=us-east-1 \
  --output backup.zip \
  --metadata-output backup.zip.metadatadec

产生错误:

2020-11-13 15:04:04,580 - MainThread - aws_encryption_sdk.key_providers.base - DEBUG - IncorrectMasterKeyError("Provided data key provider MasterKeyInfo(provider_id='aws-kms', key_info=b'arn:aws:kms:us-east-1:...:key/caf...854') does not match Master Key provider MasterKeyInfo(provider_id='aws-kms', key_info=b'caf...854')",) raised when attempting to decrypt data key with master key MasterKeyInfo(provider_id='aws-kms', key_info=b'caf...854')

在我看来,它在抱怨 KMS 密钥 ID 不匹配,因为在解密时它使用完整的 ARN (arn:aws:kms:us-east-1...),而在加密时它只使用 ID (caf ...854)。我不确定如何更改行为以在两种情况下使用相同的东西,或者是否有其他问题?

标签: aws-cliaws-kms

解决方案


FWIW,如果我在加密和解密时为包装密钥指定完整的 ARN,这似乎可行。我不确定为什么当我只使用 ID 时它会成功加密但解密失败 - 这感觉像是一个错误(应该对两者都失败或对两者都有效)。


推荐阅读