Intégrer la validation IaC à Jenkins

Vous pouvez utiliser le plug-in de sécurité Google Analyze Code pour Jenkins pour valider l'Infrastructure as 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 IaC, consultez Vérifiez que votre IaC respecte les règles de votre organisation Google Cloud.

La validation IaC ne fonctionne qu'avec le style libre Jenkins projets.

Avant de commencer

Effectuez les tâches suivantes pour commencer à valider l'IaC avec Jenkins.

Activer le niveau Premium ou Enterprise de Security Command Center

Vérifiez que la propriété Niveau Premium ou Enterprise de Security Command Center est activée 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 service 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 IAM au niveau de l'organisation ou activations.

Définir vos règles

Définissez votre Règles d'administration et Détecteurs Security Health Analytics. Pour définir ces stratégies à l'aide d'une stratégie de sécurité, effectuez les tâches dans Créez et déployez une stratégie.

Installer et configurer le plug-in

  1. Dans la console Jenkins, cliquez sur Manage Jenkins > Gérer les plug-ins.
  2. Dans l'onglet 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 (Sécurité du code Google Analyze), 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 Identifiant 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 votre fichier JSON de 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, accédez à la section Configuration.

  4. Cliquez sur Source Code Management (Gestion du code source).

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

  6. Cliquez sur Build steps (É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 de l'instance au format JSON. Exemple :mytfplan.json

Ajouter le plug-in à votre projet Jenkins

  1. Dans la console Jenkins, accédez à la section Configuration.
  2. Dans Build steps (Étapes de compilation), cliquez sur Add build step (Ajouter une étape de compilation) > Scanner le code pendant 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. Le critère d'échec est basé sur le nombre de problèmes de gravité critique, élevée, moyenne et faible que l'IaC ou d'analyse de validation. 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.

    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 voulez que la compilation échoue Si vous avez atteint le nombre maximal de problèmes pour n'importe quel niveau de gravité, sélectionnez OU. Par exemple, si vous souhaitez que la compilation échoue lorsqu'elle rencontre un problème critique problème ou un problème de gravité élevée, définissez la valeur globale sur OR.

    3. Indiquez le nombre de problèmes pour les différents niveaux de gravité souhaités à autoriser avant l'échec de la compilation.

    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 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 :

    • Signalement d'un cas de non-respect du règlement (GoogleAnalyzeCodeSecurity_ViolationSummary.html) si le plug-in a été exécuté

    Il regroupe les infractions par gravité. La section sur le non-respect décrit la règle non respectée et l'ID d'élément du plan Terraform qui a enfreint les règles. la règle.

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

Étape suivante