如何使用Cognito User Pool的对称密钥解码

0

【以下的问题经过翻译处理】 我正在为Cognito部署一个发送自定义电子邮件的Lambda。当尝试解密“code”时,我收到了“Aws::KMS::Errors::InvalidCiphertextException”异常。

我通过Cognito User Pool将对称KMS密钥分配给Lambda,并且可以成功触发Lambda。在将密文传递给解码方法之前,我已经尝试过使用“Base64.decode64”和“Base64.strict \ _decode64”。

CloudTrail日志显示Cognito正在使用KMS GenerateKeyPair方法,并提供加密上下文:

{
  "userpool-id": "my-user-pool",
  "aws-crypto-public-key": "AULXovx/...==" 
}

因此,我尝试将此“encryption_context”传递给解密方法,但“aws-crypto-public-key”对于每个请求都是唯一的。 KMS文档(以我所能理解的最佳方式)解释了公钥对于对称密钥不适用。

问题:

*我是否正确理解了解码密文输入的要求? *如果是这样,我该如何获得给定密文输入的公钥值?

profile picture
专家
已提问 4 个月前23 查看次数
1 回答
0

【以下的回答经过翻译处理】 自问自答一下。我之前使用了错误的库来解密密文。Cognito使用 Encryption SDK 来加密代码,而不是 KMS,因此需要使用相同的 SDK 来解密。

注:

  • 在此情况下,Encryption SDK 使用了用户池上配置的对称 KMS 密钥来执行加密。
  • Encryption SDK 不支持 Ruby。
profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则