Аутентификация от имени федеративного пользователя
Вы можете использовать федеративный аккаунт для работы с Yandex Cloud, если ваша компания настроила федерацию удостоверений. В этом случае не требуется личный аккаунт на Яндексе.
Примечание
Для прохождения аутентификации на сервере без графического интерфейса нужен установленный браузер с настроенным форвардингом X11
См. также Пример аутентификации на ВМ Linux без графического интерфейса.
Если браузер установить невозможно, используйте сервисный аккаунт вместо федеративного.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите его.
Чтобы аутентифицироваться с помощью SAML-совместимой федерации удостоверений:
-
Узнайте идентификатор федерации у вашего администратора.
-
Запустите интерактивное создание профиля:
yc init --federation-id=<идентификатор_федерации>
-
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый.
Welcome! This command will take you through the configuration process. Pick desired action: [1] Re-initialize this profile 'default' with new settings [2] Create a new profile
-
CLI выведет сообщение о продолжении аутентификации в браузере. Для продолжения нажмите клавишу Enter.
You are going to be authenticated via federation-id 'aje1f0hsgds3a********'. Your federation authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.yandex.cloud'. Press 'enter' to continue...
После успешной аутентификации в профиле сохранится IAM-токен. При каждой операции аутентификация будет происходить с помощью этого токена, пока не истечет время жизни токена. После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
-
Вернитесь в интерфейс командной строки, чтобы завершить создание профиля.
-
Выберите одно из предложенных облаков, в которых у вас есть права доступа:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2
Если вам доступно только одно облако, оно будет выбрано автоматически.
-
Выберите каталог по умолчанию:
Please choose a folder to use: [1] folder1 (id = cvatao4faoe2********) [2] folder2 (id = tao4faoe2cva********) [3] Create a new folder Please enter your numeric choice: 1
-
Чтобы выбрать зону доступности по умолчанию для сервиса Compute Cloud, введите
Y
. Чтобы пропустить настройку, введитеn
.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] Y
Если вы ввели
Y
, выберите зону доступности:Which zone do you want to use as a profile default? [1] ru-central1-a [2] ru-central1-b [3] ru-central1-d [4] Do not set default zone Please enter your numeric choice: 2
-
Проверьте настройки вашего профиля CLI:
yc config list
Результат:
federation-id: aje1f0hs6oja******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
Пример аутентификации на ВМ Linux без графического интерфейса
Для аутентификации на ВМ Linux выполните следующие шаги:
-
Подключитесь к ВМ по SSH.
-
Установите CLI.
-
Создайте на ВМ файл
/usr/local/bin/xdg-open
со следующим содержимым:#!/bin/sh echo $* > /dev/tty
-
Назначьте права на исполнение файла:
sudo chmod +x /usr/local/bin/xdg-open
-
Запустите создание профиля CLI командой:
yc init --federation-id=<идентификатор_федерации>
-
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый.
Welcome! This command will take you through the configuration process. Pick desired action: [1] Re-initialize this profile 'default' with new settings [2] Create a new profile
-
CLI выведет сообщение о продолжении аутентификации в браузере. Для продолжения нажмите клавишу Enter.
You are going to be authenticated via federation-id 'aje1f0hsgds3a********'. Your federation authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.yandex.cloud'. Press 'enter' to continue...
-
После нажатия клавиши Enter вы получите URL следующего вида:
https://auth.yandex.cloud/oauth/authorize?client_id=yc.oauth.public-sdk&code_challenge=y22kspX4VrKLmdg9hGr_Bwgte_a3RXtw1En********&code_challenge_method=S256&redirect_uri=http%3A%2F%2F127.0.0.1%3A42121%2Fauth%2Fcallback&response_type=code&scope=openid&state=aExf0z********&yc_federation_hint=federation-id
Сохраните этот URL. Он потребуется для аутентификации в браузере. Вам также понадобится порт, который вы можете найти в query-параметре
redirect_uri
после IP-адреса127.0.0.1
. В данном случае это порт42121
. -
На локальном компьютере откройте новое окно терминала и выполните команду для создания SSH-туннеля, указав порт, полученный в предыдущем шаге, имя пользователя и IP-адрес ВМ:
ssh -L <порт>:127.0.0.1:<порт> <имя_пользователя>@<IP-адрес_ВМ>
-
В браузере на локальном компьютере откройте URL для аутентификации, полученный ранее.
-
Если аутентификация прошла успешно, в ожидающей команде CLI в SSH-сессии ВМ вы увидите следующий шаг настройки профиля.
-
Завершите настройку CLI.