s3.listObjectsV2 AccessDenied - PullRequest
       16

s3.listObjectsV2 AccessDenied

0 голосов
/ 05 июня 2019

Привет. Я пытаюсь перечислить все файлы в «папке» корзины S3. Поэтому я стараюсь:

const params = {
   Bucket: s3bucketname,
   Prefix: foldername + "/"
};

const data = await s3.listObjectsV2(params).promise()
console.log(data)

, которые дают мне ошибку AccessDenied.

Файлы хранятся в таком виде

const params = {
  Bucket: s3bucketname,
  Key: foldername + "/" + filename,
  ContentType: 'image/jpeg',
  ACL: 'public-read',
  Body: data
};

await s3.upload(params, tags).promise();

и публично доступно. который отлично работает Также используя

const params = {
  Bucket: s3bucketname,
  Key: folderfilename
};

await s3.headObject(params).promise()

отлично работает.

файл yml выглядит так

S3BucketampstoryscreenshotsPolicy:
  Type: AWS::S3::BucketPolicy
  Properties: 
    Bucket: 
      Ref: S3Bucketampstoryscreenshots
    PolicyDocument: 
      Statement: 
        - 
          Action: 
            - "s3:Get*"
          Effect: "Allow"

Я протестировал несколько небольших вариантов, но не могу найти здесь проблему?

1 Ответ

0 голосов
/ 06 июня 2019

Требуется оператор ListBucket. Здесь важно иметь Ref один раз с / * и один раз без / * Если не установить его так, это приведет к

Действие не распространяется на любые ресурсы в заявлении (Сервис: Amazon S3; Код статуса: 400; Код ошибки: MalformedPolicy;

Это работает в моем случае:

       PolicyDocument: 
          Statement: 
            - 
              Action: 
                - "s3:GetObject"
              Effect: "Allow"
              Resource: 
                Fn::Join: 
                  - ""
                  - 
                    - "arn:aws:s3:::"
                    - 
                      Ref: "S3Bucketampstoryscreenshots"
                    - "/*"
              Principal: "*"
            - 
              Action: 
                - "s3:ListBucket"
              Effect: "Allow"
              Resource: 
                Fn::Join: 
                  - ""
                  - 
                    - "arn:aws:s3:::"
                    - 
                      Ref: "S3Bucketampstoryscreenshots"
              Principal: "*"

Спасибо Джармоду за подсказку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...