可以将经过加密的密钥值应用于添加到 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. 在代码编辑器中,对于密钥值,手动将 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: 部分中,移除由密钥属性绑定替换的输入条目。