Общая информация о политиках доступа
Доступ к бакету можно задать через политику доступа (Bucket policy). Политика состоит из правил, которые разрешают или запрещают действия с ресурсом (бакетом или группой объектов) для всех или выбранных принципалов (пользователей). Основной принцип — если политика доступа создана, запрещено все, что не разрешено.
Политика доступа работает только с S3 API.
Политика доступа имеет ограничение на максимальный размер в 20 КБ.
Политика доступа может распространяться на любого пользователя, которому разрешен доступ к хранилищу в соответствии с ролевой моделью, а также определяет доступ для пользователей с ролью Пользователь S3. Подробнее о взаимодействии ролевой модели и политик доступа в инструкции Управлять доступом в S3.
Управлять политиками доступа могут только пользователи с ролью Владелец аккаунта, Администратор аккаунта или Администратор проекта, в котором находится бакет.
Создавать политики доступа и управлять ими можно в панели управления или через S3 API в соответствии с требованиями к структуре политики.
Структура политики доступа
Политика доступа имеет JSON-структуру. Пример политики:
{
"Id": "my-bucket-policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowObjectDeletion",
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::bucket-name",
"arn:aws:s3:::bucket-name/*",
"arn:aws:s3:::bucket-name/${aws:userid}/*"
],
"Condition": {
"StringEquals": {
"aws:UserAgent": [
"storage-test-user-agent"
]
}
}
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
Содержимое политики:
Правила
Правила бывают двух типов: разрешающие (Allow
) и запрещающие (Deny
).
Разрешение или запрет распространяется на действия, ресурсы и принципалов, добавленных в правило.
Если политика содержит несколько пр авил, они применяются следующим образом:
- если хотя бы одно разрешающее правило выполняется, доступ будет разрешен;
- если хотя бы одно запрещающее правило выполняется, доступ будет запрещен;
- если выполняются одновременно разрешающие и запрещающие правила, доступ будет запрещен;
- если ни одно правило не выполняется, доступ будет запрещен.
Принципалы
Правило применяется в отношении запросов от принципалов (пользователей):
- на авторизованные запросы определенных пользователей, указываются идентификаторы пользователей (посмотреть идентификатор сервисного пользователя можно в панели управления);
- на все авторизованные и неавторизованные запросы, обозначается символом
*
.
Добавлять в качестве принципалов пользователей панели управления в политики доступа можно только при настройке политики через панель управления.