Авторизация
Токен Selectel
Токен Selectel (ключ API) дает полный доступ к управлению всеми услугами Selectel наравне с логином и паролем от учётной записи панели управления my.selectel.ru.
Токен Selectel используется как основной токен для работы через API с услугами Selectel, у которых нет дополнительной системы авторизации, например, для Выделенных серверов или DNS-хостинга, а также для работы с тикетами.
Для управления объектами (виртуальными машинами, контейнерами и так далее) отдельных услуг, у которых есть собственная система авторизации, необходим дополнительный короткоживущий токен.
Например, в Облачной платформе Selectel для создания любых ресурсов (виртуальных машин, дисков и так далее) необходим отдельный токен OpenStack Keystone Identity и используется следующая схема авторизации:
- Токен Selectel используется для работы с проектами и пользователями.
- Отдельный токен системы авторизации этой услуги применяется для работы непосредственно с ресурсами данной услуги. Для получения этого отдельного токена нужен токен Selectel.
Получение токена Selectel
Создание токена
Для создания токена Selectel (ключа API) в панели управления:
- Нажмите кнопку Новый ключ.
- Введите в открывшемся блоке название ключа.
- Нажмите кнопку Создать ключ.
Удаление токена
Для удаления токена Selectel (ключа API) откройте меню (⋮) и выберите пункт Удалить.
Если токен Selectel (ключ API) может пригодиться в будущем, но сейчас не нужен — можно его не удалять, а временно отключить, нажав на тумблер. Для того чтобы включить ключ, включите тумблер.
Переименование токена
Для того чтобы переименовать ключ, откройте меню (⋮) и выберите Переименовать.
Пример использования токена Selectel
В Облачной платформе Selectel введите запрос, используя токен Selectel:
curl -H "X-token: <token_value>" -H "Content-Type: application/json" https://api.selectel.ru/vpc/resell/v2
Токен Selectel передаётся в каждом запросе в заголовке X-Token.
Пример создания проекта с именем Test и выставления квот на vCPU=8 в регионе ru-1 в зоне ru-1b:
curl -H "X-Token: <token_value>" 'https://api.selectel.ru/vpc/resell/v2/projects' -X POST -H "Content-Type: application/json" -d '{"project" :{"name":"Test", "quotas": {"compute_cores": [{"region": "ru-1", "zone": "ru-1b", "value": 8}]}}}'
Токен для Облачной платформы Selectel
Позволяет работать непосредственно с самими ресурсами Облачной платформы и объектами OpenStack, например, создавать облачные серверы (виртуальные машины), диски и так далее.
Для авторизации и работы с OpenStack API используются токены OpenStack Keystone, которые передаются в заголовке X-Auth-Token.
Перед тем как получить X-Auth-Token для OpenStack API, создайте пользователя проекта и добавьте его в проект с помощью Cloud Management API.
Для получения X-Auth-Token выполните запрос вида:
curl -i -H "Content-Type: application/json" "https://api.selvpc.ru/identity/v3/auth/tokens" -d ' { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "<name>", "domain": { "name": "<id_selectel>" }, "password": "<password>" } } }, "scope": { "project": { "name": "<name>", "domain": { "name": "<id_selectel>"}}}}}'
Где:
- password
- user
- name — имя пользователя, созданного в проекте;
- domain — id логина (номера договора) в панели управления my.selectel.ru;
- user
- project: name — имя проекта;
https://api.selvpc.ru/identity/v3/auth/tokens
— URL авторизации.
В случае успешной авторизации от сервиса авторизации будет получен ответ 201 Created
с заголовком x-subject-token
, который будет содержать значение токена для авторизации в OpenStack API, например:
HTTP/2 201
x-subject-token: gAABfAzrlSvxr8xoOJ89Q0k98WrZWLcQ
Далее с OpenStack API можно работать с помощью методов, описанных в docs.openstack.org.
Вид эндпоинтов api.selvpc.ru отличается для каждого региона — в формате api.<region_name>.selvpc.ru
. Для работы c OpenStack API в регионе ru-1 эндпоинт должен иметь вид api.ru-1.selvpc.ru.
Пример
Для получения списка доступных конфигураций серверов (flavors) для региона ru-3 (эндпоинт api.ru-3.selvpc.ru) введите:
curl -i -H "X-Auth-Token: <token_value>" -H "Content-Type: application/json" "https://api.ru-3.selvpc.ru/compute/v2.1/flavors"
В ответе будут объекты доступных конфигураций вида:
{"availability_zones": ["ru-3a"], "name": "BL1.1-512", "links": [{"href": "https://api.ru-3.selvpc.ru/compute/v2.1/flavors/1000", "rel": "self"}, {"href": "https://api.ru-3.selvpc.ru/compute/flavors/1000", "rel": "bookmark"}], "ram": 512, "OS-FLV-DISABLED:disabled": false, "vcpus": 1, "extra_specs": {"hw:cpu_max_sockets": "2"}, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 0, "id": "1000"}