【发布时间】:2016-04-25 09:34:58
【问题描述】:
我正在尝试开发一种几乎完全基于 AWS 服务的应用程序架构。
此应用程序同时具有 User 和 Organization“实体”。除此以外,User 可能是一个或多个组织的admin、role-x 或role-y。 (role-x 和 role-y 只是具有某些特定权限集的某些角色的占位符。User 也可能是独立的(也就是说,在任何 Organization 上都没有角色)。
我们目前的想法是使用 DynamoDB 来存储组织和用户特定的数据。对于用户而言,这可能包括一些基本信息(地址、电话号码等),对于组织而言,它可能包括“使命宣言”、“公司地址”等字段。
组织的admin 将能够编辑所有组织字段,而role-x 可能只能在读取所有其他字段时更新“使命声明”。
由于我提到单个用户可能在许多不同的组织中担任角色,因此可能类似于:
user1:
organizations:
123: 'admin'
456: 'role-x'
789: 'admin'
还值得注意的是,这些角色分配是可修改的。可以邀请新用户或现有用户担任组织的特定角色,并且组织可以从角色中删除用户。
这是一种相当简单的布局类型,但我想非常清楚用户、组织和角色的多对多性质。
我一直在阅读 IAM 和 Cognito 文档,以及它与对 DynamoDB 项目或 S3 存储桶的细粒度控制之间的关系 - 但许多示例关注的是单个用户访问他们自己的数据,而不是多个 -对多角色风格的布局。
如何在 AWS 上实施这种权限系统?
(如果需要使用特定的 Identities 更新策略定义(例如,对于 Organization),这是否可以通过编程方式可靠地完成 - 或者像这样即时修改策略是不明智的?)
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-dynamodb amazon-cognito