Verwenden des Amazon Jenkins Inspector-Plug-ins - Amazon Inspector

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden des Amazon Jenkins Inspector-Plug-ins

Das Jenkins Plugin nutzt die Amazon Inspector SBOM Generator-Binärdatei und die Amazon Inspector Scan API, um am Ende Ihres Builds detaillierte Berichte zu erstellen, sodass Sie Risiken vor der Bereitstellung untersuchen und beheben können.

Amazon Inspector ist ein Schwachstellen-Management-Service, der Container-Images auf der Grundlage von CVEs nach Sicherheitslücken in Betriebssystemen und Programmiersprachenpaketen durchsucht.

Mit dem Amazon Jenkins Inspector-Plugin können Sie Amazon Inspector Inspector-Schwachstellenscans zu Ihrer Jenkins Pipeline hinzufügen.

Anmerkung

Amazon Inspector Vulnerability Scans können so konfiguriert werden, dass Pipeline-Ausführungen je nach Anzahl und Schweregrad der erkannten Sicherheitslücken bestanden oder fehlschlagen.

Die neueste Version des Jenkins Plug-ins finden Sie im Jenkins Marketplace unter https://plugins.jenkins.io/amazon-inspector-image-scanner/.

In den folgenden Schritten wird beschrieben, wie Sie das Amazon Jenkins Inspector-Plugin einrichten.

Wichtig

Bevor Sie die folgenden Schritte ausführen, müssen Sie Jenkins auf Version 2.387.3 oder höher aktualisieren, damit das Plugin ausgeführt werden kann.

Schritt 1. Richten Sie ein AWS-Konto

Konfigurieren Sie eine AWS-Konto mit einer IAM-Rolle, die den Zugriff auf die Amazon Inspector Scan API ermöglicht. Anweisungen finden Sie unter Einrichtung eines AWS Kontos für die Nutzung der Amazon Inspector CI/CD-Integration.

Schritt 2. Installieren Sie das Amazon Inspector Jenkins-Plugin

Das folgende Verfahren beschreibt, wie Sie das Amazon Inspector Jenkins-Plugin vom Jenkins Dashboard aus installieren.

  1. Wählen Sie im Jenkins-Dashboard Manage Jenkins und anschließend Manage Plugins aus.

  2. Wählen Sie „Verfügbar“.

  3. Suchen Sie auf der Registerkarte Verfügbar nach Amazon Inspector Scans und installieren Sie dann das Plugin.

(Optional) Schritt 3. Fügen Sie Docker-Anmeldeinformationen hinzu Jenkins

Anmerkung

Fügen Sie nur Docker-Anmeldeinformationen hinzu, wenn sich das Docker-Image in einem privaten Repository befindet. Andernfalls überspringen Sie diesen Schritt.

Das folgende Verfahren beschreibt, wie Sie Docker-Anmeldeinformationen vom Jenkins Dashboard Jenkins aus hinzufügen.

  1. Wählen Sie im Jenkins-Dashboard Manage Jenkins, Credentials und dann System aus.

  2. Wählen Sie Globale Anmeldeinformationen und dann Anmeldeinformationen hinzufügen aus.

  3. Wählen Sie unter Kind die Option Benutzername mit Passwort aus.

  4. Wählen Sie unter Bereich die Option Global (Jenkins, Knoten, Elemente, alle untergeordneten Elemente usw.) aus.

  5. Geben Sie Ihre Daten ein und wählen Sie dann OK.

(Optional) Schritt 4. Fügen Sie AWS Anmeldeinformationen hinzu

Anmerkung

Fügen Sie nur AWS Anmeldeinformationen hinzu, wenn Sie sich anhand eines IAM-Benutzers authentifizieren möchten. Andernfalls überspringen Sie diesen Schritt.

Im folgenden Verfahren wird beschrieben, wie Sie AWS Anmeldeinformationen über das Jenkins Dashboard hinzufügen.

  1. Wählen Sie im Jenkins-Dashboard Manage Jenkins, Credentials und dann System aus.

  2. Wählen Sie Globale Anmeldeinformationen und dann Anmeldeinformationen hinzufügen aus.

  3. Wählen Sie für Kind die Option AWS-Anmeldeinformationen aus.

  4. Geben Sie Ihre Daten ein, einschließlich Ihrer Zugangsschlüssel-ID und Ihres geheimen Zugangsschlüssels, und wählen Sie dann OK.

Schritt 5. Fügen Sie CSS-Unterstützung in einem Jenkins Skript hinzu

Das folgende Verfahren beschreibt, wie Sie CSS-Unterstützung in einem Jenkins Skript hinzufügen.

  1. Starten Sie Jenkins neu.

  2. Wählen Sie im Dashboard Manage Jenkins, Nodes, Built-In Node und dann Script Console aus.

  3. Fügen Sie im Textfeld die Zeile hinzu und wählen Sie System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") dann Ausführen aus.

Schritt 6: Fügen Sie Amazon Inspector Scan zu Ihrem Build hinzu

Sie können Amazon Inspector Scan zu Ihrem Build hinzufügen, indem Sie Ihrem Projekt einen Build-Schritt hinzufügen oder die Jenkins deklarative Pipeline verwenden.

Amazon Inspector Scan zu Ihrem Build, indem Sie Ihrem Projekt einen Build-Schritt hinzufügen

  1. Scrollen Sie auf der Konfigurationsseite nach unten zu Build Steps und wählen Sie Build-Schritt hinzufügen aus. Wählen Sie dann Amazon Inspector Scan aus.

  2. Wählen Sie zwischen zwei Inspector-Sbomgen-Installationsmethoden: Automatisch oder Manuell.

    1. (Option 1) Wählen Sie Automatisch, um die neueste Version von inspector-sbomgen herunterzuladen. Wenn Sie diese Methode wählen, stellen Sie sicher, dass Sie die CPU-Architektur auswählen, die dem System entspricht, auf dem das Plugin ausgeführt wird.

    2. (Option 2) Wählen Sie Manuell, wenn Sie die Amazon Inspector SBOM Generator-Binärdatei für das Scannen einrichten möchten. Wenn Sie diese Methode wählen, stellen Sie sicher, dass Sie den vollständigen Pfad zu einer zuvor heruntergeladenen Version von inspector-sbomgen angeben.

    Weitere Informationen finden Sie unter Installation von Amazon Inspector SBOM Generator (Sbomgen) in Amazon Inspector SBOM Generator.

  3. Gehen Sie wie folgt vor, um die Konfiguration des Amazon Inspector Scan-Build-Schritts abzuschließen:

    1. Geben Sie Ihre Bild-ID ein. Das Bild kann lokal, remote oder archiviert sein. Bildnamen sollten der Docker Benennungskonvention entsprechen. Wenn Sie ein exportiertes Bild analysieren, geben Sie den Pfad zur erwarteten TAR-Datei an. Sehen Sie sich das folgende Beispiel für Image-ID-Pfade an:

      1. Für lokale oder Remote-Container: NAME[:TAG|@DIGEST]

      2. Für eine TAR-Datei: /path/to/image.tar

    2. Wählen Sie einen aus AWS-Region, über den die Scananforderung gesendet werden soll.

    3. (Optional) Wählen Sie für Docker-Anmeldeinformationen Ihren Docker Benutzernamen aus. Tun Sie dies nur, wenn sich Ihr Container-Image in einem privaten Repository befindet.

    4. (Optional) Sie können die folgenden unterstützten AWS Authentifizierungsmethoden bereitstellen:

      1. (Optional) Geben Sie für die IAM-Rolle einen Rollen-ARN an (arn:aws:iam: :role/). AccountNumberRoleName

      2. (Optional) Wählen Sie für AWS-Anmeldeinformationen die ID aus, um sich anhand eines IAM-Benutzers zu authentifizieren.

      3. (Optional) Geben Sie als AWS Profilname den Namen eines Profils an, das mithilfe eines Profilnamens authentifiziert werden soll.

    5. (Optional) Geben Sie die Schwellenwerte für Sicherheitslücken pro Schweregrad an. Wenn die von Ihnen angegebene Zahl während eines Scans überschritten wird, schlägt die Image-Erstellung fehl. Wenn die Werte alle sind0, ist der Build erfolgreich, unabhängig davon, ob Sicherheitslücken gefunden wurden.

  4. Wählen Sie Speichern.

Fügen Sie Amazon Inspector Scan mithilfe der Jenkins deklarativen Pipeline zu Ihrem Build hinzu

Sie können Amazon Inspector Scan mithilfe der deklarativen Jenkins-Pipeline automatisch oder manuell zu Ihrem Build hinzufügen.

Um die deklarative SBOMGen-Pipeline automatisch herunterzuladen
  • Verwenden Sie die folgende Beispielsyntax, um Amazon Inspector Scan zu einem Build hinzuzufügen. Basierend auf Ihrer bevorzugten Betriebssystemarchitektur des Amazon Inspector SBOM Generator-Downloads ersetzen Sie SBOMGEN_SOURCE durch LinuxAMD64 oder LinuxARM64. Ersetzen Sie IMAGE_PATH durch den Pfad zu Ihrem Image (z. B. alpine:latest), IAM_ROLE durch den ARN der IAM-Rolle, die Sie in Schritt 1 konfiguriert haben, und ID durch Ihre Docker Anmeldeinformations-ID, wenn Sie ein privates Repository verwenden. Sie können optional Schwellenwerte für Sicherheitslücken aktivieren und Werte für jeden Schweregrad angeben.

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', sbomgenSource: 'SBOMGEN_SOURCE', // this can be linuxAmd64 or linuxArm64 archivePath: 'IMAGE_PATH', awsRegion: 'REGION', iamRole: 'IAM ROLE', credentialId: 'Id', // provide empty string if image not in private repositories awsCredentialId: ''AWS ID;', awsProfileName: 'Profile Name', isThresholdEnabled: false, countCritical: 0, countHigh: 0, countLow: 10, countMedium: 5, ]) } } } } }
Um die deklarative SBOMGen-Pipeline manuell herunterzuladen
  • Verwenden Sie die folgende Beispielsyntax, um Amazon Inspector Scan zu einem Build hinzuzufügen. Ersetzen Sie SBOMGEN_PATH durch den Pfad zum Amazon Inspector SBOM Generator, den Sie in Schritt 3 installiert haben, IMAGE_PATH durch den Pfad zu Ihrem Image (z. B. alpine:latest), IAM_ROLE durch den ARN der IAM-Rolle, die Sie in Schritt 1 konfiguriert haben, und ID durch Ihre Anmeldeinformations-ID, wenn Sie ein privates Repository verwenden. Docker Sie können optional Schwellenwerte für Sicherheitslücken aktivieren und Werte für jeden Schweregrad angeben.

Anmerkung

Platzieren Sie es Sbomgen im Jenkins-Verzeichnis und geben Sie den Pfad zum Jenkins-Verzeichnis im Plugin an (z. B. /opt/folder/arm64/inspector-sbomgen).

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', sbomgenPath: 'SBOMGEN_PATH', archivePath: 'IMAGE_PATH', awsRegion: 'REGION', iamRole: 'IAM ROLE', awsCredentialId: ''AWS ID;', credentialId: 'Id;', // provide empty string if image not in private repositories awsProfileName: 'Profile Name', isThresholdEnabled: false, countCritical: 0, countHigh: 0, countLow: 10, countMedium: 5, ]) } } } } }

Schritt 7. Sehen Sie sich Ihren Amazon Inspector Inspector-Schwachstellenbericht an

  1. Vervollständigen Sie einen neuen Build Ihres Projekts.

  2. Wählen Sie nach Abschluss des Builds ein Ausgabeformat aus den Ergebnissen aus. Wenn Sie HTML auswählen, haben Sie die Möglichkeit, eine JSON-, SBOM- oder CSV-Version des Berichts herunterzuladen. Im Folgenden wird ein Beispiel für einen HTML-Bericht gezeigt:

Beispiel eines Amazon Inspector Inspector-Schwachstellenberichts.

Fehlerbehebung

Im Folgenden sind häufig auftretende Fehler aufgeführt, die bei der Verwendung des Amazon Inspector Scan-Plug-ins auftreten könnenJenkins.

Anmeldeinformationen konnten nicht geladen werden oder STS-Ausnahmefehler

Fehler:

InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.

Auflösung

Holen Sie sich aws_access_key_id und aws_secret_access_key für Ihr AWS Konto. Aufstellen aws_access_key_id und aws_secret_access_key rein~/.aws/credentials.

Inspector-SBOMGen-Pfadfehler

Fehler:

Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?

Auflösung

Gehen Sie wie folgt vor, um das Problem zu beheben.

  1. Platzieren Sie die richtige Betriebssystemarchitektur Inspector-SBOMGen im Jenkins Verzeichnis Weitere Informationen finden Sie unter Amazon Inspector SBOM Generator.

  2. Erteilen Sie mit dem folgenden Befehl ausführbare Rechte für die Binärdatei:. chmod +x inspector-sbomgen

  3. Geben Sie im Plugin den richtigen Jenkins Computerpfad an, z. /opt/folder/arm64/inspector-sbomgen B.

  4. Speichern Sie die Konfiguration und führen Sie den Jenkins Job aus.