是否可以创建仅针对特定表提供对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": "*"
}
]
}
答案 0 :(得分:8)
对于坏消息感到抱歉,但AWS管理控制台对整个DynamoDB都要求DescribeTable
和ListTables
权限才能正常运行。
但是,有一个小的解决方法......您可以为控制台用户提供一个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 预定义政策。