Секретные зашифрованные значения можно применять в конфигурациях Terraform, которые добавляются в проекты облачных шаблонов Cloud Assembly.

  1. В репозитории Git добавьте исходный файл конфигурации Terraform, который ссылается на секретные свойства как на переменные.

    В этом примере источника конфигурации Terraform и ключи API-интерфейса и приложения являются секретными переменными.

    variable "datadog_api_key" {
      description = "Datadog API Key"
    }
     
    variable "datadog_app_key" {
      description = "Datadog App Key"
    }
    provider "datadog" {
      api_key = "${var.datadog_api_key}"
      app_key = "${var.datadog_app_key}"
    }
     
    # Create a new monitor
    resource "datadog_monitor" "default" {
      # ...
    }
     
    # Create a new timeboard
    resource "datadog_timeboard" "default" {
      # ...
    }
  2. В Cloud Assembly выберите Инфраструктура > Администрирование > Секретные элементы и введите значения секретных свойств.

    Добавьте для секретных элементов имена и соответствующие значения. Для имен проще всего ввести то же имя, что и имя переменной из источника Terraform.

    Дополнительные сведения можно найти в Секретные свойства Cloud Assembly.

    Список секретных элементов
  3. В Cloud Assembly импортируйте конфигурацию Terraform для использования в облачном шаблоне.

    Выберите Проектирование > Облачные шаблоны и щелкните Создать из > Terraform.

    Примечание: Несмотря на то что переменные отображаются для выбора на последней странице мастера, секретные переменные не нужно указывать как конфиденциальные. Секретные переменные Cloud Assembly уже будут зашифрованы, поэтому для них не требуется шифрование, выполняемое мастером.

    Дополнительные сведения можно найти в Проектирование конфигураций Terraform в Cloud Assembly.

    Пример облачного шаблона должен иметь приблизительно следующий вид:

    inputs:
      datadog_api_key:
        type: string
        description: Datadog API Key
      datadog_app_key:
        type: string
        description: Datadog App Key
    resources:
      terraform:
        type: Cloud.Terraform.Configuration
        properties:
          variables:
            datadog_api_key: '${input.datadog_api_key}'
            datadog_app_key: '${input.datadog_app_key}'
          providers: []
          terraformVersion: 0.12.29
          configurationSource:
            repositoryId: 0fbf8f5e-54e1-4da3-9508-2b701gf25f51
            commitId: ed12424b249aa50439kr1c268942a4616bd751b6
            sourceDirectory: datadog
  4. В редакторе кода для секретных значений вручную измените input на secret, как показано ниже.
    terraform:
      type: Cloud.Terraform.Configuration
      properties:
        variables:
          datadog_api_key: '${secret.datadog_api_key}'
          datadog_app_key: '${secret.datadog_app_key}'
  5. В разделе inputs: кода удалите входные записи, которые были заменены привязками на секретные свойства.