Vous pouvez utiliser le plug-in Google Analyze Code Security pour Jenkins afin de valider l'infrastructure en tant que code (IaC) qui fait partie de votre projet Jenkins. La validation IaC vous permet de déterminer si vos définitions de ressources Terraform enfreignent les règles d'administration et les détecteurs Security Health Analytics existants appliqués à vos ressources Google Cloud .
Pour en savoir plus sur la validation IaC, consultez Valider votre IaC par rapport aux règles de votre organisation. Google Cloud
La validation IaC ne fonctionne qu'avec les projets Jenkins freestyle.
Avant de commencer
Effectuez ces tâches pour commencer à valider l'IaC 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 permet d'utiliser les API securityposture.googleapis.com
et securitycentermanagement.googleapis.com
.
Créer un compte de service
Créez un compte de service que vous pourrez utiliser pour le plug-in Google Analyze Code Security pour Jenkins.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
Pour en savoir plus sur les autorisations de validation IaC, consultez 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 stratégie de sécurité, effectuez les tâches décrites dans Créer et déployer une stratégie.
Installer et configurer le plug-in
- Dans la console Jenkins, cliquez sur Manage Jenkins > Manage Plugins (Gérer Jenkins > Gérer les plug-ins).
- Dans l'onglet Disponible, recherchez google-analyze-code-security.
- Suivez la procédure d'installation.
- Cliquez sur Manage Jenkins > Configure System (Gérer Jenkins > Configurer le système).
- Dans la section Google Analyze Code Security (Google Analyze Code Security), cliquez sur Add credential (Ajouter un identifiant).
- Dans ID de l'organisation, saisissez l'ID de l'organisation Google Cloudqui inclut les ressources Terraform que vous souhaitez créer ou modifier.
- Dans Identifiant Security Command Center, ajoutez la clé du compte de service.
- Testez la connexion pour vérifier les identifiants du compte de service.
- Cliquez sur Enregistrer.
Créer votre fichier JSON de plan Terraform
Créez votre code Terraform. Pour obtenir des instructions, consultez Créer votre code Terraform.
Installez le plug-in Terraform pour Jenkins.
Dans la console Jenkins, dans votre projet Jenkins freestyle, accédez à la page Configuration.
Cliquez sur Gestion du code source.
Dans URL du dépôt, saisissez l'URL du code Terraform que vous avez créé.
Cliquez sur Étapes de compilation.
Ajoutez les étapes suivantes :
Initialisez Terraform :
terraform init
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
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
- Dans la console Jenkins, dans votre projet Jenkins freestyle, accédez à la page Configuration.
- Dans Build Steps (Étapes de compilation), cliquez sur Add build step (Ajouter une étape de compilation) > Perform Code Scan during Build (Effectuer une analyse du code pendant la compilation).
- Saisissez l'ID de votre organisation.
- Indiquez le chemin d'accès à votre fichier de plan Terraform, au format JSON.
Facultatif : Définissez les critères d'échec de la compilation. Les critères d'échec sont basés sur le nombre de problèmes critiques, de gravité élevée, moyenne et faible rencontrés par l'analyse de validation IaC. Vous pouvez spécifier le nombre de problèmes autorisés pour chaque niveau de gravité et la façon dont les problèmes sont agrégés (AND ou OR).
Cliquez sur Échec en raison d'un non-respect des règles concernant les composants.
Si vous souhaitez que la compilation échoue uniquement si le nombre de problèmes de tous les niveaux de gravité est atteint, sélectionnez AND. Si vous souhaitez que la compilation échoue si le nombre de problèmes d'un niveau de gravité quelconque est atteint, sélectionnez OR. 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 agrégée sur OR.
Indiquez le nombre de problèmes que vous souhaitez autoriser pour les différents niveaux de gravité avant l'échec de la compilation.
Si vous ne souhaitez pas spécifier de critère d'échec, sélectionnez Ignorer le non-respect des règles concernant les composants.
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 des règles IaC
Dans la console Jenkins, cliquez sur le workflow le plus récent pour votre compilation.
Cliquez sur État. Les fichiers HTML suivants sont disponibles en tant qu'artefacts de compilation :
- Si le plug-in s'est exécuté, le rapport sur les cas de non-respect (
GoogleAnalyzeCodeSecurity_ViolationSummary.html
)
Le rapport regroupe les cas de non-respect par niveau de gravité. La section "Non-respect" décrit la règle qui n'a pas été respectée et l'ID de l'élément du plan Terraform qui a enfreint la règle.
- Si la compilation a échoué, un rapport récapitulatif des erreurs
- Si le plug-in s'est exécuté, le rapport sur les cas de non-respect (
Résolvez les cas de non-respect des règles dans votre code Terraform avant de l'appliquer.
Étapes suivantes
- Consultez le plug-in Google Analyze Code Security.