首页 文章

DynamoDB细粒度访问控制和二级索引

提问于
浏览
0

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

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

DynamoDB table

  • 表名:执行

  • 分区键:OrganizationId(String)

DynamoDB Secondary Index

  • 主分区键:processId(String)

  • 主要排序键:状态(数量)

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

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

1 回答

  • 0

    以下权限策略允许使用dynamodb:Attributes条件密钥对二级索引(此处为索引名称:TopScoreDateTimeIndex)进行查询 . 该策略还将查询限制为仅请求已投影到索引中的特定属性 . 请注意资源和条件部分

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "QueryOnlyProjectedIndexAttributes",
                "Effect": "Allow",
                "Action": [
                    "dynamodb:Query"
                ],
                "Resource": [
                    "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/TopScoreDateTimeIndex"
                ],
                "Condition": {
                    "ForAllValues:StringEquals": {
                        "dynamodb:Attributes": [
                            "TopScoreDateTime",
                            "GameTitle",
                            "Wins",
                            "Losses",
                            "Attempts"
                        ]
                    },
                    "StringEquals": {
                        "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                    }
                }
            }
        ]
    }
    

相关问题