Получение IAM-токена сервисного аккаунта с помощью функции

Если версия функции была создана с сервисным аккаунтом, вы можете получить для него IAM-токен:

Получить IAM-токен из контекста

Если вы создаете функцию в среде выполнения, поддерживаемой Cloud Functions, то вы можете получить IAM-токен из контекста обработчика, который является вторым параметром — context.

Чтобы получить IAM-токен, добавьте в код функции строку token: context.token и вызовите ее:

  1. Сохраните следующий код в файл с названием index.js:

    exports.handler = async function (event, context) {
        return {
            token: context.token,
            event: event
        };
    };
    
  2. Создайте версию функции, используя файл index.js.

  3. Выполните функцию.

    Ответ функции будет выглядеть следующим образом:

    {
      "token": {
        "access_token": "CggVAgAAABoBMRKABHGgpZ......",
        "expires_in": 42299,
        "token_type": "Bearer"
      },
      "event": {
        "payload": ""
      }
    }
    

    IAM-токен будет указан в ответе в поле access_token. Оставшееся время жизни IAM-токена указано в поле expires_in.

Получить IAM-токен с помощью API

Если вы работаете с Яндекс.Облаком изнутри ВМ, вы можете получить IAM-токен из метаданных виртуальной машины в формате Google Compute Engine, а также добавить эту логику в свою функцию. Подробнее об этом читайте в разделе Работа с Яндекс.Облаком изнутри ВМ.