Mit dem Google Analyze Code Security-Plug-in für Jenkins können Sie die Infrastruktur als Code (Infrastructure as Code, IaC) validieren, die Teil Ihres Jenkins-Projekts 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 IaC anhand der Richtlinien Ihrer Google Cloud Organisation validieren.
Die IaC-Validierung funktioniert nur mit Jenkins-Freestyle- Projekten.
Hinweis
Führen Sie diese Aufgaben aus, um mit der IaC-Validierung mit Jenkins 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 das Google Analyze Code Security-Plug-in für Jenkins 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. -
Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zur Seite „Dienstkonto erstellen“ - Wählen Sie Ihr Projekt aus.
-
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. - Klicken Sie auf Erstellen und fortfahren.
-
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.
- Klicken Sie auf Weiter.
-
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.
- Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
- Klicken Sie auf Schlüssel.
- Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
- Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
- Klicken Sie auf Schließen.
So erstellen Sie ein Dienstkonto:
Erstellen Sie einen Dienstkontoschlüssel:
Weitere Informationen zu Berechtigungen für die IaC-Validierung finden Sie unter IAM für Aktivierungen auf Organisationsebene.
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.
Plug-in installieren und konfigurieren
- Klicken Sie in der Jenkins-Console auf Manage Jenkins > Manage Plugins.
- Suchen Sie auf dem Tab Available nach google-analyze-code-security.
- Führen Sie die Installationsschritte aus.
- Klicken Sie auf Manage Jenkins > Configure System.
- Klicken Sie im Bereich Google Analyze Code Security auf Add credential.
- Geben Sie unter Organization ID die Organisations-ID für die Google Cloud Organisation ein, die die Terraform-Ressourcen enthält, die Sie erstellen oder ändern möchten.
- Fügen Sie unter Security Command Center Credential den Dienstkontoschlüssel hinzu.
- Testen Sie die Verbindung, um die Anmeldedaten des Dienstkontos zu prüfen.
- Klicken Sie auf Speichern.
JSON-Datei für den Terraform-Plan erstellen
Erstellen Sie Ihren Terraform-Code. Eine Anleitung finden Sie unter Terraform-Code erstellen.
Installieren Sie das Terraform-Plug-in für Jenkins.
Rufen Sie in der Jenkins-Console in Ihrem Jenkins-Freestyle-Projekt die Seite Configuration auf.
Klicken Sie auf Source Code Management.
Geben Sie unter Repository URL die URL zum erstellten Terraform-Code ein.
Klicken Sie auf Build steps.
Fügen Sie die folgenden Schritte hinzu:
Initialisieren Sie Terraform:
terraform initErstellen Sie eine Terraform-Plandatei.
terraform plan -out=TF_PLAN_FILEErsetzen Sie
TF_PLAN_FILEdurch den Namen der Terraform-Plandatei. Beispiel:myplan.tfplan.Konvertieren Sie die Plandatei in das JSON-Format:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILEErsetzen Sie
TF_PLAN_JSON_FILEdurch den Namen der Terraform-Plandatei im JSON-Format. Beispiel:mytfplan.json.
Plug-in zu Ihrem Jenkins-Projekt hinzufügen
- Rufen Sie in der Jenkins-Console in Ihrem Jenkins-Freestyle-Projekt die Seite Configuration auf.
- Klicken Sie unter Build Steps auf Add build step > Perform Code Scan during Build.
- Geben Sie Ihre Organisations-ID ein.
- Geben Sie den Pfad zur Terraform-Plandatei im JSON-Format an.
Optional: Legen Sie die Kriterien für den Build-Fehler fest. Die Fehlerkriterien basieren auf der Anzahl der Probleme mit kritischem, hohem, mittlerem und niedrigem Schweregrad, die beim IaC-Validierungsscan gefunden werden. Sie können angeben, wie viele Probleme mit jedem Schweregrad zulässig sind und wie die Probleme zusammengefasst werden (entweder UND oder ODER).
Klicken Sie auf Fail on Asset Violation.
Wenn der Build nur fehlschlagen soll, wenn die Anzahl der Probleme aller Schweregrade erreicht ist, wählen Sie UND aus. Wenn der Build fehlschlagen soll, wenn die Anzahl der Probleme eines Schweregrads erreicht ist, wählen Sie ODER aus. Wenn der Build beispielsweise fehlschlagen soll, wenn ein kritisches oder ein Problem mit hohem Schweregrad gefunden wird, legen Sie den Aggregatwert auf ODER fest.
Geben Sie die Anzahl der Probleme mit den verschiedenen Schweregraden an, die zulässig sind, bevor der Build fehlschlägt.
Wenn Sie keine Fehlerkriterien angeben möchten, wählen Sie Ignore Asset Violation aus.
Klicken Sie auf Speichern.
Sie können jetzt den Build ausführen, um die Terraform-Plandatei zu validieren.
Bericht zu IaC-Verstößen ansehen
Klicken Sie in der Jenkins-Console auf den letzten Workflow für Ihren Build.
Klicken Sie auf Status. Die folgenden HTML-Dateien sind als Build-Artefakte verfügbar:
- Wenn das Plug-in ausgeführt wurde, der Bericht zu Verstößen (
GoogleAnalyzeCodeSecurity_ViolationSummary.html)
Im Bericht werden Verstöße nach Schweregrad gruppiert. Im Abschnitt zu Verstößen wird beschrieben, welche Regel nicht erfüllt wurde, und die Asset-ID aus dem Terraform-Plan, die gegen die Regel verstößt.
- Wenn der Build fehlgeschlagen ist, ein Bericht zur Fehlerzusammenfassung
- Wenn das Plug-in ausgeführt wurde, der Bericht zu Verstößen (
Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.
Nächste Schritte
- Den Google Analyze Code Security-Plug-in ansehen.