IaC-Validierung in GitHub Actions einbinden

Mit der Aktion Codesicherheit analysieren können Sie die Infrastruktur als 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 Google Cloud- Ressourcen angewendet werden.

Weitere Informationen zur Validierung von IaC finden Sie unter IaC anhand der Richtlinien Ihrer Organisation für Google Cloud validieren.

Hinweise

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

Security Command Center Premium- oder Enterprise-Stufe aktivieren

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

Wenn Sie Security Command Center aktivieren, werden die APIs securityposture.googleapis.com und securitycentermanagement.googleapis.com aktiviert.

Dienstkonto erstellen

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

  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 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 desGoogle Cloud -Projekts, in dem Sie die Workload Identity Federation eingerichtet haben.
    • POOL_ID ist der Name des Pools.
    • PROVIDER_ID ist der Name Ihres Identitätsanbieters.
  3. Fügen Sie Ihrem Workflow die Aktion Bei Google Cloud authentifizieren hinzu, um die IaC-Bestätigungsaktion zu authentifizieren.

Richtlinien definieren

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

JSON-Datei für 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 HashiCorp-Aktion „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. Rufen Sie im GitHub-Repository Ihren Workflow auf.
  2. Öffnen Sie den Workflow-Editor.
  3. Suchen Sie in der Seitenleiste des GitHub Marketplace nach Analyze Code Security.
  4. Kopieren Sie die Syntax im 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 Workload Identity Federation-ID-Token.
    • service_account durch die E-Mail-Adresse des Dienstkontos ersetzen, das Sie für die Aktion erstellt haben.
    • organization_id durch Ihre Google Cloud -Organisations-ID.
    • scan_file_ref durch den Pfad zur Terraform-Plandatei im JSON-Format.
    • failure_criteria mit den Grenzwerten für Fehler, die festlegen, wann die Aktion fehlschlägt. Die Grenzwertkriterien basieren auf der Anzahl der Probleme mit kritischer, hoher, mittlerer und niedriger Schwere, die bei der IaC-Validierungsüberprüfung auftreten. Mit failure_criteria wird festgelegt, wie viele Probleme mit welcher Schwere 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 hoher Schwere auftritt, 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 bei der IaC-Validierungsüberprüfung ein Problem auftritt.

Sie können jetzt den Workflow 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 aufrufen

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

  2. Klicken Sie auf die letzte Ausführung Ihres Workflows.

    Im Bereich Artefakte ist der Verstoßbericht (ias-scan-sarif.json) in einer ZIP-Datei verfügbar. Der Bericht enthält die folgenden Felder:

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

Nächste Schritte