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 Validierung von IaC 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-Plug-in „Analyze Code Security“ 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 mithilfe eines Sicherheitsstatus definieren möchten, führen Sie die Aufgaben unter Sicherheitsstatus erstellen und bereitstellen aus.

Plug-in installieren und konfigurieren

  1. Klicken Sie in der Jenkins-Konsole auf Jenkins verwalten > Plug-ins verwalten.
  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 (Google Code Security analysieren) auf Add credential (Anmeldedaten hinzufügen).
  6. Geben Sie unter Organisations-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 zum von Ihnen erstellten Terraform-Code 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-Plandatei. 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 > Codescan während des Builds ausführen.
  3. Geben Sie Ihre Organisations-ID ein.
  4. Geben Sie den Pfad zur Terraform-Plandatei im JSON-Format an.
  5. Optional: Legen Sie die Kriterien für Build-Fehler fest. Die Fehlerkriterien basieren auf der Anzahl der Probleme mit kritischer, hoher, mittlerer und niedriger Schwere, die bei der IaC-Validierungsüberprüfung auftreten. Sie können angeben, wie viele Probleme jeder Schwere zulässig sind und wie die Probleme zusammengefasst werden (entweder AND oder OR).

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

    2. Wenn der Build nur dann fehlschlagen soll, wenn die Anzahl der Probleme aller Schweregrade erreicht wird, wählen Sie AND aus. Wenn der Build fehlschlagen soll, wenn die Anzahl der Probleme einer beliebigen Schweregradstufe erreicht wird, wählen Sie ODER aus. Wenn der Build beispielsweise fehlschlagen soll, wenn ein kritisches Problem oder ein Problem mit hoher Schweregradstufe auftritt, legen Sie den Gesamtwert auf ODER fest.

    3. 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.

  6. Klicken Sie auf Speichern.

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

Bericht zu IaC-Verstößen aufrufen

  1. Klicken Sie in der Jenkins-Konsole auf den neuesten 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, die Meldung zum Verstoß (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, ein Bericht mit einer Fehlerzusammenfassung
  3. Beheben Sie alle Verstöße in Ihrem Terraform-Code, bevor Sie ihn anwenden.

Nächste Schritte