Создание API-ключа
Это инструкция по созданию API-ключа для сервисного аккаунта. API-ключ — секретный ключ, используемый для упрощенной авторизации в API Yandex.Cloud.
Если у вас еще нет сервисного аккаунта, создайте его и назначьте ему роли.
Чтобы создать API-ключ:
-
Перейдите в каталог, которому принадлежит сервисный аккаунт.
-
Выберите вкладку Сервисные аккаунты.
-
Выберите сервисный аккаунт и нажмите на строку с его именем.
-
Нажмите кнопку Создать новый ключ на верхней панели.
-
Выберите пункт Создать API-ключ.
-
Задайте описание ключа, чтобы потом было проще найти его в консоли управления.
-
Сохраните идентификатор и секретный ключ.
После закрытия диалога значение ключа будет недоступно.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды создания API-ключа:
$ yc iam api-key create --help
-
Выберите сервисный аккаунт, например
my-robot
:$ yc iam service-account list +----------------------+------------------+-------------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------------+ | aje6o61dvog2h6g9a33s | my-robot | | | aje9sda1ufvqcmfksd3f | blabla | bla bla bla is my description | +----------------------+------------------+-------------------------------+
-
Создайте API-ключ для сервисного аккаунта
my-robot
и запишите ответ в файл:$ yc iam api-key create --service-account-name my-robot > api-key.yaml
В ответе в свойстве
secret
будет содержаться API-ключ:api_key: id: ajeke74kbp5bfq7m6ka2 service_account_id: ajepg0mjt06siuj65usm created_at: "2019-04-09T08:41:27Z" secret: AQVN1HHJReSrfo9jU3aopsXrJyfq_UHsssT5ICtm
О том, как передать ключ в запросе, читайте в документации сервисов, которые поддерживают такой способ авторизации.
-
Создайте API-ключ с помощью метода create для ресурса ApiKey:
$ export SERVICEACCOUNT_ID=aje6o61dvog2h6g9a33s $ export IAM_TOKEN=CggaATEVAgA... $ curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $IAM_TOKEN" \ -d "{ \"serviceAccountId\": \"$SERVICEACCOUNT_ID\" }" \ https://iam.api.cloud.yandex.net/iam/v1/apiKeys
Примеры
Добавить описание при создании
Чтобы было проще найти API-ключ не зная его идентификатора, добавьте описание при создании:
$ yc iam api-key create --service-account-name my-robot \
--description "this API-key is for my-robot"
$ export SERVICEACCOUNT_ID=aje6o61dvog2h6g9a33s
$ export IAM_TOKEN=CggaATEVAgA...
$ curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $IAM_TOKEN" \
-d "{
\"serviceAccountId\": \"$SERVICEACCOUNT_ID\",
\"description\": \"this API-key is for my-robot\"
}" \
https://iam.api.cloud.yandex.net/iam/v1/apiKeys