Skip to content

Аутентификация

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

Аутентификация с помощью привязки сервисного аккаунта

  1. Создайте сервисный аккаунт или выберите существующий. При создании назначьте сервисному аккаунту роль editor или выше.

  2. Создайте авторизованный ключ для сервисного аккаунта.

  3. Скачайте и сохраните файл с авторизованным ключом.

  4. Укажите путь к файлу с авторизованным ключом одним из способов:

    Через файл с настройками провайдера

    Добавьте в файл main.tf или в отдельный файл с настройками провайдера следующий блок:

    hcl
    provider "mws" {
      service_account_authorized_key_path = "<путь к файлу с авторизованным ключом>"      
      project                             = "<имя проекта>"             
      zone                                = "ru-central1-a"        
    }

    Здесь:

    • endpoint — адрес для вызовов API;
    • service_account_authorized_key_path — путь к файлу с авторизованным ключом;
    • zone — зона, в которой будут создаваться ресурсы;
    • project — имя проекта, в котором будут создаваться ресурсы.
    Через переменную окружения

    Linux, MacOS:

    bash
    export MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>

    Windows (PowerShell):

    bash
    $env:MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH = "<путь к файлу авторизованным ключом>"

    Windows (cmd):

    bash
    set "MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>"
    Через файл с переменными
    1. Перейдите в директорию с конфигурациями Terraform.

    2. Создайте файл с описанием переменных, например, variables.tf.

    3. Добавьте в файл блок кода:

      hcl
      variable "MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH" {
        description = "<краткое описание>"
        type        = string
        sensitive   = true
      }

      Здесь:

      • description — описание переменной, например, my service account-key-path;
      • type — тип данных переменной;
      • sensitive — информация о передаче чувствительных данных (паролей, токенов и т.п.). В примере содержится информация о файле с авторизованным ключом, поэтому этот параметр имеет значение true.
    4. Создайте файл со значениями переменных, например, vars.tfvars.

    5. Добавьте в файл следующую строку:

      MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>
    6. Укажите путь к файлу с переменными при выполнении команд Terraform, например:

      bash
        terraform apply -var-file="vars.tfvars"

Аутентификация с помощью токена

Важно

Срок действия токена составляет 5 минут. Используйте аутентификацию с помощью токена только в целях тестирования.

  1. Создайте сервисный аккаунт или выберите существующий. При создании назначьте сервисному аккаунту роль editor или выше.

  2. Сгенерируйте токен для сервисного аккаунта.

  3. Установите токен одним через переменную окружения: