Valider votre IaC vis-à-vis de vos règles d'administration Google Cloud

Ce document explique comment valider votre infrastructure as code (IaC) vis-à-vis de vos règles d'administration et des détecteurs Security Health Analytics que vous avez définis dans votre organisation Google Cloud . La méthodologie IaC vous permet de créer et de gérer vos ressources cloud avec des langages tels que Terraform. Vous pouvez ainsi déployer des 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 stratégies de sécurité, mais la fonctionnalité de validation IaC analyse le code vis-à-vis des règles effectives définies dans les stratégies 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 assets ou des ressources avant l'application à votre environnementGoogle 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 débuter la validation IaC.

Activer le niveau Security Command Center Premium ou Enterprise

Vérifiez que le niveau Security Command Center Premium ou Enterprise 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 tous les rôles supplémentaires.
    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 la 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 la section 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 assets Google Cloud que vous souhaitez créer ou modifier.

    Réfléchissez à ceci :

    • Renseignez l'attribut parent (projet, dossier ou organisation) de chaque ressource ou asset dans la configuration Terraform.
    • Modifiez les assets et les règles séparément. L'API ne permet pas de valider les fichiers de plan Terraform qui modifient à la fois les assets et les règles.
    • N'utilisez que les règles et types d'assets acceptés. Pour obtenir la liste des types d'assets et des règles compatibles, consultez Types d'assets 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 étant sensibles dans les modifications apportées aux ressources, ces champs sont retirés.

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

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

    Pour créer un rapport de validation IaC :

    1. Dans la gcloud CLI, exécutez terraform init.

      Vérifiez que vous exécutez la version 5.5 du fournisseur Terraform ou une version ultérieure. 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 vous allez créer le rapport de validation IaC. Format : organizations/ORGANIZATION_ID/locations/LOCATION. La valeur de LOCATION est 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 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 IAC. Pour obtenir des informations sur l'opération, consultez Afficher des informations sur une opération de déploiement de stratégie.

    Étapes suivantes