Авторизация

Токен Selectel

Токен Selectel (ключ API) дает полный доступ к управлению всеми услугами Selectel наравне с логином и паролем от учётной записи панели управления my.selectel.ru.

Токен Selectel используется как основной токен для работы через API с услугами Selectel, у которых нет дополнительной системы авторизации, например, для Выделенных серверов или DNS-хостинга, а также для работы с тикетами.

Для управления объектами (виртуальными машинами, контейнерами и так далее) отдельных услуг, у которых есть собственная система авторизации, необходим дополнительный короткоживущий токен.

Например, в Облачной платформе Selectel для создания любых ресурсов (виртуальных машин, дисков и так далее) необходим отдельный токен OpenStack Keystone Identity и используется следующая схема авторизации:

  1. Токен Selectel используется для работы с проектами и пользователями.
  2. Отдельный токен системы авторизации этой услуги применяется для работы непосредственно с ресурсами данной услуги. Для получения этого отдельного токена нужен токен Selectel.

Получение токена Selectel

Для создания токена Selectel (ключа) в панели управления:

  1. Нажмите кнопку Новый ключ.
  2. Введите в открывшемся блоке название.
  3. Нажмите кнопку Создать ключ.

Для удаления токена Selectel (ключа) разверните меню (⋮) и выберите пункт Удалить.

Если токен Selectel (ключ) может пригодиться в будущем, но сейчас не нужен — можно его не удалять, а временно отключить. Для того чтобы включить ключ — активируйте его в соответствующем блоке. Для того чтобы переименовать ключ разверните меню (⋮) и выберите Переименовать.

Пример использования токена Selectel

В Облачной платформе Selectel введите запрос, используя токен Selectel:

curl -H "X-token: <token_value>" -H "Content-Type: application/json" https://api.selectel.ru/vpc/resell/v2

Токен Selectel передаётся в каждом запросе в заголовке X-Token.

Для создания проекта и выставления квот на vCPU=8 с именем Test, в регионе 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;
  • 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"}