Создание авторизованных ключей
Чтобы создать авторизованные ключи:
- В консоли управления выберите каталог, которому принадлежит сервисный аккаунт.
- Выберите вкладку Сервисные аккаунты.
- Выберите сервисный аккаунт и нажмите на строку с его именем.
- Нажмите кнопку Создать новый ключ на верхней панели.
- Выберите пункт Создать авторизованный ключ.
- Выберите алгоритм шифрования.
- Задайте описание ключа, чтобы потом было проще найти его в консоли управления.
- Сохраните открытый и закрытый ключи: закрытый ключ не сохраняется в Yandex Cloud, открытый ключ нельзя будет посмотреть в консоли управления.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Создайте авторизованные ключи для сервисного аккаунта my-robot
:
yc iam key create --service-account-name my-robot -o my-robot-key.json
В случае успеха в файл my-robot-key.json
будет записан закрытый ключ (privateKey
) и идентификатор открытого ключа (id
).
Пример файла с ключом:
{
"id": "lfkoe35hsk58aks301nl",
"service_account_id": "ajepg0mjt06siua65usm",
"created_at": "2019-03-20T10:04:56Z",
"key_algorithm": "RSA_2048",
"public_key": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----\n",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
}
Чтобы создать ключ доступа, воспользуйтесь методом create для ресурса Key.
Пример запроса с помощью cURL:
curl -X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <iam-token>" \
-d '{"serviceAccountId": "<service-account-id>"}' \
https://iam.api.cloud.yandex.net/iam/v1/keys
Где:
<iam-token>
— IAM-токен пользователя, у которого есть права на создание ключей для указанного сервисного аккаунта.<service-account-id>
—ID
сервисного аккаунта, для которого создаются ключи.
В случае успеха в ответе сервера будет указан закрытый ключ (privateKey
) и идентификатор открытого ключа (id
). Сохраните эти данные. Получить значение ключа снова будет невозможно.
Пример ответа сервера:
{
"key": {
"createdAt": "2018-10-30T15:55:00+00:00",
"description": "",
"id": "lfkoe35hsk58aks301nl",
"keyAlgorithm": "RSA_2048",
"publicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----\n",
"serviceAccountId": "ajepg0mjt06siua65usm"
},
"privateKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
}
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
service_account_id
— идентификатор сервисного аккаунта. Обязательный параметр.description
— описание ключа. Необязательный параметр.key_algorithm
— алгоритм генерации ключа. Необязательный параметр. По умолчанию используется алгоритмRSA_2048
. Допустимые значения параметра см. в документации API.pgp_key
— дополнительный PGP-ключ для шифрования закрытого ключа. Необязательный параметр. Указывается публичная часть ключа в кодировке base64, либо в видеkeybase:keybaseusername
.
resource "yandex_iam_service_account_key" "sa-auth-key" { service_account_id = "<идентификатор сервисного аккаунта>" description = "<описание ключа>" key_algorithm = "<алгоритм генерации ключа>" pgp_key = "<pgp-ключ>" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления, а также с помощью команды CLI:
yc iam key list --service-account-id <идентификатор сервисного аккаунта>
-