如何使用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 Antwort
0

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

注:

  • 在此情况下,Encryption SDK 使用了用户池上配置的对称 KMS 密钥来执行加密。
  • Encryption SDK 不支持 Ruby。
profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen