Что делает Public Access on Buckets по сравнению с Public Access для объектов?

Я новичок в AWS S3 и пытаюсь понять, как это работает.

Похоже, что для того, чтобы сделать отдельные файлы общедоступными в Интернете, вы должны установить для параметра "Общий доступ" значение "Все" для определенного объекта.

enter image description here

Однако само Bucket имеет те же разрешения;

enter image description here

Даже если я изменю "Общий доступ" на "Все" для Bucket, похоже, что все еще используются отдельные права доступа к объектам (скриншот 1).

Если это так, что именно делает "Общий доступ" в Bucket?

+1
источник поделиться
2 ответа

Права доступа S3 - запутанное дело, главным образом потому, что нужно понять три "типа".

Полное обсуждение моделей разрешений (разрешений доступа к корзине, списков управления и политик) можно найти в документации (см. Настройка разрешений доступа к корзинам и объектам - Amazon Simple Storage Service). Но как вы заметили:

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

"Открытый доступ" означает "пользователь из-за пределов вашей учетной записи, у которого нет доступа к IAM или S3 ACL".

Как и для всех разрешений доступа к корзине, это можно установить как для действий корзины (разрешить кому-либо перечислять объекты/разрешить всем создавать объекты в вашей корзине; так же, как и списки управления доступом), так и для отдельных объектов (чтение/запись)./так далее.)

Обратите внимание: если вы спрашиваете об этом, потому что вы пытаетесь сделать вашу корзину S3 общедоступной, руководство по этому вопросу можно найти в этом ответе. Просто постарайтесь не оказаться следующей компанией open-s3-bucket в новостях, пожалуйста!

+1
источник

Лучший способ предоставить публичный доступ к корзине Amazon S3 или ее части - это использовать Политику корзины. Это проще, чем предоставить публичный доступ к каждому отдельному объекту.

Вот политика, которая предоставляет публичный доступ ко всему ведру:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }
  ]
}
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос