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: セクションで、シークレット プロパティへのバインドによって置換された入力エントリを削除します。