Lambda函数扫描DynamoDB表权限报错,配置全量权限仍无效
排查方向及可能原因
可能的原因及验证步骤
资源ARN覆盖范围不匹配
若你的Scan操作实际针对目标表的二级索引执行,仅指定表ARN会导致权限缺失,需补充索引ARN格式:arn:aws:dynamodb:us-east-1:xxxx:table/my_table/index/*。不过你的错误提示明确指向表资源,可作为补充验证项。策略未正确生效或关联错误
- 确认Lambda绑定的执行角色与配置策略的角色完全一致,避免选错角色的低级错误。
- AWS权限策略修改后存在3-5分钟的同步延迟,可等待片刻后重试操作。
- 使用IAM控制台的策略验证工具检查策略JSON语法是否存在隐性错误(比如多余逗号、引号不匹配)。
权限边界(Permissions Boundary)限制
若Lambda执行角色设置了权限边界,该边界会限定角色的最大权限范围,即使附加了允许策略也会被覆盖。检查角色的权限边界规则,确认是否允许dynamodb:Scan操作。组织级服务控制策略(SCP)拦截
若处于AWS Organizations环境中,所在OU的服务控制策略(SCP)可能会全局拦截dynamodb:Scan操作。需确认SCP规则中未显式拒绝该操作,且包含允许DynamoDB操作的授权语句。会话策略限制
若Lambda通过临时凭证(如AssumeRole生成的会话)执行,附加的会话策略可能会限制基础角色的权限,导致dynamodb:Scan被禁止。检查会话策略的权限规则。IAM角色信任策略异常
虽然错误提示指向身份策略,但如果角色的信任策略未正确允许Lambda服务扮演该角色,也可能导致权限验证失败。确认信任策略包含以下核心语句:{ "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }
内容的提问来源于stack exchange,提问作者user1154644
相关产品推荐
相关产品推荐

