Перейти к содержимому

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

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

Совет

Terraform может автоматически выбирать способ аутентификации с помощью механизма Automatic Discovery of Credentials. Подробнее в практическом руководстве.

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

Заголовок раздела «Аутентификация с помощью привязки сервисного аккаунта»
  1. Создайте сервисный аккаунт или выберите существующий. При создании назначьте сервисному аккаунту роль editor или выше.

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

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

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

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

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

    Здесь:

    • 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. Добавьте токен в переменную окружения:

    • Linux, MacOS
    • Windows (PowerShell)
    • Windows (cmd)

    Выполните команду:

    bash
    export MWS_TOKEN=<токен>