Vérifier que votre IaC respecte les règles de votre organisation Google Cloud

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 de pouvoir déployer les ressources à l'aide d'un workflow de développement. La 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 vos définitions de ressources nouvelles ou modifiées enfreignent les règles existantes appliquées à vos ressourcesGoogle 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 IaC analyse le code et le compare aux règles effectives définies dans les postures déployées dans votre organisation Google Cloud . La validation IaC aide vos développeurs à identifier et à corriger les problèmes de sécurité dans la configuration IaC des composants ou des ressources avant qu'ils ne soient appliqués à votre environnementGoogle Cloud .

La fonctionnalité de validation IaC est compatible avec les fichiers de plan Terraform. Vous pouvez valider votre plan Terraform à l'aide du 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 à 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.

L'activation de Security Command Center permet d'utiliser les API securityposture.googleapis.com et securitycentermanagement.googleapis.com.

Configurer les autorisations

  1. Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. 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.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez l'organisation.
    3. Cliquez sur Accorder l'accès.
    4. 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.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.

    Pour en savoir plus sur les autorisations de validation IaC, consultez IAM pour les activations au niveau de l'organisation.

    Configurer Google Cloud CLI

    In the Google Cloud console, activate Cloud Shell.

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

    Créer votre code Terraform

    Utilisez vos workflows et outils de développement pour créer un fichier Terraform qui inclut les éléments 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 dans la configuration Terraform.
    • Modifiez les composants et les règles séparément. L'API ne permet pas de valider les fichiers de plan Terraform qui modifient à la fois les éléments et les règles.
    • N'utilisez que les types de composants et les règles acceptés. Pour obtenir la liste des types d'éléments et des règles compatibles, consultez Types d'éléments et règles compatibles pour la validation IaC.
    • Consultez les limites de la validation 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 apportées aux ressources, ces champs sont supprimés.

    Une fois votre code Terraform créé, vous pouvez exécuter le rapport de validation IaC. Vous pouvez utiliser gcloud CLI, Cloud Build, Jenkins ou GitHub Actions.

    Utiliser Google Cloud CLI pour créer un rapport de validation IaC

    Pour créer un rapport de validation IaC :

    1. Dans 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
      
    2. 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.
    3. Créez le rapport de validation 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 dans laquelle créer le rapport de validation IaC. Il a le format suivant : organizations/ORGANIZATION_ID/locations/LOCATION. LOCATION correspond à 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 dans l'organisation organizations/3589215982/locations/global avec un plan IaC inclus dans planFile.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 de création du rapport de validation de l'IAC. Pour obtenir des informations sur l'opération, consultez Afficher des informations sur une opération de déploiement de posture.

    Étapes suivantes