Почему я получаю AccessDenied, когда пытаюсь загрузить в свою корзину S3 с разрешениями PutObject? - PullRequest
1 голос
/ 24 марта 2019

Есть идеи, почему я получаю ошибку AccessDenied при загрузке в мое хранилище S3?

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}

Я пытаюсь добавить файл в S3 с public-read разрешениями.

1 Ответ

1 голос
/ 24 марта 2019

Только разрешение s3:PutObject позволяет добавить элемент в корзину S3, но если вы настроите какие-либо атрибуты ACL, вам потребуется дополнительное разрешение s3:PutObjectAcl.

Это должно быть так:

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