Перейти к основному содержимому

Редактирование ACL бакета

ACL — это список управления доступом в объектном хранилище S3. Это полезно, если вы хотите вручную задать, кто и что может делать с конкретными бакетами — например, разрешить чтение, редактирование или делегировать полные права другим пользователям.

При каждом новом применении ACL старые настройки полностью перезаписываются.

Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.

AWS CLI. Редактирование ACL бакета

Просмотр текущих прав доступа к бакету

В терминале выполните команду:

aws s3api get-bucket-acl --bucket <bucket_name>

Укажите:

<bucket_name> — имя бакета.

Применение предустановленных ACL

Если нужно быстро задать типичный шаблон доступа, можно воспользоваться предустановленными ACL.

В терминале выполните команду:

aws s3api put-bucket-acl \
--bucket <bucket_name> \
--acl <type_acl>

Укажите:

<bucket_name> — имя бакета; <type_acl> — предопределенные правила ACL.

Примеры значений <type_acl>:

private — доступ только у владельца; public-read — все пользователи могут читать; public-read-write — все пользователи могут читать и записывать; authenticated-read — доступ на чтение для всех авторизованных пользователей.

Настройка индивидуальных разрешений

Если вам нужно выдать доступ конкретным пользователям или сервисам, используйте параметры --grant-*.

Примеры разрешений

--grant-read — доступ только к чтению; --grant-full-control — полный доступ к объекту; --grant-read-acp — возможность видеть настройки ACL; --grant-write-acp — возможность изменять ACL.

Примеры получателей

id=<identifier> — для конкретных пользователей; uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers — все аутентифицированные пользователи; uri=http://acs.amazonaws.com/groups/global/AllUsers — все пользователи интернета.

Пример команды

В терминале выполните команду:

aws s3api put-bucket-acl \
--bucket my-bucket \
--grant-read id=user1 \
--grant-full-control uri=http://acs.amazonaws.com/groups/global/AllUsers

Можно комбинировать сразу несколько разрешений в одной команде.

Подробнее о бакетах см. в статье О бакетах.