当我尝试使用`PutObject`权限上传到我的S3存储桶时,为什么我会收到`AccessDenied`?

问题描述 投票:1回答:1

知道为什么我在尝试上传到我的S3存储桶时遇到AccessDenied错误?

serverless.yml

service: foo-service

custom:
  bucket: my-bucket-name

provider:
  name: aws
  iamRoleStatements:
    - Effect: Allow
      Action:
        - s3:PutObject
      Resource: "arn:aws:s3:::${self:custom.bucket}/*"

functions:
  hello:
    handler: handler.hello
    environment:
      BUCKET: ${self:custom.bucket}

我正在尝试使用public-read权限向S3添加文件。

amazon-web-services amazon-s3 amazon-iam serverless-framework
1个回答
1
投票

单独使用s3:PutObject权限可以将项目添加到S3存储桶,但是如果配置任何ACL属性,则需要额外的权限s3:PutObjectAcl

它应该是这样的:

provider:
  name: aws
  iamRoleStatements:
    - Effect: Allow
      Action:
        - s3:PutObject
        - s3:PutObjectAcl
      Resource: "arn:aws:s3:::${self:custom.bucket}/*"
© www.soinside.com 2019 - 2024. All rights reserved.