IaC-Validierung in Jenkins einbinden

Mit dem Google Analyze Code Security-Plug-in für Jenkins können Sie die Infrastruktur als 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.

Hinweise

Führen Sie diese Aufgaben aus, um mit der IaC-Validierung mit Jenkins 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 das Google Analyze Code Security-Plug-in für Jenkins verwenden können.

  1. Create a service account:

    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.

      Do not close your browser window. You will use it in the next step.

  2. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

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 einem Sicherheitsstatus definieren möchten, führen Sie die Aufgaben unter Status erstellen und bereitstellen aus.

Plug-in installieren und konfigurieren

  1. Klicken Sie in der Jenkins-Konsole auf Manage Jenkins > Manage Plugins.
  2. Suchen Sie auf dem Tab Verfügbar nach google-analyze-code-security.
  3. Führen Sie die Installationsschritte aus.
  4. Klicken Sie auf Jenkins verwalten > System konfigurieren.
  5. Klicken Sie im Bereich Google Analyze Code Security auf Anmeldedaten hinzufügen.
  6. 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.
  7. Fügen Sie unter Security Command Center-Anmeldedaten den Dienstkontoschlüssel hinzu.
  8. Testen Sie die Verbindung, um die Anmeldedaten des Dienstkontos zu prüfen.
  9. Klicken Sie auf Speichern.

JSON-Datei für Terraform-Plan erstellen

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

  2. Installieren Sie das Terraform-Plug-in für Jenkins.

  3. Rufen Sie in der Jenkins-Konsole in Ihrem Jenkins-Freestyle-Projekt die Seite Konfiguration auf.

  4. Klicken Sie auf Quellcodeverwaltung.

  5. Geben Sie unter Repository-URL die URL des von Ihnen erstellten Terraform-Codes ein.

  6. Klicken Sie auf Build-Schritte.

  7. Fügen Sie die folgenden Schritte hinzu:

    1. Initialisieren Sie Terraform:

      terraform init
      
    2. Erstellen Sie eine Terraform-Plandatei.

      terraform plan -out=TF_PLAN_FILE
      

      Ersetzen Sie TF_PLAN_FILE durch den Namen der Terraform-Plan-Datei. Beispiel: myplan.tfplan.

    3. 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 der Terraform-Plandatei im JSON-Format. Beispiel: mytfplan.json.

Plug-in zu Ihrem Jenkins-Projekt hinzufügen

  1. Rufen Sie in der Jenkins-Konsole in Ihrem Jenkins-Freestyle-Projekt die Seite Konfiguration auf.
  2. Klicken Sie unter Build-Schritte auf Build-Schritt hinzufügen > Code-Scan während des Builds ausführen.
  3. Geben Sie Ihre Organisations-ID ein.
  4. Geben Sie den Pfad zu Ihrer Terraform-Plandatei im JSON-Format an.
  5. Optional: Kriterien für Build-Fehler festlegen 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 dem jeweiligen Schweregrad zulässig sind und wie die Probleme aggregiert werden (entweder AND oder OR).

    1. Klicken Sie auf Bei Asset-Verstoß fehlgeschlagen.

    2. Wenn der Build nur dann fehlschlagen soll, wenn die Anzahl der Probleme aller Schweregrade erreicht ist, wählen Sie AND aus. Wenn der Build fehlschlagen soll, sobald die Anzahl der Probleme eines beliebigen Schweregrads erreicht ist, wählen Sie OR aus. Wenn der Build beispielsweise fehlschlagen soll, sobald ein kritisches oder ein Problem mit hohem Schweregrad auftritt, legen Sie den aggregierten Wert auf OR fest.

    3. Geben Sie die Anzahl der Probleme auf den verschiedenen Schweregraden an, die Sie zulassen möchten, bevor der Build fehlschlägt.

    Wenn Sie kein Fehlerkriterium angeben möchten, wählen Sie Asset-Verstoß ignorieren aus.

  6. Klicken Sie auf Speichern.

Sie können jetzt den Build ausführen, um Ihre Terraform-Plan-Datei zu validieren.

Bericht zu IaC-Verstößen ansehen

  1. Klicken Sie in der Jenkins-Konsole auf den letzten Workflow für Ihren Build.

  2. Klicken Sie auf Status. Die folgenden HTML-Dateien sind als Build-Artefakte verfügbar:

    • Wenn das Plug‑in ausgeführt wurde, wird der Verstoßbericht (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

    Im Bericht werden Verstöße nach Schweregrad gruppiert. Im Abschnitt „Verstoß“ wird beschrieben, welche Regel nicht eingehalten wurde, und die Asset-ID aus dem Terraform-Plan angegeben, die gegen die Regel verstoßen hat.

    • Wenn der Build fehlgeschlagen ist, wird ein Fehlerzusammenfassungsbericht
  3. Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.

Nächste Schritte