如何使用 AWS Cognito 存储我的用户特定密钥?
How can I use AWS cognito to store my user specific keys?
我正在实现一个允许用户将文档从用户 A 发送到用户 B 的应用程序。我想使用客户端加密 (https://en.wikipedia.org/wiki/Client-side_encryption) 来加密文档。中间我将加密文档存储在 S3 中,直到用户 B 登录下载文档。
一种策略可以是使用用户密码对客户端加密的密钥进行加密,如果密码正确,则使用密码哈希进行匹配。然而,当用户忘记密码时,这会引发问题。
有没有办法 'attach' aws cognito 中用户配置文件的密钥信息只有在用户登录后才可用?最重要的是,我们的管理员和开发人员不应该在数据库中四处浏览以收集用户密钥,从而能够解密客户端加密的文档。
是的,在创建 Cognito 用户时您可以添加自定义属性:
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html
登录并调用任何 lambda 后,您可以使用 aws SDK 获取这些属性。
我正在实现一个允许用户将文档从用户 A 发送到用户 B 的应用程序。我想使用客户端加密 (https://en.wikipedia.org/wiki/Client-side_encryption) 来加密文档。中间我将加密文档存储在 S3 中,直到用户 B 登录下载文档。
一种策略可以是使用用户密码对客户端加密的密钥进行加密,如果密码正确,则使用密码哈希进行匹配。然而,当用户忘记密码时,这会引发问题。
有没有办法 'attach' aws cognito 中用户配置文件的密钥信息只有在用户登录后才可用?最重要的是,我们的管理员和开发人员不应该在数据库中四处浏览以收集用户密钥,从而能够解密客户端加密的文档。
是的,在创建 Cognito 用户时您可以添加自定义属性:
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html
登录并调用任何 lambda 后,您可以使用 aws SDK 获取这些属性。