Spec-Zone.ru › OpenTofu 1.11

Тип бэкенда: COS

Хранит состояние в виде объекта с настраиваемым префиксом в указанном бакете Tencent Cloud Object Storage (COS).

Этот бэкенд поддерживает блокировку состояния. Для хранения состояния в бакете COS необходимы следующие разрешения:

  • CreateTag, DeleteTag и DescribeTags для ключа тега tencentcloud-terraform-lock
  • Put, Get и Delete для файлов с указанным префиксом бакета
Предупреждение

Настоятельно рекомендуем включить версионирование объектов в бакете COS, чтобы обеспечить возможность восстановления состояния в случае случайного удаления или ошибки пользователя.

Пример конфигурации​

Блок кода
terraform {
  backend "cos" {
    region = "ap-guangzhou"
    bucket = "bucket-for-tofu-state-1258798060"
    prefix = "tofu/state"
  }
}

Предполагается, что мы создали бакет COS с именем bucket-for-tofu-state-1258798060. Состояние OpenTofu будет записано в файл tofu/state/terraform.tfstate.

Настройка источника данных​

Чтобы использовать удаленное состояние COS в другой конфигурации, воспользуйтесь источником данных terraform_remote_state.

Блок кода
data "terraform_remote_state" "foo" {
  backend = "cos"

  config = {
    region = "ap-guangzhou"
    bucket = "bucket-for-tofu-state-1258798060"
    prefix = "tofu/state"
  }
}

Переменные конфигурации​

Предупреждение

Рекомендуем использовать переменные окружения для передачи учетных данных и другой конфиденциальной информации. Если вы используете -backend-config или указываете эти значения непосредственно в конфигурации, OpenTofu включит их в подкаталог .terraform, а также в файлы плана. Подробности см. в разделе Учетные данные и конфиденциальная информация.

Поддерживаются следующие параметры конфигурации и переменные окружения:

  • secret_id — (необязательно) Идентификатор секрета Tencent Cloud. Поддерживаются переменные окружения TENCENTCLOUD_SECRET_ID.
  • secret_key — (необязательно) Ключ секрета Tencent Cloud. Поддерживаются переменные окружения TENCENTCLOUD_SECRET_KEY.
  • security_token — (необязательно) Токен безопасности TencentCloud для временных учетных данных доступа. Поддерживаются переменные окружения TENCENTCLOUD_SECURITY_TOKEN.
  • region — (необязательно) Регион бакета COS. Поддерживаются переменные окружения TENCENTCLOUD_REGION.
  • bucket — (обязательно) Имя бакета COS. Его необходимо создать вручную.
  • prefix — (необязательно) Каталог для сохранения файла состояния в бакете. По умолчанию — "env:".
  • key — (необязательно) Путь для сохранения файла состояния в бакете. По умолчанию — terraform.tfstate.
  • encrypt — (необязательно) Включает ли параметр шифрование файла состояния на стороне сервера. Если задано значение true, COS будет шифровать файл состояния алгоритмом 'AES256'.
  • acl — (необязательно) ACL объекта, применяемый к файлу состояния; поддерживаются значения private и public-read. По умолчанию — private.
  • accelerate — (необязательно) Включает ли параметр глобальное ускорение. По умолчанию — false.

Принятие роли​

Если указана роль для принятия, OpenTofu попытается принять ее, используя предоставленные учетные данные. Чтобы указать роль для принятия, добавьте блок assume_role в блок бэкенда cos.

  • assume_role — (необязательно) Блок assume_role. Если он указан, OpenTofu попытается принять эту роль, используя предоставленные учетные данные.

Описание блока assume_role:

  • role_arn — (обязательно) ARN роли, которую необходимо принять. Значение можно получить из TENCENTCLOUD_ASSUME_ROLE_ARN.
  • session_name — (обязательно) Имя сеанса, используемое при вызове AssumeRole. Значение можно получить из TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME.
  • session_duration — (обязательно) Длительность сеанса при вызове AssumeRole. Значение должно находиться в диапазоне от 0 до 43200 секунд; значение по умолчанию — 7200 секунд. Значение можно получить из TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION.
  • policy — (необязательно) Более ограничительная политика для вызова AssumeRole. Она не должна содержать элементы principal. Примечание: дополнительные сведения о синтаксисе см. в разделе Синтаксис и логика политик.

Пример использования:

Блок кода
terraform {
  backend "cos" {
    region = "ap-guangzhou"
    bucket = "bucket-for-tofu-state-{appid}"
    prefix = "tofu/state"
    assume_role {
      role_arn = "qcs::cam::uin/xxx:roleName/yyy"
      session_name = "my-session-name"
      session_duration = 3600
    }
  }
}

Кроме того, эти параметры конфигурации assume_role можно указать с помощью переменных окружения.

Пример использования:

Блок кода
$ export TENCENTCLOUD_SECRET_ID="my-secret-id"
$ export TENCENTCLOUD_SECRET_KEY="my-secret-key"
$ export TENCENTCLOUD_REGION="ap-guangzhou"
$ export TENCENTCLOUD_ASSUME_ROLE_ARN="qcs::cam::uin/xxx:roleName/yyy"
$ export TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME="my-session-name"
$ export TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION=3600
$ tofu plan

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/settings/backends/cos/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API