Создание API-ключа
Это инструкция по созданию API-ключа для сервисного аккаунта. API-ключ — секретный ключ, используемый для упрощенной авторизации в API Yandex Cloud.
Если у вас еще нет сервисного аккаунта, создайте его и назначьте ему роли.
Чтобы создать API-ключ:
- В консоли управления
перейдите в каталог, которому принадлежит сервисный аккаунт. - В верхней части экрана перейдите на вкладку Сервисные аккаунты.
- Выберите сервисный аккаунт и нажмите на строку с его именем. При необходимости создайте новый сервисный аккаунт.
- На панели сверху нажмите кнопку
- Задайте описание ключа, чтобы потом было проще найти его в консоли управления.
- Нажмите кнопку Создать.
- Сохраните идентификатор и секретный ключ.
Внимание
После закрытия диалога значение ключа будет недоступно.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды создания API-ключа:
yc iam api-key create --help
-
Выберите сервисный аккаунт, например
my-robot
:yc iam service-account list
Результат:
+----------------------+------------------+-------------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------------+ | aje6o61dvog2******** | my-robot | | | aje9sda1ufvq******** | account_name | account_description | +----------------------+------------------+-------------------------------+
-
Создайте API-ключ для сервисного аккаунта
my-robot
и запишите ответ в файл:yc iam api-key create --service-account-name my-robot > api-key.yaml
В ответе в свойстве
secret
будет содержаться API-ключ:api_key: id: ajeke74kbp5b******** service_account_id: ajepg0mjt06s******** created_at: "2019-04-09T08:41:27Z" secret: AQVN1HHJReSrfo9jU3aopsXrJyfq_UHs********
О том, как передать ключ в запросе, читайте в документации сервисов, которые поддерживают такой способ авторизации.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Добавьте в конфигурационный файл параметры ресурса:
service_account_id
— идентификатор сервисного аккаунта. Обязательный параметр.description
— описание ключа. Необязательный параметр.pgp_key
— дополнительный PGP-ключ для шифрования закрытого ключа. Необязательный параметр. Указывается публичная часть ключа в кодировке base64, либо в видеkeybase:keybaseusername
.
Пример структуры конфигурационного файла:
resource "yandex_iam_service_account_api_key" "sa-api-key" { service_account_id = "<идентификатор_сервисного_аккаунта>" description = "<описание_ключа>" pgp_key = "<pgp-ключ>" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
, а также с помощью команды CLI:yc iam key list --service-account-id <идентификатор_сервисного_аккаунта>
-
-
Создайте API-ключ с помощью метода REST API create для ресурса ApiKey:
export SERVICEACCOUNT_ID=<идентификатор_сервисного_аккаунта> 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-ключ можно создать с помощью вызова gRPC API ApiKeyService/Create.
Примеры
Добавить описание при создании
Чтобы было проще найти API-ключ, не зная его идентификатора, добавьте описание при создании:
yc iam api-key create --service-account-name my-robot \
--description "this API-key is for my-robot"
-
Добавьте в конфигурационный файл параметры ресурса:
service_account_id
— идентификатор сервисного аккаунта. Обязательный параметр.description
— описание ключа. Необязательный параметр.
Пример добавления описания при создании API-ключа сервисного аккаунта с помощью Terraformresource "yandex_iam_service_account_api_key" "sa-api-key" { service_account_id = "<идентификатор_сервисного_аккаунта>" description = "this API-key is for my-robot" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
export SERVICEACCOUNT_ID=<идентификатор_сервисного_аккаунта>
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