Управлять доступом в объектное хранилище
Доступ к ресурсам объектного хранилища регулируется:
- ролевой моделью — определяет доступ в рамках аккаунта и проекта;
- политикой доступа — определяет доступ в рамках контейнера.
При получении запроса на действие в объектном хранилище сначала проверяется доступ по ролевой модели. Если ролевая модель разрешает доступ, проверяется политика доступа, если нет — доступ запрещается.
Для доступа через API выдайте ключи. Для доступа по FTP получите логин и пароль OpenStack Application Credentials.
Доступ в рамках ролевой модели
Объектное хранилище поддерживает ролевую модель:
- полный доступ ко всем проектам облачной платформы и управлению всеми ресурсами объектного хранилища и других продуктов в аккаунте есть у пользователей с ролью Владелец аккаунта и Администратор аккаунта;
- управлять пользователями может Владелец аккаунта и Администратор пользователей;
- полный доступ к управлению объектным хранилищем и другими продуктами в проекте есть у пользователей с ролью Администратор проекта;
- просматривать ресурсы объектного хранилища и других продуктов во всех или отдельных проектах могут пользователи с ролью Наблюдатель аккаунта и Наблюдатель проекта соответственно;
- полный доступ к управлению объектным хранилищем в проекте без доступа к другим продуктам есть у пользователей с ролью Администратор объектного хранилища;
- пользователи с ролью Пользователь объектного хранилища по умолчанию не имеет доступа к управлению ресурсами объектного хранилища. Он получает доступ к управлению объектами тех контейнеров, для которых настроена политика доступа, если правила политики разрешают доступ этому пользователю.
Доступ в рамках политики доступа
Если роль пользователя предусматривает доступ к объектному хранилищу, доступ к конкретному контейнеру зависит от наличия и настроек политики доступа:
- если политика доступа не создана, доступ будет разрешен;
- если политика доступа создана, запрещено все, что не разрешено правилами политики.
Подробнее о работе политики доступа в разделе Политика доступа.
Ключи для доступа через API
Выдавать ключи для доступа к хранилищу через API можно только сервисным пользователям.
Если ролевая модель и политика доступа разрешают пользователю доступ к объектному хранилищу, в зависимости от API пользователю понадобится:
- токен Keystone, используется для доступа через Selectel Storage API и Swift API. Подробнее в инструкции Авторизация документации API;
- S3-ключ (EC2-ключ), используется для подписи запросов S3 API. Состоит из пары значений — Access Key ID и Secret Key.
Выдать S3-ключ
Выдавать S3-ключи (EC2-ключи) можно только сервисным пользователям с ролью с доступом в объектное хранилище.
Выдать S3-ключ сервисному пользователю может только Владелец аккаунта или Администратор пользователей.
Для каждого проекта необходимо создавать отдельный ключ. На один проект можно выпустить несколько ключей.
В панели управления в правом верхнем углу откройте меню (номер аккаунта) и выберите Профиль и настройки.
Перейдите в раздел Управление пользователями → вкладка Сервисные пользователи.
Откройте страницу сервисного пользователя.
В блоке S3 ключи нажмите Добавить ключ.
Введите имя ключа.
Выберите проект, для которого будет работать ключ.
Нажмите Сгенерировать. Будет сгенерировано два значения:
- Access key — Access Key ID, идентификатор ключа;
- Secret key — Secret Access Key, секретный ключ.
Нажмите Скопировать и сохраните ключ — после закрытия окна его нельзя будет просмотреть.