Sie können das Plug-in Google analytics Code Security Jenkins zur Validierung die Infrastruktur als Code (IaC), 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 Validierung von IaC finden Sie unter IaC anhand der Richtlinien Ihrer Google Cloud-Organisation validieren.
IaC-Validierung nur mit Jenkins Freestyle funktioniert Projekten.
Hinweis
Führen Sie diese Aufgaben aus, um mit der IaC-Validierung mit Jenkins zu beginnen.
Premium- oder Enterprise-Stufe von Security Command Center aktivieren
Prüfen Sie, ob die Premium- oder Enterprise-Stufe von Security Command Center auf Organisationsebene aktiviert ist.
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 von Google verwenden können für Jenkins.
-
Create a service account:
-
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.
Do not close your browser window. You will use it in the next step.
-
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
Weitere Informationen zu Berechtigungen für die IaC-Validierung finden Sie unter IAM für Organisationsebene Aktivierungen.
Richtlinien definieren
Definieren Sie Ihre Organisationsrichtlinien und Security Health Analytics-Detektoren. Wenn Sie diese Richtlinien mithilfe 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-Konsole auf Jenkins verwalten > Plug-ins verwalten.
- Suchen Sie auf dem Tab Verfügbar nach google-analytics-code-security.
- Schließen Sie die Installation ab.
- Klicken Sie auf Manage Jenkins > System konfigurieren.
- Klicken Sie im Bereich Google Analyzer Code Security auf Add credential (Anmeldedaten hinzufügen).
- Geben Sie unter Organisations-ID die Organisations-ID für die Google Cloud ein. Organisation, die die Terraform-Ressourcen enthält, die Sie erstellen oder ändern können.
- Fügen Sie in den Security Command Center-Anmeldedaten 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-Konsole in Ihrem Jenkins-Freestyle-Projekt die Seite Konfiguration auf.
Klicken Sie auf Source Code Management (Quellcodeverwaltung).
Geben Sie unter Repository-URL die URL zum von Ihnen erstellten Terraform-Code ein.
Klicken Sie auf Build-Schritte.
Fügen Sie die folgenden Schritte hinzu:
Initialisieren Sie Terraform:
terraform init
Erstellen Sie eine Terraform-Plandatei.
terraform plan -out=TF_PLAN_FILE
Ersetzen Sie
TF_PLAN_FILE
durch den Namen des Terraform-Plans. -Datei. Beispiel:myplan.tfplan
.Konvertieren Sie die Plandatei in das JSON-Format:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
Ersetzen Sie
TF_PLAN_JSON_FILE
durch den Namen des Terraform-Elements. Plandatei im JSON-Format erstellen. Beispiel:mytfplan.json
.
Plug-in dem Jenkins-Projekt hinzufügen
- Rufen Sie in der Jenkins-Konsole in Ihrem Jenkins-Freestyle-Projekt die Seite Konfiguration auf.
- Klicken Sie unter Build-Schritte auf Build-Schritt hinzufügen > Code-Scan während des Builds ausführen.
- Geben Sie Ihre Organisations-ID ein.
- Geben Sie den Pfad zur Terraform-Plandatei im JSON-Format an.
Optional: Legen Sie die Kriterien für Build-Fehler fest. Die Fehlerkriterien basieren auf Anzahl der kritischen, hohen, mittleren und niedrigen Schweregrade, die der IaC die beim Validierungsscan gefunden wurden. Sie können für jeden Schweregrad angeben, wie viele Probleme zulässig sind und wie die Probleme zusammengefasst werden (entweder UND oder ODER)
Klicke auf Bei Asset-Verstoß ablehnen.
Wenn der Build nur fehlschlagen soll, wenn die Anzahl der Probleme Schweregrad erreicht haben, wählen Sie UND aus. Wenn der Build fehlschlagen soll Wenn die Anzahl der Probleme eines beliebigen Schweregrads erreicht ist, wählen Sie ODER aus. Wenn Sie z. B. möchten, dass der Build fehlschlägt, wenn ein kritischer oder einem schwerwiegenden Problem, setzen Sie den Gesamtwert auf ODER.
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 Asset-Verstoß ignorieren aus.
Klicken Sie auf Speichern.
Sie können jetzt den Build ausführen, um Ihre Terraform-Plandatei zu validieren.
Bericht zu IaC-Verstößen aufrufen
Klicken Sie in der Jenkins-Konsole auf den neuesten 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, die Meldung zu Verstößen (
GoogleAnalyzeCodeSecurity_ViolationSummary.html
)
Verstöße werden im Bericht nach Schweregrad gruppiert. Im Abschnitt „Verstoß“ 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, wird ein Bericht mit der Fehlerzusammenfassung
- Wenn das Plug-in ausgeführt wurde, die Meldung zu Verstößen (
Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.