Vous pouvez appliquer des valeurs secrètes et chiffrées aux configurations Terraform que vous ajoutez aux conceptions de modèle de cloud de Cloud Assembly.

  1. Dans votre référentiel git, ajoutez un fichier source de configuration Terraform qui fait référence aux propriétés secrètes sous forme de variables.

    Dans cet exemple de source de configuration Terraform, les clés d'API et d'application sont les variables secrètes.

    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. Dans Cloud Assembly, accédez à Infrastructure > Administration > Secrets, et entrez les valeurs des propriété secrètes.

    Ajoutez des noms secrets et des valeurs correspondantes. Pour les noms, il est plus facile d'entrer simplement le même nom que celui de la variable de votre source Terraform.

    Si nécessaire, consultez Propriétés secrètes Cloud Assembly pour plus de détails.

    Liste de secrets
  3. Dans Cloud Assembly, importez la configuration Terraform à utiliser dans un modèle de cloud.

    Accédez à Conception > Modèles de cloud et cliquez sur Nouveau à partir de > Terraform.

    Note : Même si les variables s'affichent pour sélection sur la dernière page de l'Assistant, vous n'avez pas besoin de définir les variables secrètes comme sensibles. Les variables secrètes de Cloud Assembly seront déjà chiffrées et n'ont pas besoin du chiffrement appliqué par l'assistant.

    Si nécessaire, consultez Conception pour les configurations Terraform dans Cloud Assembly pour plus de détails.

    L'exemple de modèle de cloud doit ressembler au code suivant :

    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. Dans l'éditeur de code, pour les valeurs secrètes, définissez manuellement input sur secret comme indiqué.
    terraform:
      type: Cloud.Terraform.Configuration
      properties:
        variables:
          datadog_api_key: '${secret.datadog_api_key}'
          datadog_app_key: '${secret.datadog_app_key}'
  5. Dans la section inputs: du code, supprimez les entrées qui ont été remplacées par les liaisons en propriétés secrètes.