Авторизация
Для работы с API продуктов Selectel используются:
- токены Keystone для аккаунта или проекта;
- токены Selectel (ключи API).
Используемый токен зависит от продукта и влияет на то, с какими ресурсами вы сможете работать. Например, если вы выполнили запрос на получение списка серверов:
- с токеном Keystone для проекта — в ответе вернется список всех серверов проекта;
- с токеном Keystone для аккаунта или с токеном Selectel — в ответе вернется список всех серверов аккаунта.
Адрес (URL) для обращения в запросах можно посмотреть в списке URL.
Вы можете ограничить доступ к API по адресам, которые включают в себя https://api.selectel.ru
.
Токен Keystone можно выписать только сервисному пользователю.
Токен Keystone дает доступ к управлению большинством продуктов Selectel и объектами OpenStack API наравне с логином и паролем в панели управления my.selectel.ru.
Токен Keystone позволяет управлять:
- балансом и статистикой потребления;
- пользователями и ролями (IAM) и федерациями;
- выделенными серверами;
- объектами OpenStack API (облачными серверами, сетевыми дисками и другими) — проекты и ресурсы облачной платформы, ресурсы облачной платформы в проекте, квоты и лимиты проекта, подробнее в документации OpenStack;
- облачной платформой — облачные базы данных, Managed Kubernetes, Container Registry, менеджер секретов (секреты, сертификаты, сертификаты Let’s Encrypt®);
- объектным хранилищем (Swift API и Selectel Storage API);
- CDN;
- DNS-хостингом (actual и legacy);
- почтовым сервисом Selectel.
Выписать токен можно:
- для аккаунта, чтобы управлять всеми ресурсами аккаунта, кроме ресурсов проектов;
- для проекта, чтобы управлять его ресурсами.
Токен передается в заголовке X-Auth-Token
в каждом запросе. Время жизни токена — 24 часа.
Получить токен Keystone для аккаунта
Выписывать токены для аккаунта можно сервисным пользователям с ролями:
- Администратор аккаунта;
- Администратор биллинга;
- Администратор пользователей;
- Наблюдатель аккаунта.
Если вы используете Windows, в запросах замените одинарные кавычки (''
) на двойные (""
). Мы также рекомендуем использовать для запросов PowerShell и не использовать CMD.
Выполните запрос:
curl -i -XPOST \ -H 'Content-Type: application/json' \ -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"<username>","domain":{"name":"<account_id>"},"password":"<password>"}}},"scope":{"domain":{"name":"<account_id>"}}}}' \ 'https://cloud.api.selcloud.ru/identity/v3/auth/tokens'
Укажите:
<username>
— имя сервисного пользователя. Посмотреть имя можно в панели управления: перейдите в раздел Управление доступом → Управление пользователями → вкладка Сервисные пользователи (раздел доступен только Владельцу аккаунта и Администратору пользователей);<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<password>
— пароль сервисного пользователя, можно посмотреть при создании пользователя или изменить на новый.
При успешной авторизации вернется ответ с кодом
201 Created
в формате:HTTP/2 201 X-Subject-Token: token
В заголовке
X-Subject-Token
посмотрите токен для авторизации в OpenStack API.
Получить токен Keystone для проекта
Выписывать токены для проекта можно сервисным пользователям с ролями:
- Администратор аккаунта;
- Администратор биллинга;
- Администратор пользователей;
- Наблюдатель аккаунта;
- Администратор проекта;
- Администратор объектного хранилища;
- Наблюдатель проекта.
Если вы используете Windows, в запросах замените одинарные кавычки (''
) на двойные (""
). Мы также рекомендуем использовать для запросов PowerShell и не использовать CMD.
Выполните запрос:
curl -i -XPOST \ -H 'Content-Type: application/json' \ -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"<username>","domain":{"name":"<account_id>"},"password":"<password>"}}},"scope":{"project":{"name":"<project_name>","domain":{"name":"<account_id>"}}}}}' \ 'https://cloud.api.selcloud.ru/identity/v3/auth/tokens'
Укажите:
<username>
— имя сервисного пользователя. Посмотреть имя можно в панели управления: перейдите в раздел Управление доступом → Управление пользователями → вкладка Сервисные пользователи (раздел доступен только Владельцу аккаунта и Администратору пользователей);<account_id>
— номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу;<password>
— пароль сервисного пользователя, можно посмотреть при создании пользователя или изменить на новый;<project_name>
— имя проекта.
При успешной авторизации вернется ответ с кодом
201 Created
в формате:HTTP/2 201 X-Subject-Token: token
В заголовке
X-Subject-Token
посмотрите токен Keystone.
Токен Selectel (ключ API) можно выписать только пользователю панели управления.
Токен Selectel дает полный доступ к управлению всеми продуктами Selectel, кроме объектов OpenStack API, наравне с логином и паролем в панели управления my.selectel.ru.
Для продуктов, которые не поддерживают токен Keystone, токен Selectel является единственным:
Токен Selectel передается в запросе в заголовке X-Token
. Время жизни токена не ограничено.
Получить токен Selectel
- В панели управления в правом верхнем углу откройте меню и выберите Профиль и настройки.
- Перейдите в раздел Ключи API.
- Нажмите Новый ключ.
- Введите название ключа и нажмите Создать ключ.
API | Токен Keystone для аккаунта | Токен Keystone для проекта | Токен Selectel (ключ API) |
---|---|---|---|
IAM | ✓ | ✗ | ✗ |
Федерации | ✓ | ✗ | ✗ |
Баланс | ✓ | ✗ | ✓ |
Статистика | ✓ | ✗ | ✓ |
Выделенные серверы | ✓ | ✓ | ✓ |
Проекты и ресурсы облачной платформы | ✓ | ✓ | ✗ |
Ресурсы облачной платформы в проекте | ✗ | ✓ | ✗ |
Квоты и лимиты проекта | ✓ | ✓ | ✗ |
Облачные базы данных | ✗ | ✓ | ✗ |
Managed Kubernetes | ✗ | ✓ | ✗ |
Container Registry | ✗ | ✓ | ✗ |
Секреты | ✗ | ✓ | ✗ |
Сертификаты | ✗ | ✓ | ✗ |
Сертификаты Let’s Encrypt® | ✗ | ✓ | ✗ |
Swift | ✗ | ✓ | ✗ |
Selectel Storage | ✗ | ✓ | ✗ |
CDN | ✓ | ✗ | ✓ |
DNS-хостинг (actual) | ✗ | ✓ | ✗ |
DNS-хостинг (legacy) | ✓ | ✗ | ✓ |
Почтовый сервис Selectel | ✗ | ✓ | ✗ |
Сервис мониторинга открытых портов | ✗ | ✗ | ✓ |
Сервис учета IP-адресов | ✗ | ✗ | ✓ |
Тикеты | ✗ | ✗ | ✓ |
Вложения | ✗ | ✗ | ✓ |