我正在与 AppSync 合作开展一个项目,并将捕获相对敏感的用户数据,这些数据需要在数据库中进行静态加密。
目前,我在突变或查询后使用 DynamoDB 解析器构建,但很高兴探索其他解决方案(例如通过 Lambda 函数使用 KMS 加密,然后发送到 DynamoDB;或者在创建新条目后使用 DynamoDB Streams 重构数据在一张桌子上?)
KMS 将通过 IAM 管理,用户通过 Cognito 用户池分配(我对此很陌生,但相信这是最好的方法)。
我正在与 AppSync 合作开展一个项目,并将捕获相对敏感的用户数据,这些数据需要在数据库中进行静态加密。
目前,我在突变或查询后使用 DynamoDB 解析器构建,但很高兴探索其他解决方案(例如通过 Lambda 函数使用 KMS 加密,然后发送到 DynamoDB;或者在创建新条目后使用 DynamoDB Streams 重构数据在一张桌子上?)
KMS 将通过 IAM 管理,用户通过 Cognito 用户池分配(我对此很陌生,但相信这是最好的方法)。
DynamoDB 现在支持静态加密,您可以在表上启用它。
这一切都取决于您保护数据的对象。如果解密将在 AWS 中实际发生,那么 AWS 至少暂时拥有解密密钥(因为您让他们管理密钥,并将它们提供给驻留在 AWS 中的密码)。您可以假设 AWS 可以尽快忘记密钥和解密的明文,而不是为您的解密设置后门。如果您只担心第三方(即:非 AWS)进入,那没关系。请记住,如果您不进行端到端,那么您对云提供商的防御是有限的。
如果你真的担心 AWS 解密你的东西,有几个主要问题,因为这需要端到端加密来处理:解密必须在 AWS 之外进行(即:在手机或运行的程序上解密在用户的笔记本电脑上),这意味着密钥本身仅在 AWS 之外解密,并且如果您搜索数据,您并没有告诉 AWS 您正在搜索什么(即:angerous-protesters-on-my-last-visit.mp4) . 后者是可能的,但很少有通用产品甚至尝试进行正确的端到端加密。