Ce document explique comment valider votre infrastructure en tant que code par rapport aux règles de l'organisation 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 de pouvoir les déployer à l'aide d'un workflow de développement. Fonctionnalité de validation IaC n'est compatible qu'avec les règles d'administration et les détecteurs Security Health Analytics.
La validation de votre IaC vous permet de déterminer si votre ressource (nouvelle ou modifiée) ne respectent pas les règles existantes qui s'appliquent à votre Ressources Google Cloud (par exemple, un cluster, un bucket ou une 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. Validation IaC permet à vos développeurs d'identifier et de résoudre les problèmes de sécurité dans l'IaC la configuration des éléments ou des ressources avant leur application 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 la Google Cloud CLI ou intégrer le processus de validation à votre workflow de développement Cloud Build, Jenkins ou GitHub Actions.
Avant de commencer
Effectuez ces tâches pour commencer à utiliser la validation de l'IaC.
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
.
Configurer les autorisations
-
Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Accéder à IAM - Sélectionnez l'organisation.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.
- Dans la liste Sélectionner 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 IAM au niveau de l'organisation ou activations.
Configurer la Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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.
Définir vos règles
Définissez votre Règles d'administration et 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.
Créer votre code Terraform
Utilisez vos workflows et outils de développement pour créer un fichier Terraform qui inclut les composants Google Cloud que vous souhaitez créer ou modifier.
Réfléchissez aux éléments suivants :
- Renseignez l'attribut parent (projet, dossier ou organisation). de chaque ressource ou élément de la configuration Terraform.
- Modifiez les éléments et les règles séparément. La L'API ne prend pas en charge la validation des fichiers de plan Terraform qui modifient à la fois éléments et règles en même temps.
- Utilisez uniquement des types d'éléments et des règles compatibles. Pour obtenir la liste des les types d'éléments et les règles, consultez Règles et types d'éléments compatibles pour la validation IaC
- Consultez les limites de validation IaC.
- N'incluez pas d'informations sensibles comme des mots de passe ou d'autres informations des informations identifiables dans votre fichier de plan Terraform. Si la fonctionnalité de validation rencontre des champs marqués comme sensibles dans les modifications de ressources, les champs sont supprimés.
Après avoir créé votre code Terraform, vous pouvez exécuter le rapport de validation IaC. Toi vous pouvez utiliser la gcloud CLI, Cloud Build, Jenkins, ou Actions GitHub.
Créer un rapport de validation de l'IaC à l'aide de la Google Cloud CLI
Pour créer un rapport de validation IaC, procédez comme suit:
Dans la gcloud CLI, exécutez
terraform init
.Vérifiez que vous exécutez la version 5.5 ou ultérieure du fournisseur Terraform. Si nécessaire, passez à 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 de l'instance Terraform fichier de plan.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.json
Remplacez les éléments suivants :
PARENT
: organisation Google Cloud pour créer le rapport de validation IaC. Le format est le suivant :organizations/ORGANIZATION_ID/locations/LOCATION
LOCATION
estglobal
.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 de l'IaC dans la section
organizations/3589215982/locations/global
organisation avec un forfait 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 pour créer la validation IAC . Pour obtenir des informations sur l'opération, consultez Affichez les informations concernant une opération de déploiement de stratégie.
Étape suivante
- Consultez l'exemple de tutoriel.
- Intégrez la validation IaC à votre Workflow Cloud Build.
- Intégrez la validation de l'IaC à vos actions GitHub ou à votre projet Jenkins.
- Gérez votre stratégie de sécurité.
-