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 ne respectent pas les règles d'administration existantes des détecteurs Security Health Analytics qui sont appliqués à vos ressources Google Cloud.

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

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 les options du niveau Premium ou Enterprise de Security Command Center est activé au niveau au niveau de l'organisation.

L'activation de Security Command Center active les securityposture.googleapis.com et API 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 d'activations.

Définir vos règles

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

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 Code), cliquez sur Add credential (Ajouter un identifiant).
  6. Dans ID de l'organisation, saisissez l'ID de l'organisation pour l'environnement 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 page Créer votre fichier code.

  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 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 à votre fichier de 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é et la manière dont les problèmes sont regroupés (soit ET, OU).

    1. Cliquez sur Échec en cas de non-respect des règles.

    2. Si vous voulez que la compilation n'échoue que si le nombre de problèmes niveau de gravité 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ère d'échec, sélectionnez Ignorer l'élément. Infraction.

  6. Cliquez sur Enregistrer.

Vous pouvez maintenant exécuter la compilation 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 de votre build.

  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 violations 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 les cas de non-conformité dans votre code Terraform avant de l'appliquer.

Étape suivante