Lambda和DynamoDB:无权执行:dynamodb:UpdateItem用户具有管理员访问权限

问题描述

用户具有AdminitratorAccess。我能够从dynamoDB创建和读取数据。
我正在使用无服务器工具并使用aws-go-mod模板。

这是serverless.yml

service: user-services-go
frameworkVersion: ">=1.28.0 <2.0.0"

provider:
  name: aws
  runtime: go1.x
  stage: dev
  region: us-east-1
  environment:
    DYNAMODB_USER_TABLE: ${self:custom.dynamodb.userTable}
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
      Resource: "*"

functions:
  updateUser:
    handler: bin/pkg/updateUser
    events:
      - http:
          method: put
          cors: true
          path: /v1/user/{username}

谢谢。

解决方法

您缺少dynamodb:UpddateItem中的iamRoleStatements操作。应该显示为:

iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
        - dynamodb:UpdateItem   # <--- ADD THIS LINE 
      Resource: "*"