将敏感信息存储在dynamodb中

0

【以下的问题经过翻译处理】 我有一个需求,需要将敏感信息存储在dynamodb表中。 客户端应用程序输入信息,将数据发送到API网关,然后再将数据转发到表中。 客户端应用程序的Cognito用户在每个条目中都有不同的敏感数据。

我希望将对不是Cognito用户的人访问此信息的机会最小化,例如,作为开发人员,我不想能够进入dynamodb控制台并在查看表时访问数据的实际值。 理想情况下,我希望客户端应用程序执行某些操作,这样当数据发送到AWS时,它已经不能被人类阅读,但是当客户端应用程序再次获取数据时,它可以变得可读。

是否可以隐藏一些列或整个表,使IAM用户无法访问,但Lambda函数仍然可以访问它? 是否可以使用KMS密钥加密数据,以使仅客户端应用程序或Cognito用户能够访问该密钥以加密和解密客户端数据?

当前的解决方案是为每个项目生成一个数据密钥,并将其与数据存储在一起,以使数据不可读,用户不必负责存储和处理密钥。但是,这仅在敏感数据与IAM用户之间留下了一步分离,IAM用户可以使用密钥解密数据并查看数据。 是否有更好的解决方案,不会导致Cognito用户负责记住其数据的加密密钥,但也可以防止IAM用户采取简单的步骤来查看它?

我已经看到了对此帖子的回复https://repost.aws/questions/QUtBzzrw0jQmGwmPpkeAQLYw/data-redaction-or-mask-in-dynamodb,该帖子也涉及同样的问题

profile picture
专家
已提问 8 个月前42 查看次数
1 回答
0

【以下的回答经过翻译处理】 是否可以隐藏某些 IAM 用户的某些列或整个表格,但 Lambda 函数仍然能够访问它?

是的,您可以使用细粒度访问控制。

是否可以使用 KMS 密钥加密数据,以使只有客户端应用程序或 Cognito 用户可以访问该密钥以在客户端加密和解密数据?

每个 KMS 密钥都可以有自己的访问策略,在其中您可以定义谁可以访问哪个密钥。您可以使用 KMS 与加密客户端结合使用,以加密和解密敏感数据。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则