Аутентификация
Terraform выполняет все операции от имени сервисного аккаунта. Для аутентификации сервисного аккаунта используются два способа:
- с помощью привязки сервисного аккаунта (рекомендуемый способ);
- с помощью токена (используется только для тестовых операций с небольшим временем выполнения).
Аутентификация с помощью привязки сервисного аккаунта
Создайте сервисный аккаунт или выберите существующий. При создании назначьте сервисному аккаунту роль
editorили выше.Создайте авторизованный ключ для сервисного аккаунта.
Скачайте и сохраните файл с авторизованным ключом.
Укажите путь к файлу с авторизованным ключом одним из способов:
Через файл с настройками провайдера
Добавьте в файл
main.tfили в отдельный файл с настройками провайдера следующий блок:hclprovider "mws" { service_account_authorized_key_path = "<путь к файлу с авторизованным ключом>" project = "<имя проекта>" zone = "ru-central1-a" }Здесь:
endpoint— адрес для вызовов API;service_account_authorized_key_path— путь к файлу с авторизованным ключом;zone— зона, в которой будут создаваться ресурсы;project— имя проекта, в котором будут создаваться ресурсы.
Через переменную окружения
Linux, MacOS:
bashexport MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>Windows (PowerShell):
bash$env:MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH = "<путь к файлу авторизованным ключом>"Windows (cmd):
bashset "MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>"Через файл с переменными
Перейдите в директорию с конфигурациями Terraform.
Создайте файл с описанием переменных, например,
variables.tf.Добавьте в файл блок кода:
hclvariable "MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH" { description = "<краткое описание>" type = string sensitive = true }Здесь:
description— описание переменной, например,my service account-key-path;type— тип данных переменной;sensitive— информация о передаче чувствительных данных (паролей, токенов и т.п.). В примере содержится информация о файле с авторизованным ключом, поэтому этот параметр имеет значениеtrue.
Создайте файл со значениями переменных, например,
vars.tfvars.Добавьте в файл следующую строку:
MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH=<путь к файлу с авторизованным ключом>Укажите путь к файлу с переменными при выполнении команд Terraform, например:
bashterraform apply -var-file="vars.tfvars"
Аутентификация с помощью токена
Важно
Срок действия токена составляет 5 минут. Используйте аутентификацию с помощью токена только в целях тестирования.
Создайте сервисный аккаунт или выберите существующий. При создании назначьте сервисному аккаунту роль
editorили выше.Сгенерируйте токен для сервисного аккаунта.
Установите токен одним через переменную окружения: