Cloud Assembly 클라우드 템플릿 설계에 추가하는 Terraform 구성에 비밀, 암호화된 값을 적용할 수 있습니다.

  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 변수는 이미 암호화되어 있으므로 마법사가 적용하는 암호화가 필요하지 않습니다.

    필요한 경우 Cloud Assembly에서 Terraform 구성에 대한 설계에서 자세한 내용을 참조하십시오.

    예제 클라우드 템플릿은 다음 코드와 유사합니다.

    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. 코드 편집기에서 비밀 값에 대해 아래와 같이 inputsecret으로 수동으로 변경합니다.
    terraform:
      type: Cloud.Terraform.Configuration
      properties:
        variables:
          datadog_api_key: '${secret.datadog_api_key}'
          datadog_app_key: '${secret.datadog_app_key}'
  5. 코드의 inputs: 섹션에서 secret 속성에 대한 바인딩으로 대체된 input 항목을 제거합니다.