Validieren Sie IaC anhand der Richtlinien Ihrer Google Cloud-Organisation

In diesem Dokument wird beschrieben, wie Sie Ihre Infrastruktur als Code validieren können. (IaC) gegen die Organisationsrichtlinien und Detektoren von Security Health Analytics die Sie in Ihrer Google Cloud-Organisation definiert haben. Mit IaC können Sie Cloud-Ressourcen mit Sprachen wie Terraform verwalten, damit Sie Ressourcen mithilfe eines Entwicklungsworkflows bereitstellen Die IaC-Validierungsfunktion unterstützt nur Organisationsrichtlinien und Security Health Analytics-Detektoren.

Durch die Validierung Ihrer IaC können Sie feststellen, ob Ihre neue oder geänderte Ressource Definitionen verstoßen gegen die bestehenden Richtlinien, Google Cloud-Ressourcen (z. B. Cluster, Bucket oder Instanz) Sie können diese Richtlinien mithilfe von Sicherheitsstatus definieren. Die IaC-Validierungsfunktion prüft Ihren Code jedoch anhand aller Richtlinien in Ihrer Google Cloud-Organisation. Mit der IaC-Validierung können Entwickler Sicherheitsprobleme in der IaC-Konfiguration von Assets oder Ressourcen erkennen und beheben, bevor sie auf Ihre Google Cloud-Umgebung angewendet werden.

Das IaC-Validierungsfeature unterstützt Terraform-Plandateien. Sie können Ihre Erstellen Sie einen Terraform-Plan mithilfe der Google Cloud CLI. Alternativ können Sie die Validierung einbinden. in Ihren Cloud Build-, Jenkins- oder GitHub Actions-Entwickler zu optimieren.

Hinweis

Führen Sie diese Aufgaben aus, um mit der IaC-Validierung zu beginnen.

Security Command Center Premium- oder Enterprise-Stufe aktivieren

Prüfen Sie, ob die Premium- oder Enterprise-Stufe von Security Command Center auf Organisationsebene aktiviert ist.

Durch das Aktivieren von Security Command Center werden die securityposture.googleapis.com und securitycentermanagement.googleapis.com APIs

Berechtigungen einrichten

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

      Zu IAM
    2. Wählen Sie die Organisation aus.
    3. Klicken Sie auf Zugriff erlauben.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.

    5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
    7. Klicken Sie auf Speichern.

    Weitere Informationen zu Berechtigungen für die IaC-Validierung finden Sie unter IAM für Aktivierungen auf Organisationsebene.

    Google Cloud CLI einrichten

    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.

    Führen Sie den folgenden Befehl aus, um die gcloud CLI so einzurichten, dass die Authentifizierung bei Google APIs anstelle Ihrer Nutzeranmeldedaten erfolgt:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

    Weitere Informationen finden Sie unter Identitätswechsel für Dienstkonten.

    Richtlinien definieren

    Definieren Sie Ihre Organisationsrichtlinien und Detektoren von Security Health Analytics. Wenn Sie diese Richtlinien mithilfe einer Sicherheitskonfiguration definieren möchten, führen Sie die Aufgaben unter Sicherheitskonfiguration erstellen und bereitstellen aus.

    Terraform-Code erstellen

    Erstellen Sie mit Ihren Entwickler-Workflows und -Tools eine Terraform-Datei, die Folgendes enthält: die Google Cloud-Assets, die Sie erstellen oder ändern möchten.

    Berücksichtige Folgendes:

    • Geben Sie das übergeordnete Attribut (das Projekt, den Ordner oder die Organisation) jeder Ressource oder jedes Assets in der Terraform-Konfiguration an.
    • Ändern Sie Assets und Richtlinien separat. Die Die Validierung von Terraform-Plandateien, mit denen beides geändert wird, wird von der API nicht unterstützt und Richtlinien gleichzeitig zu verwalten.
    • Verwenden Sie nur unterstützte Asset-Typen und Richtlinien. Eine Liste der unterstützten Asset-Typen und ‑Richtlinien finden Sie unter Unterstützte Asset-Typen und ‑Richtlinien für die IaC-Validierung.
    • Prüfen Sie die Einschränkungen für die IaC-Validierung.
    • Geben Sie keine vertraulichen Daten wie Passwörter oder andere personenbezogene Daten an identifizierbare Informationen in Ihrer Terraform-Plandatei enthalten. Wenn die Validierungsfunktion Felder findet, die in den Ressourcenänderungen als vertraulich gekennzeichnet sind, werden die Felder entfernt.

    Nachdem Sie den Terraform-Code erstellt haben, können Sie den IaC-Validierungsbericht ausführen. Sie können die gcloud CLI, Cloud Build, Jenkins oder GitHub Actions verwenden.

    Mit der Google Cloud CLI einen IaC-Validierungsbericht erstellen

    So erstellen Sie einen IaC-Validierungsbericht:

    1. Führen Sie in der gcloud CLI terraform init aus.

      Prüfen Sie, ob Sie Version 5.5 oder höher des Terraform-Anbieters verwenden. Führen Sie bei Bedarf ein Upgrade auf die neueste Google-Anbieterversion aus:

      terraform init -upgrade
      
    2. Konvertieren Sie die Terraform-Plandatei in das JSON-Format:

      terraform plan -out TF_PLAN_FILENAME
      terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
      

      Ersetzen Sie Folgendes:

      • TF_PLAN_FILENAME: Der Name der Terraform-Plandatei.
      • TF_PLAN_JSON_FILENAME: Der Name der Datei, die den Terraform-Plan im JSON-Format enthält.
    3. So erstellen Sie den IaC-Validierungsbericht:

      gcloud scc iac-validation-reports create PARENT \
        --tf-plan-file=TF_PLAN_JSON_FILENAME.json
      

      Ersetzen Sie Folgendes:

      • PARENT: Die Google Cloud-Organisation in für die Erstellung des IaC-Validierungsberichts. Das Format ist organizations/ORGANIZATION_ID/locations/LOCATION. LOCATION ist global.
      • TF_PLAN_JSON_FILENAME: der Pfad zur JSON-Datei die den zu validierenden IaC-Plan enthält.

      Wenn Sie beispielsweise einen IaC-Validierungsbericht für die Organisation organizations/3589215982/locations/global mit einem IaC-Plan erstellen möchten, der in planFile.json enthalten ist, führen Sie den folgenden Befehl aus:

      gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
      

      Dieser Befehl gibt die Vorgangsdetails für das Erstellen des IAC-Validierungsberichts zurück. Informationen zum Vorgang finden Sie unter Informationen zu einem Statusbereitstellungsvorgang ansehen

    Nächste Schritte