首页 > 解决方案 > 使用标签键限制对 DynamoDB 的访问

问题描述

我正在关注 Amazon 的“使用资源标签控制对 AWS 资源的访问”的文档,以使用 Dynamo 表本身的标签键来控制对我的 DynamoDB 资源的访问。

我使用的策略 Json 如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "TestAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": "X"
                }
            }
        }
    ]
}

无论我做什么,它似乎都不允许使用访问ForAnyValue,尝试使用StringEquals/StringLike并且没有任何效果。当我切换到ForAllValues它时,无论标签如何(即使 X 不存在),它都允许访问每个呼叫。

我不知道我错过了什么,Dynamo 甚至支持标记访问限制吗?难道我做错了什么?谢谢

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

解决方案


DynamoDB 文档中所述,并且根据 @ shuvalov的评论,DynamoDB 不支持基于标签的条件。

它在文档中明确说明。

一些 AWS 服务还支持基于标签的条件;但是,DynamoDB 没有。

服务授权参考可用于查看每个 AWS 服务支持的条件键。


推荐阅读