Получение IAM-токена для аккаунта на Яндексе
IAM-токен для аккаунта на Яндексе можно получить двумя способами:
- С помощью CLI (рекомендуется) — наиболее безопасный способ. Для получения IAM-токена необходимо установить YC CLI.
- С помощью OAuth-токена — наиболее простой способ. Получите OAuth-токен, который есть у каждого аккаунта на Яндексе, и обменяйте его на IAM-токен, используя любой удобный HTTP-клиент, например cURL или PowerShell.
Примечание
Время жизни IAM-токена — не больше 12 часов, но рекомендуется запрашивать его чаще, например каждый час.
Получить IAM-токен с помощью YC CLI
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Получите IAM-токен:
yc iam create-token
Пример использования IAM-токена, полученного с помощью CLI
Выполнение запроса на получение списка облаков с помощью IAM-токена:
-
Получите и запишите IAM-токен в переменную:
export IAM_TOKEN=`yc iam create-token`
-
Выполните запрос на получение списка облаков:
curl \ --request GET \ --header "Authorization: Bearer ${IAM_TOKEN}" \ https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds
-
Результат:
{ "clouds": [ { "id": "b1gia87mbaom********", "createdAt": "2019-08-19T06:15:54Z", "name": "my-cloud-1", "organizationId": "my-organization" }, { "id": "b1gue7m154kt********", "createdAt": "2022-08-29T13:27:03Z", "name": "my-cloud-2", "organizationId": "my-organization" } ] }
-
Получите и запишите IAM-токен в переменную:
$IAM_TOKEN=yc iam create-token
-
Выполните запрос на получение списка облаков:
curl.exe ` --request GET ` --header "Authorization: Bearer $IAM_TOKEN" ` https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds
-
Результат:
{ "clouds": [ { "id": "b1gia87mbaom********", "createdAt": "2019-08-19T06:15:54Z", "name": "my-cloud-1", "organizationId": "my-organization" }, { "id": "b1gue7m154kt********", "createdAt": "2022-08-29T13:27:03Z", "name": "my-cloud-2", "organizationId": "my-organization" } ] }
Получить и обменять OAuth-токен на IAM-токен
Внимание
Если вы владелец облака и работаете через API со своего аккаунта, помните — владелец облака может выполнять любые операции с ресурсами в облаке.
Рекомендуем выполнять операции от имени сервисного аккаунта, которому вы можете назначить только необходимые для работы роли.
-
Войдите
в ваш аккаунт на Яндексе. -
Получите OAuth-токен в сервисе Яндекс.OAuth. Для этого перейдите по ссылке
, нажмите Разрешить и скопируйте полученный OAuth-токен. -
Обменяйте OAuth-токен на IAM-токен:
BashPowerShellcurl \ --request POST \ --data '{"yandexPassportOauthToken":"<OAuth-токен>"}' \ https://iam.api.cloud.yandex.net/iam/v1/tokens
$yandexPassportOauthToken = "<OAuth-токен>" $Body = @{ yandexPassportOauthToken = "$yandexPassportOauthToken" } | ConvertTo-Json -Compress Invoke-RestMethod -Method 'POST' -Uri 'https://iam.api.cloud.yandex.net/iam/v1/tokens' -Body $Body -ContentType 'Application/json' | Select-Object -ExpandProperty iamToken
Полученный IAM-токен указывайте при обращении к ресурсам Yandex Cloud через API. Передайте IAM-токен в заголовке Authorization
в следующем формате:
Authorization: Bearer <IAM-токен>