【发布时间】:2021-04-03 06:02:47
【问题描述】:
我的 Dynamo 表在我的多租户应用程序中将 tenant_id 作为分区键,但我的分区键中除了 tenant_id 之外还有其他类型的实体。
例如:(这是一个小例子,我们一直在使用这种模式)
PK SK Att
Customer-4312a674-54a user-abc 672453782
user-abc user-abc 672453782
我想使用dynamodb:LeadingKeys 来确保一个租户的数据永远不会被另一个租户访问。在这种情况下,当PK 超载并且其中还包含其他实体时,我该如何处理。
【问题讨论】:
-
只是澄清一下:租户需要访问这两种类型的信息(即那些有租户 ID 前缀的和没有的)?我的一般建议是使用租户 ID 作为所有租户特定数据的前缀。对于租户之间共享的数据,您可以添加带有允许的单独策略声明。
-
我不知道它是怎么做的,如果它是属于该租户的 每个 项目的前缀,但我想这取决于您拥有的访问模式。我的假设是,当您进行任何查询时,您的租户 ID 存在,因为它似乎是一个面向用户的系统,并且可能是会话信息的一部分,因此可以构造正确的密钥。
-
这回答了我的问题。谢谢
-
很高兴听到这个消息,我会添加它作为答案。
标签: amazon-web-services security amazon-dynamodb multi-tenant saas