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 IaC-Validierung finden Sie unter Validieren Sie IaC anhand der Richtlinien Ihrer Google Cloud-Organisation.
Hinweis
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 Security Command Center Premium- oder Enterprise-Stufe auf Organisationsebene aktiviert ist.
Durch das Aktivieren von Security Command Center werden die securityposture.googleapis.com
und
securitycentermanagement.googleapis.com
APIs
Dienstkonto erstellen
Erstellen Sie ein Dienstkonto, das Sie für die Aktion „Codesicherheit analysieren“ verwenden können.
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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.
- Click Continue.
-
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
Konfigurieren Sie die Identitätsföderation von Arbeitslasten mit Ihrem GitHub-Identitätsanbieter. Eine Anleitung finden Sie unter Workload Identity-Föderation.
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
Berücksichtige Folgendes:
PROJECT_NUMBER
ist die Projektnummer des Google Cloud-Projekts, in dem Sie die Workload Identity Federation eingerichtet haben.POOL_ID
ist der Poolname.PROVIDER_ID
ist der Name Ihres Identitätsanbieters.
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. Um diese Richtlinien mithilfe eines Sicherheitsstatus zu definieren, führen Sie die Aufgaben in Erstellen Sie einen Sicherheitsstatus und stellen Sie ihn bereit.
JSON-Datei für den Terraform-Plan erstellen
Erstellen Sie den Terraform-Code. Eine Anleitung finden Sie unter Terraform erstellen Code hinzu.
Initialisieren Sie Terraform in Ihren 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
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
.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 dem GitHub Actions-Workflow hinzufügen
- Rufen Sie im GitHub-Repository Ihren Workflow auf.
- Öffnen Sie den Workflow-Editor.
- Suchen Sie in der Seitenleiste von GitHub Marketplace nach analytics Code Security (Codesicherheit analysieren).
- Kopieren Sie die Syntax aus dem Abschnitt Installation.
- Fügen Sie die Syntax als neuen Schritt in Ihren Workflow ein.
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 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 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. (entwederAND
oderOR
). Wenn Sie z. B. möchten, dass die Aktion fehlschlägt, ein kritisches oder ein schwerwiegendes Problem auftritt,failure_criteria
anCritical:1,High:1,Operator:OR
. Der Standardwert istCritical: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 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
Klicken Sie in Ihrem GitHub-Repository auf Actions (Aktionen) und wählen Sie Ihren Workflow aus.
Klicken Sie auf die letzte Ausführung für Ihren Workflow.
Im Abschnitt Artefakte ist der Verstoßbericht (
ias-scan-sarif.json
) in einer 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 einruleID
, 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.
- Ein
Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.
Nächste Schritte
- Die Aktion analyze-code-security-scc ansehen Quellcode GitHub