尽管允许“ s3:GetObject”操作,但来自S3的403

时间:2019-05-16 19:13:41

标签: amazon-web-services amazon-s3 aws-serverless

我正在使用Serverless将我的Lambda函数部署到AWS,其中之一读取S3对象。我在serverless.yml文件中设置了以下权限:

iamRoleStatements:
    - Effect: Allow
      Action:
        - s3:ListBucket
        - s3:GetObject
      Resource: "arn:aws:s3:::myBucket"

但是,在部署API之后,当我尝试访问Serverless给我的端点时,我得到了403。我还进入AWS控制台中的IAM,检查了适用区域和S3的lambdaRole,我看到了一个“限制:列表”的“访问级别”。我的理解是,根据允许的操作,我也应该在此处看到“阅读”。

有人能指出我所缺少的方向吗?

1 个答案:

答案 0 :(得分:3)

GetObject操作对对象而非桶进行操作,因此您的策略不正确。请尝试以下操作:

iamRoleStatements:
    - Effect: Allow
      Action:
      - s3:ListBucket
      Resource: "arn:aws:s3:::myBucket"
    - Effect: Allow
      Action:
      - s3:GetObject
      Resource: "arn:aws:s3:::myBucket/*"