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

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

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

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

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

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

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

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

aws s3api get-object-acl \
--bucket <bucket_name> \
--key <object_name>

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

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

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

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

aws s3api put-object-acl \
--bucket <bucket_name> \
--key <object_name> \
--acl <type_acl>

Укажите:

<bucket_name> — имя бакета; <object_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=<идентификатор> — для конректных пользователей; uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers — все аутентифицированные пользователи; uri=http://acs.amazonaws.com/groups/global/AllUsers — все пользователи интернета.

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

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

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

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

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