Редактирование ACL объекта
В Object Storage реализовано несколько механизмов для управления доступом к ресурсам. Алгоритм взаимодействия этих механизмов см. в Обзор способов управления доступом в Object Storage.
Для управления доступом к объекту в бакете Object Storage можно воспользоваться ACL.
Примечание
Если ранее для объекта уже был задан ACL, то после применения изменений ACL будет полностью перезаписан.
-
В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. -
На панели слева выберите
Объекты и найдите в списке нужный объект. -
Чтобы отредактировать ACL, нажмите значок
в строке с нужным объектом и выберите ACL объекта.Также можно нажать на имя объекта, на открывшейся странице справа сверху нажать
и выбрать ACL объекта.В открывшемся окне Редактирование ACL выдайте или отзовите необходимые разрешения:
-
Выберите нужных субъектов из списка. Для этого поместите курсор в поле для ввода данных субъекта и в появившейся форме выберите нужного пользователя, сервисный аккаунт, группу пользователей, системную группу или публичную группу. При необходимости воспользуйтесь соответствующими вкладками формы или строкой поиска по имени или электронному адресу субъекта.
Задать разрешение вы можете одновременно для нескольких субъектов, для этого выбирайте их поочередно.
-
Задайте для выбранных субъектов необходимый вид разрешений и нажмите Добавить.
-
Если требуется задать субъектам другие виды разрешений, повторите два предыдущих шага.
-
Чтобы отозвать выданное субъекту разрешение, нажмите Отменить в строке с этим разрешением.
-
Нажмите кнопку Сохранить.
Примечание
В консоли управления разрешения можно выдать только тем сервисным аккаунтам, которые созданы в том же каталоге, что и сам бакет. Выдать разрешения для сервисных аккаунтов, относящихся к другим каталогам, можно с помощью YC CLI (только для ACL бакета), AWS CLI, Terraform или API.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
Примечание
Чтобы управлять ACL объекта, назначьте сервисному аккаунту, через который работает AWS CLI, роль storage.admin
.
Посмотрите текущий ACL объекта:
aws s3api get-object-acl \
--endpoint https://storage.yandexcloud.net \
--bucket <имя_бакета> \
--key <ключ_объекта>
Где:
--endpoint
— эндпоинт Object Storage.--bucket
— имя бакета.--key
— ключ объекта.
Вы можете применить к объекта предопределенный ACL или настроить разрешения для отдельных пользователей, сервисных аккаунтов, групп пользователей и публичных групп (группа всех пользователей интернета, группа всех аутентифицированных пользователей Yandex Cloud). Эти настройки несовместимы: у объекта должен быть либо предопределенный ACL, либо набор отдельных разрешений.
Предопределенный ACL
Выполните команду:
aws s3api put-object-acl \
--endpoint https://storage.yandexcloud.net \
--bucket <имя_бакета> \
--key <ключ_объекта> \
--acl <предопределенный_ACL>
Где:
--endpoint
— эндпоинт Object Storage.--bucket
— имя бакета.--key
— ключ объекта.--acl
— предопределенный ACL. Список значений см. в разделе Предопределенные ACL.
Настройка отдельных разрешений
-
Чтобы выдать разрешения ACL для пользователя Yandex Cloud, сервисного аккаунта или группы пользователей, получите их идентификатор:
- Пользователь.
- Сервисный аккаунт.
- Группа пользователей — перейдите на вкладку Группы
в интерфейсе Cloud Center.
-
Выполните команду:
aws s3api put-object-acl \ --endpoint https://storage.yandexcloud.net \ --bucket <имя_бакета> \ --key <ключ_объекта> \ <тип_разрешения> <получатель_разрешения>
Где:
-
--endpoint
— эндпоинт Object Storage. -
--bucket
— имя бакета. -
--key
— ключ объекта. -
Возможные типы разрешений ACL:
--grant-read
— доступ к чтению объекта.--grant-full-control
— полный доступ к объекту.--grant-read-acp
— доступ к чтению ACL объекта.--grant-write-acp
— доступ к редактированию ACL объекта.
Вы можете задать несколько разрешений в одной команде.
-
Возможные получатели разрешений:
id=<идентификатор_получателя>
— идентификатор пользователя, сервисного аккаунта или группы пользователей, которым нужно дать разрешение.uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers
— публичная группа всех аутентифицированных пользователей Yandex Cloud.uri=http://acs.amazonaws.com/groups/global/AllUsers
— публичная группа всех пользователей интернета.
-
Примечание
Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin
, на каталог, в котором будут создаваться ресурсы.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы отредактировать ACL объекта:
-
Откройте файл конфигурации Terraform и добавьте параметр
acl
в описание объекта.... resource "yandex_storage_object" "cute-cat-picture" { access_key = "<идентификатор_статического_ключа>" secret_key = "<секретный_ключ>" bucket = "cat-pictures" key = "cute-cat" source = "/images/cats/cute-cat.jpg" acl = "public-read" } ...
Где:
-
access_key
— идентификатор статического ключа доступа.Примечание
Кроме статических ключей доступа для аутентификации в Object Storage можно использовать IAM-токен. Подробнее смотрите в разделе Создание бакета и в документации провайдера
. -
secret_key
— значение секретного ключа доступа. -
acl
— предопределенный ACL объекта. Значение по умолчанию —private
: пользователи Yandex Cloud получают разрешения в соответствии со своими ролями в IAM.
Более подробную информацию о параметрах ресурса
yandex_storage_object
в Terraform см. в документации провайдера . -
-
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение группы безопасности можно в консоли управления
.
Чтобы отредактировать ACL объекта, воспользуйтесь методом S3 API objectPutAcl.
Чтобы загрузить объект с установкой ACL, воспользуйтесь методом S3 API upload с заголовками X-Amz-Acl
, X-Amz-Grant-Read
, X-Amz-Grant-Read-Acp
, X-Amz-Grant-Write-Acp
и X-Amz-Grant-Full-Control
.