Разрешить публичное чтение в S3 Bucket - это то же самое, что разрешить скачивать содержимое Bucket? - PullRequest
0 голосов
/ 17 октября 2018

Я объявил корзину S3 общедоступной:

  BucketPolicy:
    Type: "AWS::S3::BucketPolicy"
    Properties:
      Bucket:
        Ref: Bucket
      PolicyDocument:
        Statement:
          - Action:
              - "s3:GetObject"
            Effect: "Allow"
            Resource:
              Fn::Join:  ["", ["arn:aws:s3:::", Ref: "Bucket", "/*"]]
            Principal:
              AWS: "*"
            Sid: "AllowPublicRead"

Теперь у меня есть общедоступная корзина, из которой объекты могут быть доступны по общедоступному URL.Теперь я пытаюсь загрузить все содержимое корзины локально:

aws s3 sync s3://bucket . 

Это также работает.Это нормально, я могу просто загрузить весь контент этого ведра?Я знаю, что сделал это публичным, но это больше для того, чтобы делиться некоторыми объектами, а не загружать целое ведро.

Я бы подумал, что мне нужно что-то еще с listobject или чем-то еще.

1 Ответ

0 голосов
/ 17 октября 2018

Для интерфейса командной строки (CLI) требуются учетные данные AWS.Невозможно использовать интерфейс командной строки AWS в качестве анонимного пользователя.

Поэтому, когда вы запускаете aws s3 sync, он фактически использует ключ доступа и секретный ключ, которые вы сохраняли ранее.Эти учетные данные идентифицируют вашего пользователя IAM, поэтому он использует разрешения этого пользователя IAM, а не анонимно (публично) обращается к вашему содержимому S3.

Фактически, команда aws s3 sync не может работать только с доступом GetObjectпотому что он также должен перечислить содержимое корзины, чтобы узнать, какие файлы существуют.Таким образом, очевидно, что вы не используете определенную вами Bucket Policy.

Чтобы ответить на ваш вопрос ... исходя из вышеуказанной политики, не возможно для кого-то загрузить всю вашуbucket, потому что они не могут перечислить содержимое корзины .Они могут получить доступ только к тем объектам, которые, как они знают, существуют.

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