Intégrer la validation IaC à Jenkins

Vous pouvez utiliser le plug-in Google Analyze Code Security for Jenkins pour valider l'infrastructure en tant que code (IaC) qui fait partie de votre projet Jenkins. La validation de l'IaC vous permet de déterminer si vos définitions de ressources Terraform enfreignent les règles d'administration existantes et les détecteurs Security Health Analytics appliqués à vos ressources Google Cloud.

Pour en savoir plus sur la validation de l'IaC, consultez la section Valider votre IaC par rapport aux règles de votre organisation Google Cloud.

La validation IaC ne fonctionne qu'avec les projets freestyle Jenkins.

Avant de commencer

Effectuez ces tâches pour commencer à utiliser la validation de l'intégration continue avec Jenkins.

Activer le niveau Premium ou Enterprise de Security Command Center

Vérifiez que le niveau Premium ou Enterprise de Security Command Center est activé au niveau de l'organisation.

L'activation de Security Command Center active les API securityposture.googleapis.com et securitycentermanagement.googleapis.com.

Créer un compte de service

Créez un compte de service que vous pouvez utiliser pour le plug-in Google Analyze Code Security pour Jenkins.

  1. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Security Posture Shift-Left Validator role to the service account.

      To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  2. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

Pour en savoir plus sur les autorisations de validation IaC, consultez la section IAM pour les activations au niveau de l'organisation.

Définir vos règles

Définissez vos règles d'administration et vos détecteurs Security Health Analytics. Pour définir ces règles à l'aide d'une posture de sécurité, effectuez les tâches décrites dans la section Créer et déployer une posture.

Installer et configurer le plug-in

  1. Dans la console Jenkins, cliquez sur Manage Jenkins (Gérer Jenkins) > Manage Plugins (Gérer les plug-ins).
  2. Dans l'onglet Available (Disponible), recherchez google-analyze-code-security.
  3. Suivez la procédure d'installation.
  4. Cliquez sur Manage Jenkins (Gérer Jenkins) > Configure System (Configurer le système).
  5. Dans la section Google Analyze Code Security (Analyse de la sécurité du code Google), cliquez sur Add credential (Ajouter un identifiant de connexion).
  6. Dans ID de l'organisation, saisissez l'ID de l'organisation Google Cloud qui inclut les ressources Terraform que vous souhaitez créer ou modifier.
  7. Dans Security Command Center Credential (Identifiants Security Command Center), ajoutez la clé du compte de service.
  8. Testez la connexion pour vérifier les identifiants du compte de service.
  9. Cliquez sur Enregistrer.

Créer le fichier JSON de votre plan Terraform

  1. Créez votre code Terraform. Pour obtenir des instructions, consultez la section Créer votre code Terraform.

  2. Installez le plug-in Terraform pour Jenkins.

  3. Dans la console Jenkins, dans votre projet freestyle Jenkins, accédez à la page Configuration.

  4. Cliquez sur Gestion du code source.

  5. Dans Repository URL (URL du dépôt), saisissez l'URL du code Terraform que vous avez créé.

  6. Cliquez sur Étapes de compilation.

  7. Ajoutez les étapes suivantes:

    1. Initialisez Terraform :

      terraform init
      
    2. Créez un fichier de plan Terraform.

      terraform plan -out=TF_PLAN_FILE
      

      Remplacez TF_PLAN_FILE par le nom du fichier de plan Terraform. Exemple :myplan.tfplan

    3. Convertissez votre fichier de plan au format JSON:

      terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
      

      Remplacez TF_PLAN_JSON_FILE par le nom du fichier de plan Terraform, au format JSON. Exemple :mytfplan.json

Ajouter le plug-in à votre projet Jenkins

  1. Dans la console Jenkins, dans votre projet freestyle Jenkins, accédez à la page Configuration.
  2. Dans Étapes de compilation, cliquez sur Ajouter une étape de compilation > Effectuer une analyse du code lors de la compilation.
  3. Saisissez l'ID de votre organisation.
  4. Indiquez le chemin d'accès au fichier de votre plan Terraform, au format JSON.
  5. Facultatif: définissez les critères d'échec de la compilation. Les critères de défaillance sont basés sur le nombre de problèmes de gravité critique, élevée, moyenne et faible rencontrés par l'analyse de validation de l'IaC. Vous pouvez spécifier le nombre de problèmes de chaque niveau de gravité autorisé et la manière dont ils sont agrégés (ET ou OU).

    1. Cliquez sur Échec en cas de non-respect des règles concernant les éléments.

    2. Si vous ne souhaitez que la compilation échoue si le nombre de problèmes de tous les niveaux de gravité est atteint, sélectionnez ET. Si vous souhaitez que la compilation échoue si le nombre de problèmes de n'importe quel niveau de gravité est atteint, sélectionnez OU. Par exemple, si vous souhaitez que la compilation échoue si elle rencontre un problème critique ou un problème de gravité élevée, définissez la valeur globale sur OU.

    3. Indiquez le nombre de problèmes de différents niveaux de gravité que vous souhaitez autoriser avant que le build ne soit annulé.

    Si vous ne souhaitez pas spécifier de critères de défaillance, sélectionnez Ignorer les cas de non-respect des composants.

  6. Cliquez sur Enregistrer.

Vous pouvez maintenant exécuter le build pour valider votre fichier de plan Terraform.

Afficher le rapport sur les cas de non-respect de l'IaC

  1. Dans la console Jenkins, cliquez sur le workflow le plus récent pour votre compilation.

  2. Cliquez sur État. Les fichiers HTML suivants sont disponibles en tant qu'artefacts de compilation:

    • Si le plug-in a été exécuté, le rapport d'infraction (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

    Le rapport regroupe les cas de non-respect par niveau de gravité. La section "Non-respect" décrit la règle non respectée et l'ID de l'élément du plan Terraform qui ne respecte pas la règle.

    • Si la compilation a échoué, un rapport récapitulatif des erreurs
  3. Résolvez les cas de non-respect dans votre code Terraform avant de l'appliquer.

Étape suivante