如何配置IAM角色限制DynamoDB表访问及条件化创建权限?
实现DynamoDB权限精细化控制的IAM策略配置
你可以通过自定义IAM权限策略来实现这个需求,策略会拆分两部分权限:允许创建指定后缀的表,以及允许对目标表执行CRUD操作。以下是具体的策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:CreateTable", "Resource": "arn:aws:dynamodb:*:*:table/*", "Condition": { "StringLike": { "dynamodb:TableName": "*_user_table" } } }, { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Scan", "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:*:*:table/your-specific-existing-table", "arn:aws:dynamodb:*:*:table/*_user_table" ] } ] }
策略细节解释:
- 创建表权限:
允许dynamodb:CreateTable动作,Resource设为所有DynamoDB表(*通配符),再通过Condition的StringLike规则限制仅能创建表名以_user_table结尾的表。 - CRUD权限:
列出了DynamoDB核心CRUD操作动作,覆盖读取、写入、查询、扫描等场景。Resource部分同时包含你需要授权的特定固定表(替换your-specific-existing-table为实际表名),以及所有以_user_table结尾的表,确保角色能对指定现有表和自己创建的表执行CRUD。
配置步骤:
- 登录AWS IAM控制台,找到目标角色。
- 点击「添加权限」→「创建内联策略」。
- 选择「JSON」模式,粘贴上述策略并根据实际需求修改资源ARN(替换区域、账号ID、特定表名)。
- 完成策略命名后保存,附加到目标角色即可。
内容的提问来源于stack exchange,提问作者mbadawi23
相关产品推荐
相关产品推荐

