You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda函数无法执行DynamoDB PutItem操作,如何解决权限报错?

解决Lambda角色已配全权限仍报DynamoDB PutItem权限错误的方案
  • 检查角色信任策略有效性
    Lambda角色的信任策略必须允许Lambda服务扮演它,否则即使权限策略拉满,也无法获取有效身份。打开IAM角色详情页,确认"信任关系"标签下的策略包含以下内容:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "lambda.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

    若信任策略错误,角色无法被Lambda使用,直接触发权限缺失报错。

  • 确认权限策略已正确附加
    不要想当然认为策略已经挂上,去IAM角色的"权限"标签下,检查AdministratorAccess和AmazonDynamoDBFullAccess是否真的在列表里。也可以用CLI命令验证:

    aws iam list-attached-role-policies --role-name 你的Lambda角色名
    

    输出里必须包含这两个策略。

  • 排查DynamoDB表的资源策略
    即使角色有全权限,如果目标DynamoDB表设置了资源策略,可能会拒绝PutItem请求。进入DynamoDB控制台,找到对应表的"权限"标签,查看是否有针对该角色的拒绝规则,有则调整策略允许操作。

  • 检查权限边界限制
    若角色设置了权限边界,附加的全量权限会被边界覆盖。去角色详情页的"权限边界"标签,确认边界策略允许dynamodb:PutItem操作,或者直接移除不必要的权限边界。

  • 验证Lambda执行角色配置
    确认Lambda函数实际使用的执行角色是你配置了权限的那个。进入Lambda控制台函数详情页,查看"配置"->"权限"下的执行角色名称是否正确,避免选成了其他无权限角色。

  • 用CloudTrail日志定位根因
    打开CloudTrail控制台,搜索该Lambda角色的dynamodb:PutItem请求记录,查看日志中的errorCode和errorMessage字段,里面会给出具体的拒绝原因,比如是资源策略拦截、权限边界限制还是角色未被正确假定。

内容的提问来源于stack exchange,提问作者Jack Eggert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:20:12