IaC-Validierung in GitHub Actions einbinden

Mit der Funktion Codesicherheit analysieren Aktion Validieren Sie die Infrastruktur als Code (IaC), die Teil Ihrer GitHub-Aktionen ist. zu optimieren. Durch die Validierung von IaC können Sie feststellen, ob Ihre Terraform-Ressource die bestehenden Organisationsrichtlinien und Security Health Analytics-Detektoren, die auf Ihre Google Cloud-Ressourcen angewendet werden.

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

Hinweise

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

Premium- oder Enterprise-Stufe von Security Command Center aktivieren

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

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

Dienstkonto erstellen

Dienstkonto erstellen, das Sie für die Codesicherheitsanalyse verwenden können Aktion ausführen.

  1. In the Google Cloud console, go to the Create service account page.

    Go to Create service account
  2. Select your project.
  3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

    In the Service account description field, enter a description. For example, Service account for quickstart.

  4. Click Create and continue.
  5. Grant the Security Posture Shift-Left Validator role to the service account.

    To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.

  6. Click Continue.
  7. Click Done to finish creating the service account.

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

Authentifizierung einrichten

  1. Konfigurieren Sie die Identitätsföderation von Arbeitslasten mit Ihrem GitHub-Identitätsanbieter. Für finden Sie unter Workload Identity-Föderation:

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

    Beachten Sie dabei Folgendes:

    • PROJECT_NUMBER ist die Projektnummer für die Google Cloud-Projekt, in dem Sie die Identitätsföderation von Arbeitslasten eingerichtet haben.
    • POOL_ID ist der Poolname.
    • PROVIDER_ID ist der Name Ihres Identitätsanbieters.
  3. Fügen Sie den Abschnitt Bei Google Cloud authentifizieren Aktion an Ihren Workflow, um die IaC-Validierung zu authentifizieren.

Richtlinien definieren

Definition Ihrer Organisation Richtlinien und Security Health Analytics Detektoren. Bis diese Richtlinien mithilfe eines Sicherheitsstatus definieren möchten, führen Sie die Aufgaben unter Erstellen und stellen Sie eine Sicherheitsstatus.

JSON-Datei für den Terraform-Plan erstellen

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

  2. Initialisieren Sie Terraform in GitHub Actions. Wenn Sie zum Beispiel Führen Sie in der Aktion HashiCorp – Setup Terraform (HashiCorp – Terraform einrichten) 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 des Terraform-Plans. -Datei. 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 für Terraform. Plandatei im JSON-Format erstellen. Beispiel: mytfplan.json.

Aktion dem GitHub Actions-Workflow hinzufügen

  1. Gehen Sie im GitHub-Repository zu Ihrem Workflow.
  2. Öffnen Sie den Workflow-Editor.
  3. Suchen Sie in der Seitenleiste von GitHub Marketplace nach Analyse der Codesicherheit.
  4. Kopieren Sie die Syntax aus dem Abschnitt Installation.
  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 ID-Token der Workload Identity-Föderation.
    • service_account durch die E-Mail-Adresse des Dienstkontos, das Sie die für die Aktion erstellt wurden.
    • organization_id durch Ihre Google Cloud-Organisations-ID.
    • scan_file_ref durch den Pfad zu Ihrer Terraform-Plandatei im JSON-Format.
    • failure_criteria mit dem Fehlerschwellenwert Kriterien, die bestimmen, wann die Aktion fehlschlägt. Das Schwellenwertkriterium ist basierend auf der Anzahl kritischer, hoher, mittlerer und niedriger Schwere die während des IaC-Validierungsscans auftreten. failure_criteria gibt an, wie viele jedem Schweregrad zulässig sind und wie sie zusammengefasst werden. (entweder AND oder OR). Wenn Sie z. B. möchten, dass die Aktion fehlschlägt, ein kritisches oder ein schwerwiegendes Problem auftritt, failure_criteria bis Critical:1,High:1,Operator:OR. Die Standardeinstellung ist Critical:1,High:1,Medium:1,Low:1,Operator:OR bedeutet, dass, wenn der IaC während des Validierungsscans ein Problem auftritt, muss die Aktion fehlschlagen.

Sie können jetzt den Workflow ausführen, um die Terraform-Plandatei zu validieren. Um den siehe Manuelles Ausführen eines

Bericht zu IaC-Verstößen aufrufen

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

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

    Im Abschnitt Artefakte ist die Verstoßmeldung (ias-scan-sarif.json) als ZIP-Datei verfügbar. Der Bericht enthält die folgenden Feldern:

    • Ein rules-Feld, das beschreibt, gegen welche Richtlinien der Terraform-Plan. Jede Regel enthält ein ruleID, das Sie mit dem Parameter die im Bericht enthalten sind.
    • Ein results-Feld, 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