如何使用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文档(以我所能理解的最佳方式)解释了公钥对于对称密钥不适用。

问题:

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

1개 답변
0

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

注:

  • 在此情况下,Encryption SDK 使用了用户池上配置的对称 KMS 密钥来执行加密。
  • Encryption SDK 不支持 Ruby。
profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠