首页 > 解决方案 > 如何使用 AWS cognito 存储我的用户特定密钥?

问题描述

我正在实现一个允许用户将文档从用户 A 发送给用户 B 的应用程序。我想使用客户端加密(https://en.wikipedia.org/wiki/Client-side_encryption)来加密文档。中间我将加密的文档存储在 S3 中,直到用户 B 登录下载文档。

一种策略可能是使用用户密码加密用于客户端加密的密钥,并使用密码哈希来匹配密码是否正确。然而,当用户忘记密码时,这会引发问题。

有没有办法将密钥信息“附加”到 aws cognito 中的用户配置文件,只有在用户登录后才可用?归根结底,我们的管理员和开发人员应该不可能在数据库中浏览以收集用户密钥,从而能够解密客户端加密的文档。

标签: encryptionamazon-cognito

解决方案


是的,可以在创建 cognito 用户时添加自定义属性:

https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html

登录并调用任何 lambda 后,您可以使用 aws SDK 获取这些属性。


推荐阅读