Ce document explique comment valider votre Infrastructure as Code (IaC) par rapport aux règles d'administration et aux détecteurs Security Health Analytics que vous avez définis dans votre organisation Google Cloud. L'IaC vous permet de créer et de gérer vos ressources cloud à l'aide de langages tels que Terraform, afin que vous puissiez les déployer à l'aide d'un workflow de développement.
La validation de votre IaC vous permet de déterminer si vos définitions de ressources nouvelles ou modifiées enfreignent les stratégies existantes appliquées à vos ressources Google Cloud (par exemple, cluster, bucket ou instance). Vous pouvez définir ces règles à l'aide de postures de sécurité, mais la fonctionnalité de validation de l'IaC analyse votre code par rapport à toutes les règles de votre organisation Google Cloud. La validation de l'IaC aide vos développeurs à identifier et à résoudre les problèmes de sécurité dans la configuration IaC des éléments ou des ressources avant qu'ils ne soient appliqués à votre environnement Google Cloud.
La fonctionnalité de validation IaC est compatible avec les fichiers de plan Terraform. Vous pouvez valider votre plan Terraform à l'aide de Google Cloud CLI, ou intégrer le processus de validation à votre workflow de développement Jenkins ou GitHub.
Avant de commencer
Effectuez ces tâches pour commencer à valider l'IaC.
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.
Configurer les autorisations
-
Assurez-vous que vous disposez du ou des rôles suivants au niveau de l'organisation : Security Posture Shift-Left Validator
Vérifier les rôles
-
Dans la console Google Cloud, accédez à la page IAM.
Accéder à IAM - Sélectionnez l'organisation.
-
Dans la colonne Compte principal, recherchez la ligne qui contient votre adresse e-mail.
Si votre adresse e-mail ne figure pas dans cette colonne, cela signifie que vous n'avez aucun rôle.
- Dans la colonne Rôle de la ligne contenant votre adresse e-mail, vérifiez si la liste des rôles inclut les rôles requis.
Attribuer les rôles
-
Dans la console Google Cloud, accédez à la page IAM.
Accéder à IAM - Sélectionnez l'organisation.
- Cliquez sur Accorder l'accès.
- Dans le champ Nouveaux comptes principaux, saisissez votre adresse e-mail.
- Dans la liste Sélectinoner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
- Cliquez sur Enregistrer.
-
Pour en savoir plus sur les autorisations de validation IaC, consultez la section IAM pour les activations au niveau de l'organisation.
Configurer la Google Cloud CLI
Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :
-
Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.
En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
-
Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.
Pour configurer la gcloud CLI afin qu'elle utilise l'emprunt d'identité d'un compte de service pour s'authentifier auprès des Google APIs plutôt que d'utiliser vos identifiants utilisateur, exécutez la commande suivante :
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Pour en savoir plus, consultez Emprunt d'identité d'un compte de service.
Activer les API
Activer les API Security posture service and Security Command Center management.
Définir vos stratégies
Définissez vos règles d'administration et vos détecteurs d'analyse de l'état de la sécurité. Pour définir ces stratégies à l'aide d'une stratégie de sécurité, effectuez les tâches décrites dans la section Créer et déployer une stratégie.
Créer votre code Terraform
Utilisez vos workflows et outils de développement pour créer un fichier Terraform contenant les éléments Google Cloud que vous souhaitez créer ou modifier.
Réfléchissez aux éléments suivants :
- Renseignez l'attribut parent (le projet, le dossier ou l'organisation) de chaque ressource ou élément de la configuration Terraform.
- Modifier les éléments et les règles séparément. L'API n'est pas compatible avec la validation des fichiers de plan Terraform qui modifient simultanément des éléments et des règles.
- N'utilisez que des règles et des types d'assets compatibles. Pour obtenir la liste des types d'éléments et des règles compatibles, consultez la section Types d'éléments et règles compatibles pour la validation IaC.
- Examinez les limites de validation de l'IaC.
- N'incluez pas d'informations sensibles telles que des mots de passe ou d'autres informations permettant d'identifier personnellement l'utilisateur dans votre fichier de plan Terraform. Si la fonctionnalité de validation rencontre des champs marqués comme sensibles dans les modifications de ressources, ces champs sont supprimés.
Après avoir créé votre code Terraform, vous pouvez exécuter le rapport de validation de l'IaC. Vous pouvez utiliser Google Cloud CLI, Jenkins ou GitHub Actions.
Utiliser la Google Cloud CLI pour créer un rapport de validation IaC
Pour créer un rapport de validation de l'IaC, procédez comme suit:
Dans la gcloud CLI, exécutez
terraform init
.Vérifiez que vous exécutez la version 5.5 ou une version ultérieure du fournisseur Terraform. Si nécessaire, installez la dernière version du fournisseur Google:
terraform init -upgrade
Convertissez le fichier de plan Terraform au format JSON:
terraform plan -out TF_PLAN_FILENAME terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
Remplacez les éléments suivants :
TF_PLAN_FILENAME
: nom du fichier de plan Terraform.TF_PLAN_JSON_FILENAME
: nom du fichier qui contiendra le plan Terraform au format JSON.
Créez le rapport de validation de l'IaC:
gcloud scc iac-validation-reports create PARENT \ --tf-plan-file=TF_PLAN_JSON_FILENAME
Remplacez les éléments suivants :
PARENT
: organisation Google Cloud dans laquelle créer le rapport de validation de l'IaC. Le format estorganizations/ORGANIZATION_ID/locations/LOCATION
.LOCATION
:global
.TF_PLAN_JSON_FILENAME
: chemin d'accès au fichier JSON contenant le plan IaC que vous souhaitez valider.
Par exemple, pour créer un rapport de validation IaC sous l'organisation
organizations/3589215982/locations/global
avec un plan IaC inclus dansplanFile.json
, exécutez la commande suivante:gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
Cette commande renvoie les détails de l'opération permettant de créer le rapport de validation IAC. Pour obtenir des informations sur l'opération, consultez la section Afficher les informations sur une opération de déploiement de stratégie.
Étapes suivantes
- Consultez l'exemple de tutoriel.
- Intégrez la validation IaC à vos actions GitHub ou à votre projet Jenkins.
- Gérer votre stratégie de sécurité