postgresql - AWS RDS Postgres/Iam 身份验证/和行级安全性 - 合而为一。这可能吗?

标签 postgresql amazon-web-services security amazon-rds

我有一个应用程序,许多用户在不同级别的权限上可以“查看/选择”。

用户形成一个层次结构。 Level1--> Level2--Level3 等等 Level1用户可能有很多Level2用户,类似Level2用户可能有很多Level3用户。每个用户都可以看到属于他们或他们正下方的任何人的任何东西。例如:2 级用户可以看到汇总到她的所有 3 级用户信息,但看不到汇总到其他 2 级用户的任何 3 级用户的信息....你明白了。

所有用户 ID 都是唯一的。

我正在考虑使用基于用户 ID 进行限制的策略来实现行级安全性。这是通过实现行级安全性和策略在数据库级工作的。

但是,我想知道如何使用 IAM 角色和基于 IAM 的身份验证来实现这一点?

我阅读了文档。它指出,虽然我可以创建一个 IAM 角色并在数据库级别为它们分配特权,并且可以将各个用户分配给这些 IAM 角色以使用 authtokens 访问数据库,但它没有说明我如何跟踪每个用户数据库级别以确保他们只能看到自己的数据?

任何见解表示赞赏。

小号

最佳答案

如果您在 google 上搜索“SaaS Multi-Tenancy 存储隔离”,您会找到许多关于该主题的资源。简短的回答是,您可以使用 DynamoDB 实现您正在尝试执行的操作(由 IAM 策略强制执行的池隔离)。但是对于 RDS,您必须依赖数据库用户和 PostgeSQL RLS 功能。

如果查看 DyanmoDB 和 RDS 条件键的 IAM 文档,您会发现使用 DynamoDB 可以根据“dynamodb:LeadingKeys”或“dynamodb:Attributes”等内容过滤操作。在 RDS 中,您没有像单个指标或属性那样精细的过滤器。

这里有一些关于该主题的其他 Material 值得一看:

关于postgresql - AWS RDS Postgres/Iam 身份验证/和行级安全性 - 合而为一。这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66628785/

相关文章:

postgresql - 如何将 Postgresql 移动到 Docker 中的 RAM 磁盘?

django - 将 django web 应用程序连接到 gcloud 中的 postgresql

amazon-web-services - 使用 boto3 invoke() 时获取 AWS Lambda 响应

postgresql - 9.6 升级后 postgresql IN 查询出现奇怪的性能问题

postgresql - Postgres : Reduce varchar size and truncate

amazon-web-services - 使用 cloudformation 在 AWS EC2 实例中创建文件的最佳实践

hadoop - 云计算中 Hadoop 的数据局部性

php - 在加密的 SSL 连接上使用 HTTP POST 发送信用卡信息是否足够安全?

javascript - 如何设置本地环境以使用 Chrome 的最新 SameSite cookie 更改?

javascript - 如何安全地保存客户端的状态?