首页 > 解决方案 > DynamoDB 细粒度访问控制和二级索引

问题描述

所以,我目前正在制作一个具有多个索引的 DynamoDB 表并尝试管理访问控制。

我有一个键(organizationId),我不想用作我的二级索引分区或排序键,因为它在查询方面几乎毫无意义。

DynamoDB 表

DynamoDB 二级索引

以下 IAM 政策条件是否会有效地限制对基于 organizationId 的二级索引的访问?

"Condition": {
    "ForAllValues:StringEquals": {
        "dynamodb:LeadingKeys": [
            "anOrganizationId / Variable"
        ]
    }
}

标签: amazon-web-servicesamazon-dynamodbamazon-iam

解决方案


好的,我可以建议 - 你实际上可以将第二个索引作为“OrganizationId#processId” - 搜索时应该始终知道组织 ID - 因为你计划我猜想搜索具有特定进程 ID 的组织内的所有项目?

这应该对你有用(在索引上,而不是表上)

"Condition": {
                "ForAllValues:StringLike": {
                    "dynamodb:LeadingKeys": "${aws:PrincipalTag/organizationId}#*"
                },

如果我假设标签带有 org id


推荐阅读