IaC-Validierung in GitHub Actions einbinden

Mit der Aktion „Code Security analysieren “ können Sie die Infrastruktur als Code (Infrastructure as Code, IaC) validieren, die Teil Ihres GitHub Actions Workflows ist. Durch die Validierung von IaC können Sie feststellen, ob Ihre Terraform-Ressourcendefinitionen gegen die vorhandenen Organisationsrichtlinien und Security Health Analytics-Detektoren verstoßen, die auf Ihre Ressourcen angewendet werden. Google Cloud

Weitere Informationen zur IaC-Validierung finden Sie unter IaC anhand der Richtlinien Ihrer Google Cloud Organisation validieren.

Hinweis

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

Security Command Center Premium oder Enterprise aktivieren

Prüfen Sie, ob das Security Command Center Premium- oder Enterprise-Tier auf Organisationsebene aktiviert ist.

Durch die Aktivierung von Security Command Center werden die APIs securityposture.googleapis.com und securitycentermanagement.googleapis.com aktiviert.

Dienstkonto erstellen

Erstellen Sie ein Dienstkonto, das Sie für die Aktion „Code Security analysieren“ verwenden können.

    Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen.
  1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.

    Zur Seite „Dienstkonto erstellen“
  2. Wählen Sie Ihr Projekt aus.
  3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

    Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

  4. Klicken Sie auf Erstellen und fortfahren.
  5. Weisen Sie dem Dienstkonto die Rolle Security Posture Shift-Left Validator zu.

    Wenn Sie die Rolle zuweisen möchten, suchen Sie die Rolle auswählen-Liste und wählen Sie Security Posture Shift-Left Validator aus.

  6. Klicken Sie auf Weiter.
  7. Klicken Sie auf Fertig , um das Erstellen des Dienstkontos abzuschließen.

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

Authentifizierung einrichten

  1. Konfigurieren Sie die Workload Identity-Föderation mit Ihrem GitHub-Identitätsanbieter. Eine Anleitung finden Sie unter Workload Identity-Föderation.

  2. Rufen Sie die URL für Ihr Workload Identity-Föderations-ID-Token ab. Beispiel: https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID.

    Berücksichtige Folgendes:

    • PROJECT_NUMBER ist die Projektnummer des Google Cloud Projekts, in dem Sie die Workload Identity-Föderation eingerichtet haben.
    • POOL_ID ist der Poolname.
    • PROVIDER_ID ist der Name Ihres Identitätsanbieters.
  3. Fügen Sie Ihrem Workflow die Aktion „Bei Google Cloud authentifizieren“ hinzu, um die Aktion zur IaC-Validierung zu authentifizieren.

Richtlinien definieren

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

JSON-Datei für den Terraform-Plan erstellen

  1. Erstellen Sie Ihren Terraform-Code. Eine Anleitung finden Sie unter Terraform-Code erstellen.

  2. Initialisieren Sie Terraform in Ihren GitHub Actions. Wenn Sie beispielsweise die Aktion HashiCorp – Terraform einrichten verwenden, führen Sie den folgenden Befehl aus:

    - name: Terraform Init
      id: init
      run: terraform init
    
  3. Erstellen Sie eine Terraform-Plandatei:

    - name: Create Terraform Plan
      id: plan
      run: terraform plan -out=TF_PLAN_FILE
    

    Ersetzen Sie TF_PLAN_FILE durch den Namen der Terraform-Plandatei. Beispiel: myplan.tfplan.

  4. Konvertieren Sie die Plandatei in das JSON-Format:

    - name: Convert Terraform Plan to JSON
      id: convert
      run: terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
    

    Ersetzen Sie TF_PLAN_JSON_FILE durch den Namen der Terraform-Plandatei im JSON-Format. Beispiel: mytfplan.json.

Aktion zum GitHub Actions-Workflow hinzufügen

  1. Wechseln Sie im GitHub-Repository zu Ihrem Workflow.
  2. Öffnen Sie den Workflow-Editor.
  3. Suchen Sie in der Seitenleiste des GitHub Marketplace nach Code Security analysieren.
  4. Kopieren Sie im Abschnitt Installation die Syntax.
  5. Fügen Sie die Syntax als neuen Schritt in Ihren Workflow ein.
  6. Ersetzen Sie die folgenden Werte:

    • workload_identity_provider durch den Link zur URL für Ihr Workload Identity-Föderations-ID-Token.
    • service_account durch die E-Mail-Adresse des Dienstkontos, das Sie für die Aktion erstellt haben.
    • organization_id durch Ihre Google Cloud Organisations-ID.
    • scan_file_ref durch den Pfad zu Ihrer Terraform-Plandatei im JSON-Format.
    • failure_criteria durch die Kriterien für den Fehlerschwellenwert, die bestimmen, wann die Aktion fehlschlägt. Die Kriterien für den Schwellenwert basieren auf der Anzahl der Probleme mit kritischem, hohem, mittlerem und niedrigem Schweregrad, die beim IaC-Validierungsscan gefunden werden. failure_criteria gibt an, wie viele Probleme mit jedem Schweregrad zulässig sind und wie die Probleme zusammengefasst werden (entweder AND oder OR). Wenn die Aktion beispielsweise fehlschlagen soll, wenn ein kritisches Problem oder ein Problem mit hohem Schweregrad gefunden wird, legen Sie failure_criteria auf Critical:1,High:1,Operator:OR fest. Der Standardwert ist Critical:1,High:1,Medium:1,Low:1,Operator:OR. Das bedeutet, dass die Aktion fehlschlagen muss, wenn beim IaC-Validierungsscan ein Problem gefunden wird.

Sie können den Workflow jetzt ausführen, um Ihre Terraform-Plandatei zu validieren. Informationen zum manuellen Ausführen des Workflows finden Sie unter Workflow manuell ausführen.

Bericht zu IaC-Verstößen ansehen

  1. Klicken Sie in Ihrem GitHub-Repository auf Actions und wählen Sie Ihren Workflow aus.

  2. Klicken Sie auf die letzte Ausführung für Ihren Workflow.

    Im Abschnitt Artifacts ist der Bericht zu Verstößen (ias-scan-sarif.json) in einer ZIP-Datei verfügbar. Der Bericht enthält die folgenden Felder:

    • Ein Feld rules, in dem beschrieben wird, gegen welche Richtlinien der Terraform-Plan verstoßen hat. Jede Regel enthält eine ruleID, die Sie mit den im Bericht enthaltenen Ergebnissen abgleichen können.
    • Ein Feld results, in dem die vorgeschlagenen Asset-Änderungen beschrieben werden, die gegen eine bestimmte Regel verstoßen.
  3. Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.

Nächste Schritte