Чтобы ограничить доступ к служебной учетной записи, вам необходимо использовать ACL .
Вам также необходимо использовать YC CLI и AWS CLI.
Позвольте мне объяснить все с самого начала, начиная с создания учетной записи.
# yc iam service-account create name <account name>
id: <service-account id>
folder_id: <folder_id>
created_at: "2019-01-23T45:67:89Z"
name: <account name>
# yc iam access-key create service-account-name <account name>
access_key:
id: <operation id>
service_account_id: <service-account_id>
created_at: "2019-12-34T56:78:90Z"
key_id: <key id>
secret: <secret key>
Сохраните key_id и секретный ключ. Теперь настройте интерфейс командной строки AWS в соответствии с инструкцией в документации для работы с учетной записью администратора.
Создайте ведро и установите для него доступ. Чтобы предоставить доступ, вам нужно установить service_account_id
в команде put-bucket-acl
поля id
.
# aws endpoint-url=https://storage.yandexcloud.net s3
mb s3://<bucket_name>
make_bucket: <bucket_name>
# aws endpoint-url=https://storage.yandexcloud.net
s3api put-bucket-acl \
bucket hidden-bucket grant-full-control
id=<service_account_id> \
grant-read
PS Единственная проблема заключается в том, что хранилище объектов Яндекса не поддерживает разрешение «ЗАПИСЬ», и вы можете установить полный доступ только для служебной учетной записи. Это означает, что он может редактировать ACL в своем сегменте.