Управлять доступом в S3
Доступ к ресурсам S3 регулируется:
- проектами — определяют доступ в рамках изолированной группы ресурсов;
- ролевой моделью — определяет доступ разных пользователей в рамках аккаунта и проекта;
- политикой доступа — определяет доступ в рамках бакета.
При получении запроса на действие в S3 сначала проверяется доступ пользователя по ролевой модели. Если ролевая модель разрешает доступ пользователю, проверяется политика доступа, если нет — доступ запрещается.
Для доступа через API или по FTP выдайте ключи.
Доступ в рамках ролевой модели
Подробнее о доступе в рамках ролевой модели в инструкции Управление доступом в продуктах Selectel.
member
Пользователь с полным доступом ко всем сервисам. Недоступно управление доступом: пользователями, сервисными пользователями, группами пользователей и федерациями.
billing
Пользователь с доступом к управлению биллингом и без доступа к управлению услугами.
iam_admin
Пользователь с доступом к управлению пользователями и без доступа к услугам и биллингу.
Не может управлять своей учетной записью: изменять разрешения, управлять уведомлениями, удалять пользователя.
Первого пользователя с ролью iam_admin
создает Владелец аккаунта.
reader
Пользователь с доступом к просмотру всего, чем управляет member
в той же обла сти доступа.
object_storage:admin
Пользователь с полным доступом к управлению S3 в рамках проекта. Не имеет доступа к S3 в других проектах и другим продуктам в своем проекте.
object_storage_user
Пользователь с доступом в бакет S3, если в нем настроена политика доступа, которая разрешает доступ к бакету этому пользователю. Степень доступа определяется настройками политики доступа. Не имеет доступа к S3 в других проектах и другим продуктам в своем проекте.
Доступ в рамках политики доступа
Если роль пользователя предусматривает доступ к S3, доступ к конкретному бакету зависит от наличия и настроек политики доступа:
- если политика доступа не создана, доступ будет разрешен всем пользователям с доступом в рамках ролевой модели, кроме роли
object_storage_user
; - если политика доступа создана, запрещено все, что не разрешено правилами политики.
Подробнее о работе политики доступа в разделе Политика доступа.
Ключи для доступа через API
В зависимости от типа API пользователю понадобится:
- IAM-токен для проекта (X-Auth-Token), используется для доступа через Object Storage API и Swift API. Можно выдавать только сервисным пользователям;
- S3-ключ (EC2-ключ), используется для подписи запросов S3 API и доступа по FTP. Состоит из пары значений — Access Key ID и Secret Key. Можно выдавать сервисным пользователям и пользователям.
Выдать S3-ключ пользователю
S3-ключ (EC2-ключ) нужно выдавать пользователю, которому разрешен доступ в S3 в рамках ролевой модели. Если роль пользователя не разрешает доступ в S3, S3-ключ бесполезен.
Пользователи с доступом в панель управления могут выдавать себе S3-ключи, но мы рекомендуем создавать сервисных пользователей и выдавать S3-ключи им.
Выдавать S3-ключи другим пользователям может только Владелец аккаунта или пользователь с ролью iam_admin
.
Сервисный пользователь не может получить S3-ключ самостоятельно, потому что у него нет доступа в панель управления — ему должен выдать ключ Владелец аккаунта или iam_admin
.
Для каждого проекта необходимо создавать отдельный ключ. На один проект можно выпустить несколько ключей.
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел с нужным типом пользователей:
- Пользователи — для пользователей с доступом в панель управления;
- Сервисные пользователи — для сервисных пользователей.
-
Откройте страницу пользователя → вкладка Доступ .
-
В блоке S3-ключи нажмите Добавить ключ.
-
Введите имя ключа.
-
Выберите проект, для которого будет работать ключ.
-
Нажмите Сгенерировать. Будет сгенерировано два значения:
- Access key — Access Key ID, идентификатор ключа;
- Secret key — Secret Access Key, секретный ключ.
-
Нажмите Скопировать и сохраните ключ — после закрытия окна его нельзя будет просмотреть.