Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Identity and Access Management
  • Начало работы
    • Как управлять доступом к ресурсам
    • Как работать с сервисными аккаунтами
  • Пошаговые инструкции
    • Все инструкции
    • Пользователи
      • Добавление пользователя
      • Получение идентификатора или почты пользователя
      • Удаление пользователя
    • Сервисные аккаунты
      • Создание сервисного аккаунта
      • Изменение сервисного аккаунта
      • Назначение роли сервисному аккаунту
      • Настройка прав доступа к сервисному аккаунту
      • Создание статических ключей доступа
      • Получение идентификатора сервисного аккаунта
      • Удаление сервисного аккаунта
    • Роли
      • Назначение роли
      • Просмотр назначенных ролей
      • Отзыв роли
    • IAM-токены
      • Получение IAM-токена для аккаунта на Яндексе
      • Получение IAM-токена для сервисного аккаунта
      • Получение IAM-токена для федеративного аккаунта
    • Ключи
      • Создание API-ключа
      • Удаление API-ключа
      • Создание авторизованного ключа
  • Концепции
    • Обзор
    • Как устроено управление доступом
      • Обзор
      • Роли
      • Системные группы
      • Ресурсы, на которые можно назначать роли
    • Авторизация
      • Обзор
      • IAM-токен
      • OAuth-токен
      • API-ключ
      • Авторизованные ключи
      • AWS-совместимые ключи доступа
    • Сервисные аккаунты
    • Федерации удостоверений
    • Квоты и лимиты
  • Безопасное использование Yandex Cloud
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ApiKeyService
      • IamTokenService
      • KeyService
      • RoleService
      • ServiceAccountService
      • UserAccountService
      • YandexPassportUserAccountService
      • AccessKeyService
      • CertificateService
      • FederationService
      • OperationService
    • REST (англ.)
      • Overview
      • ApiKey
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • update
      • IamToken
        • Overview
        • create
        • createForServiceAccount
      • Key
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • update
      • Role
        • Overview
        • get
        • list
      • ServiceAccount
        • Overview
        • create
        • delete
        • get
        • list
        • listAccessBindings
        • listOperations
        • setAccessBindings
        • update
        • updateAccessBindings
      • UserAccount
        • Overview
        • get
      • YandexPassportUserAccount
        • Overview
        • getByLogin
      • Operation
        • Overview
        • get
      • AccessKey
        • Overview
        • list
        • get
        • delete
        • update
        • listOperations
        • create
      • Federation
        • Overview
        • list
        • get
        • listUserAccounts
        • delete
        • addUserAccounts
        • update
        • listOperations
        • create
      • Certificate
        • Overview
        • list
        • get
        • delete
        • update
        • listOperations
        • create
  • Вопросы и ответы
    • Общие вопросы
    • Вход в систему и доступ к ресурсам
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Ключи
  3. Создание авторизованного ключа

Создание авторизованных ключей

Статья создана
Yandex Cloud

    Чтобы создать авторизованные ключи:

    Консоль управления
    CLI
    API
    Terraform
    1. В консоли управления выберите каталог, которому принадлежит сервисный аккаунт.
    2. Выберите вкладку Сервисные аккаунты.
    3. Выберите сервисный аккаунт и нажмите на строку с его именем.
    4. Нажмите кнопку Создать новый ключ на верхней панели.
    5. Выберите пункт Создать авторизованный ключ.
    6. Выберите алгоритм шифрования.
    7. Задайте описание ключа, чтобы потом было проще найти его в консоли управления.
    8. Сохраните открытый и закрытый ключи: закрытый ключ не сохраняется в 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.

    1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

      • 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, см. в документации провайдера.

    2. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

      2. Выполните проверку с помощью команды:

        terraform plan
        

      Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

    3. Разверните облачные ресурсы.

      1. Если в конфигурации нет ошибок, выполните команду:

        terraform apply
        
      2. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

      После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления, а также с помощью команды CLI:

      yc iam key list --service-account-id <идентификатор сервисного аккаунта>
      

    Что дальше

    • Получите IAM-токен для сервисного аккаунта

    Была ли статья полезна?

    Language / Region
    © 2022 ООО «Яндекс.Облако»