如何让AWS用户查看并编辑其他用户创建的DynamoDB表?
解决AWS用户无法查看其他用户创建的DynamoDB表问题
1. 检查DynamoDB表的资源策略
很多时候用户创建表时会手动添加资源策略,限制仅创建者可访问:
- 登录AWS控制台进入DynamoDB服务,找到Default用户创建的目标表
- 点击「表操作」→「编辑资源策略」,查看是否存在仅允许Default用户ARN访问的语句,例如:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Default"}, "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/YourTableName" } ] } - 修改策略,允许Admin用户组或所有IAM用户访问,比如将Principal替换为Admin用户组的ARN:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:group/Admin"}, "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/YourTableName" } ] } - 保存策略后,用Default-2用户重新尝试访问表
2. 验证用户的权限边界
若用户被设置了权限边界,即使隶属于管理员组,实际权限也会被边界限制:
- 进入IAM控制台,找到Default-2用户
- 查看「权限边界」区域,若存在附加策略,确认该策略是否允许DynamoDB相关操作
- 若权限边界限制了DynamoDB访问,可修改边界策略或直接移除权限边界
3. 确认Admin用户组的权限完整性
检查Admin组的AdministratorAccess策略是否被修改,确保包含完整的DynamoDB权限:
- 进入IAM控制台,找到Admin用户组
- 查看附加的策略,确认是AWS托管的完整版本,内容应包含:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] } - 若策略被自定义修改,可恢复为原始托管策略,或补充DynamoDB全权限语句
4. 排查组织SCP限制
如果AWS账号属于组织,组织层面的服务控制策略(SCP)可能覆盖IAM权限:
- 进入AWS Organizations控制台
- 查看当前账号附加的SCP策略,确认没有限制DynamoDB操作的语句
- 若存在限制,修改SCP策略以允许DynamoDB访问
5. 清理控制台缓存或刷新会话
AWS控制台缓存或未刷新的会话可能导致权限更新不生效:
- 让Default-2用户完全退出AWS控制台后重新登录
- 使用AWS CLI测试访问,例如执行命令:
aws dynamodb describe-table --table-name YourTableName - 若CLI能正常返回结果,说明是浏览器缓存问题,清理缓存后再尝试访问控制台
内容的提问来源于stack exchange,提问作者PortalFan
相关产品推荐
相关产品推荐

