IAM角色访问DynamoDB控制台所需权限及用户无表显示问题咨询
AWS DynamoDB控制台权限相关问题解答
1. IAM角色访问AWS控制台DynamoDB需要哪些必要权限?
要让IAM角色能正常访问DynamoDB控制台,核心权限和辅助权限都得配齐,具体来说:
- DynamoDB核心操作权限:
- 最基础的是
dynamodb:ListTables——没有这个权限,控制台根本加载不出表的列表; - 如果要查看表的详细信息、数据内容,还需要
dynamodb:DescribeTable、dynamodb:Scan、dynamodb:Query这些只读权限;如果是读写需求,再加上dynamodb:GetItem、dynamodb:PutItem等操作权限。
- 最基础的是
- 控制台辅助权限:
- DynamoDB控制台会展示CloudWatch监控数据,所以需要
cloudwatch:GetMetricStatistics权限才能看到这些指标; - 如果需要查看表的标签信息,还要
dynamodb:ListTagsOfResource权限;
- DynamoDB控制台会展示CloudWatch监控数据,所以需要
- 额外注意:角色的信任策略必须允许对应的实体(比如IAM用户、AWS服务)来扮演这个角色,不然就算权限策略配了,也没法通过角色登录控制台。
2. 拥有指定只读权限却看不到DynamoDB表,需要额外权限吗?
你配置的AmazonDynamoDBReadOnlyAccess托管策略本身已经包含了dynamodb:ListTables和dynamodb:DescribeTable这些核心权限,看不到表大概率不是缺这个托管策略里的权限,而是其他原因:
- 区域不匹配:先确认你的DynamoDB表在哪个AWS区域,控制台默认显示的是当前选中的区域,切换到表所在的区域试试;
- 权限边界或SCP限制:如果你的账号属于AWS组织,检查是否有服务控制策略(SCP)限制了DynamoDB的访问;另外,看看这个用户有没有附加权限边界,权限边界会覆盖你的权限策略;
- KMS密钥权限缺失:如果你的DynamoDB表用了客户管理的KMS密钥加密,
AmazonDynamoDBReadOnlyAccess只允许访问AWS管理的密钥,这时候需要给用户添加针对该KMS密钥的kms:Decrypt和kms:DescribeKey权限; - 控制台缓存问题:有时候浏览器缓存会导致权限不生效,试试退出账号重新登录,或者换个浏览器打开控制台。
如果排查后还是有问题,你可以用AWS CLI执行aws dynamodb list-tables命令测试:如果CLI能列出表,那就是控制台的缓存问题;如果CLI也不行,再仔细检查权限策略里的资源范围有没有被限制(比如是不是只允许访问特定ARN的表,而不是*)。
内容的提问来源于stack exchange,提问作者VV75
相关产品推荐
相关产品推荐

