允许访问特定表的DynamoDB控制台的IAM策略

时间:2015-05-22 23:15:13

标签: amazon-dynamodb amazon-iam

是否可以创建仅针对特定表提供对DynamoDB控制台的访问的AWS IAM策略?我试过了:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt0000000001",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:ListTables",
                <other actions>
            ], 
            "Effect": "Allow",
            "Resource": [
                "arn:aws:dynamodb:<region>:<account>:table/FooTable",
                "arn:aws:dynamodb:<region>:<account>:table/BarTable"
            ]
        }
    ]
}

但对于附加了此策略的用户,DynamoDB表列表显示“未授权”(与未附加策略时一样)。

将“资源”设置为“*”并添加如下所示的新语句允许用户执行&lt;其他行动&gt;在FooTable和BarTable上,但他们也可以看到表格列表中的所有其他表格。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt0000000001",
            "Action": [
                <other actions>
            ], 
            "Effect": "Allow",
            "Resource": [
                "arn:aws:dynamodb:<region>:<account>:table/FooTable",
                "arn:aws:dynamodb:<region>:<account>:table/BarTable"
            ]
        },
        {
            "Sid": "Stmt0000000002",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:ListTables"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

2 个答案:

答案 0 :(得分:8)

对于坏消息感到抱歉,但AWS管理控制台对整个DynamoDB都要求DescribeTableListTables权限才能正常运行。

但是,有一个小的解决方法......您可以为控制台用户提供一个URL,将其直接带到表中,并且可以正常运行以查看和添加项目等。

只需从具有正确权限的用户复制URL,例如:

https://REGION.console.aws.amazon.com/dynamodb/home?region=REGION#explore:name=TABLE-NAME

答案 1 :(得分:0)

我发现除了DynamoDB之外,用户还需要拥有 CloudWatch SNS 的通配符权限。请参阅此处:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html(主题:&#34;示例5:为单独的测试和生产环境设置权限策略&#34;)。

您可以向您的添加 AmazonDynamoDBReadOnlyAccess 预定义政策。