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.
Den Amazon Inspector verwenden Jenkins Plugin
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. Mit dem Amazon Jenkins Inspector-Plugin können Sie Amazon Inspector-Schwachstellen-Scans zu Ihrer Pipeline hinzufügen. Jenkins Amazon Inspector-Sicherheitslücken können je nach Anzahl und Schweregrad der erkannten Sicherheitslücken so konfiguriert werden, dass sie Pipeline-Ausführungen bestehen oder nicht. Die neueste Version des Jenkins Plugins finden Sie auf dem Jenkins Marktplatz unter https://plugins.jenkins.io/amazon-inspector-image-scanner/
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 eine ein AWS-Konto
Konfigurieren Sie eine AWS-Konto mit einer IAM-Rolle, die den Zugriff auf die Amazon Inspector Scan API ermöglicht. Detaillierte Anweisungen finden Sie unter Einrichtung einer AWS Konto, um die Amazon CI/CD Inspector-Integration zu verwenden.
Schritt 2. Installieren Sie das Amazon Inspector Jenkins-Plugin
Das folgende Verfahren beschreibt, wie Sie das Amazon Inspector Jenkins-Plugin vom Dashboard aus installieren. Jenkins
-
Wählen Sie im Jenkins-Dashboard die Option Jenkins verwalten und dann Plugins verwalten aus.
-
Wählen Sie Verfügbar aus.
-
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 Docker-Anmeldeinformationen nur 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 Dashboard Jenkins aus hinzufügen. Jenkins
-
Wählen Sie im Jenkins-Dashboard Jenkins verwalten, Anmeldeinformationen und dann System aus.
-
Wählen Sie Globale Anmeldeinformationen und dann Anmeldeinformationen hinzufügen.
-
Wählen Sie für Art die Option Benutzername mit Passwort aus.
-
Wählen Sie für Umfang die Option Global (Jenkins, Knoten, Elemente, alle untergeordneten Elemente usw.) aus.
-
Geben Sie Ihre Daten ein und wählen Sie dann OK.
(Optional) Schritt 4. Addition AWS Anmeldedaten
Anmerkung
Fügen Sie AWS Anmeldeinformationen nur hinzu, wenn Sie sich anhand eines IAM-Benutzers authentifizieren möchten. Andernfalls überspringen Sie diesen Schritt.
Das folgende Verfahren beschreibt, wie Sie AWS Anmeldeinformationen aus dem Jenkins Dashboard hinzufügen.
-
Wählen Sie im Jenkins-Dashboard Jenkins verwalten , Anmeldeinformationen und dann System aus.
-
Wählen Sie Globale Anmeldeinformationen und dann Anmeldeinformationen hinzufügen.
-
Wählen Sie für Kind die Option AWS-Anmeldeinformationen aus.
-
Geben Sie Ihre Daten ein, einschließlich Ihrer Zugriffsschlüssel-ID und Ihres geheimen Zugriffsschlüssels, und wählen Sie dann OK.
Schritt 5. Fügen Sie CSS-Unterstützung in einem hinzu Jenkins script
Das folgende Verfahren beschreibt, wie Sie CSS-Unterstützung in einem Jenkins Skript hinzufügen.
-
Starten Sie Jenkins neu.
-
Wählen Sie im Dashboard Manage Jenkins, Nodes , Built-In Node und dann Script Console aus.
-
Fügen Sie im Textfeld die Zeile
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")hinzu und wählen Sie dann Run.
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
-
Scrollen Sie auf der Konfigurationsseite nach unten zu Build Steps und wählen Sie Build Step hinzufügen aus. Wählen Sie dann Amazon Inspector Scan aus.
-
Wählen Sie zwischen zwei Inspector-Sbomgen-Installationsmethoden: Automatisch oder Manuell. Die automatische Option ermöglicht es dem Plugin, die neueste Version herunterzuladen. Außerdem wird sichergestellt, dass Sie immer über die neuesten Funktionen, Sicherheitsupdates und Bugfixes verfügen.
-
(Option 1) Wählen Sie Automatisch, um die neueste Version von inspector-sbomgen herunterzuladen. Diese Option erkennt automatisch das Betriebssystem und die CPU-Architektur, die derzeit verwendet werden.
-
(Option 2) Wählen Sie Manuell, wenn Sie die Amazon Inspector SBOM Generator-Binärdatei für das Scannen einrichten möchten. Wenn Sie sich für diese Methode entscheiden, stellen Sie sicher, dass Sie den vollständigen Pfad zu einer zuvor heruntergeladenen Version von inspector-sbomgen angeben.
Weitere Informationen finden Sie unter Amazon Inspector SBOM Generator (Sbomgen) in Amazon Inspector SBOM Generator installieren. https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html
-
-
Gehen Sie wie folgt vor, um die Konfiguration des Amazon Inspector Scan-Builds abzuschließen:
-
Geben Sie Ihre Image-ID ein. Das Bild kann lokal, remote oder archiviert sein. Die Namen der Bilder sollten der Docker Namenskonvention 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:
-
Für lokale oder Remote-Container:
NAME[:TAG|@DIGEST] -
Für eine TAR-Datei:
/path/to/image.tar
-
-
Wählen Sie eine aus AWS-Region, über die die Scananfrage gesendet werden soll.
-
(Optional) Geben Sie unter Name des Berichtsartefakts einen benutzerdefinierten Namen für die Artefakte ein, die während des Build-Prozesses generiert wurden. Dies hilft, sie eindeutig zu identifizieren und zu verwalten.
-
(Optional) Geben Sie für Dateien überspringen ein oder mehrere Verzeichnisse an, die Sie vom Scannen ausschließen möchten. Ziehen Sie diese Option für Verzeichnisse in Betracht, die aufgrund ihrer Größe nicht gescannt werden müssen.
-
(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.
-
(Optional) Sie können die folgenden unterstützten AWS Authentifizierungsmethoden angeben:
-
(Optional) Geben Sie für die IAM-Rolle einen Rollen-ARN an (arn:aws:iam: ::role/).
AccountNumberRoleName -
(Optional) Geben Sie für AWS-Anmeldeinformationen die Anmeldeinformationen für die Authentifizierung anhand eines IAM-Benutzers an. AWS
-
(Optional) Geben Sie für den AWS Profilnamen den Namen eines Profils an, das mithilfe eines Profilnamens authentifiziert werden soll.
-
-
(Optional) Wählen Sie Schwellenwerte für Sicherheitslücken aktivieren aus. Mit dieser Option können Sie feststellen, ob Ihr Build fehlschlägt, wenn eine gescannte Sicherheitslücke einen bestimmten Wert überschreitet. Wenn alle Werte gleich sind
0, ist der Build erfolgreich, unabhängig davon, wie viele Sicherheitslücken gescannt werden. Für den EPSS-Score kann der Wert zwischen 0 und 1 liegen. Wenn eine gescannte Sicherheitslücke einen Wert überschreitet, schlägt der Build fehl und alle CVEs mit einem EPSS-Wert über dem Wert werden in der Konsole angezeigt.
-
-
Wählen Sie Speichern.
Fügen Sie Amazon Inspector Scan zu Ihrem Build hinzu, indem Sie Jenkins deklarative Pipeline
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.
IMAGE_PATHErsetzen Sie es durch den Pfad zu Ihrem Image (z. B.alpine:latest),IAM_ROLEdurch den ARN der IAM-Rolle, die Sie in Schritt 1 konfiguriert haben, undIDdurch 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', archivePath: 'IMAGE_PATH', // Path to your container image or tar file awsRegion: 'REGION', // AWS region for scan requests iamRole: 'IAM ROLE', // IAM role ARN for authentication credentialId: 'Id', // Docker credentials (empty if public repo) awsCredentialId: 'AWS ID', // AWS credential ID for authentication awsProfileName: 'Profile Name', // AWS profile name to use sbomgenSkipFiles: '*.log,node_modules,/tmp/*', // Files/directories to exclude from scanning // Vulnerability threshold settings (updated parameter names) isSeverityThresholdEnabled: false, // Enable/disable build failure on vulnerability count countCritical: 0, // Max critical vulnerabilities before build fails countHigh: 0, // Max high vulnerabilities before build fails countMedium: 5, // Max medium vulnerabilities before build fails countLow: 10, // Max low vulnerabilities before build fails // EPSS (Exploit Prediction Scoring System) settings isEpssThresholdEnabled: false, // Enable/disable EPSS-based failure threshold epssThreshold: 0.7, // EPSS score threshold (0.0 to 1.0) // NEW FEATURE: CVE Suppression - ignore specific false positives isSuppressedCveEnabled: false, // Enable CVE suppression feature suppressedCveList: '', // Comma-separated list of CVEs to ignore in thresholds // NEW FEATURE: Auto-Fail CVEs - always fail on critical security issues isAutoFailCveEnabled: false, // Enable auto-fail CVE feature autoFailCveList: '' // Comma-separated list of CVEs that always fail build ]) } } } }
Um die deklarative SBOMGen-Pipeline manuell herunterzuladen
-
Verwenden Sie die folgende Beispielsyntax, um Amazon Inspector Scan zu einem Build hinzuzufügen.
SBOMGEN_PATHErsetzen Sie durch den Pfad zum Amazon Inspector SBOM Generator, den Sie in Schritt 3 installiert haben,IMAGE_PATHdurch den Pfad zu Ihrem Image (z. B.alpine:latest), durch denIAM_ROLEARN der IAM-Rolle, die Sie in Schritt 1 konfiguriert haben, undIDdurch 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.
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', archivePath: 'IMAGE_PATH', // Path to your container image or tar file awsRegion: 'REGION', // AWS region for scan requests iamRole: 'IAM ROLE', // IAM role ARN for authentication credentialId: 'Id', // Docker credentials (empty if public repo) awsCredentialId: 'AWS ID', // AWS credential ID for authentication awsProfileName: 'Profile Name', // AWS profile name to use sbomgenSkipFiles: '*.log,node_modules,/tmp/*', // Files/directories to exclude from scanning // Vulnerability threshold settings (updated parameter names) isSeverityThresholdEnabled: false, // Enable/disable build failure on vulnerability count countCritical: 0, // Max critical vulnerabilities before build fails countHigh: 0, // Max high vulnerabilities before build fails countMedium: 5, // Max medium vulnerabilities before build fails countLow: 10, // Max low vulnerabilities before build fails // EPSS (Exploit Prediction Scoring System) settings isEpssThresholdEnabled: false, // Enable/disable EPSS-based failure threshold epssThreshold: 0.7, // EPSS score threshold (0.0 to 1.0) // NEW FEATURE: CVE Suppression - ignore specific false positives isSuppressedCveEnabled: false, // Enable CVE suppression feature suppressedCveList: '', // Comma-separated list of CVEs to ignore in thresholds // NEW FEATURE: Auto-Fail CVEs - always fail on critical security issues isAutoFailCveEnabled: false, // Enable auto-fail CVE feature autoFailCveList: '' // Comma-separated list of CVEs that always fail build ]) } } } }
Das Plugin enthält Funktionen zur Verwaltung von Sicherheitslücken.
Unterdrückte CVE-Liste
Scans können gelegentlich Sicherheitslücken erkennen, bei denen es sich nicht um tatsächliche Bedrohungen handelt. Um zu verhindern, dass diese Fehlalarme Ihren Build stoppen, können Sie sie zu einer Liste mit unterdrückten Ergebnissen hinzufügen.
isSuppressedCveEnabled: true, suppressedCveList: 'CVE-2023-1234,CVE-2023-5678'
Dadurch werden bestimmte CVEs ignoriert, wenn überprüft wird, ob Ihr Build fehlschlagen sollte. Sie sollten der Liste der Unterdrückten nur dann Fehlalarme hinzufügen, wenn Sie diese behoben haben. Nachdem Sie diese Sicherheitslücken zur Liste der unterdrückten Sicherheitslücken hinzugefügt haben, werden die CVEs weiterhin in Ihrem Sicherheitsbericht angezeigt, sie führen jedoch nicht zu Build-Fehlern.
Auto-Fail CVE-Liste
Für kritische Sicherheitslücken können Sie eine Liste erstellen, die immer dazu führt, dass Ihr Build fehlschlägt.
isAutoFailCveEnabled: true, autoFailCveList: 'CVE-2024-9999'
Dies führt immer dazu, dass Ihre Builds fehlschlagen, unabhängig davon, welche Einstellungen Sie aktiviert haben. Sie sollten diese Liste nur für Sicherheitsprobleme mit hoher Priorität erstellen, die niemals implementiert werden sollten. Die Liste überschreibt alle anderen Schwellenwerteinstellungen, um maximale Sicherheit zu gewährleisten.
Schritt 7. Sehen Sie sich Ihren Amazon Inspector Schwachstellenbericht an
-
Vervollständigen Sie einen neuen Build Ihres Projekts.
-
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. Das Folgende zeigt ein Beispiel für einen HTML-Bericht:
Anmerkung
Sie können ältere Skripts verwenden, da das Plugin alte Parameternamen unterstützt. In der Konsole werden Sie jedoch auf Warnungen stoßen, die darauf hinweisen, dass Sie diese Parameter auf neuere aktualisieren. Wenn Sie beispielsweise verwenden, wird eine Warnung angezeigtisThresholdEnabled, in der Sie aufgefordert werden, den Parameter auf zu aktualisierenisSeverityThresholdEnabled.
Fehlerbehebung
Die folgenden Fehler können häufig auftreten, wenn Sie das Amazon Inspector Scan-Plugin für verwendenJenkins.
Anmeldeinformationen konnten nicht geladen werden oder es liegt ein Ausnahmefehler vor
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. Einrichten aws_access_key_id und aws_secret_access_key rein~/.aws/credentials.
Das Bild konnte nicht aus Tarball-, lokalen oder Remote-Quellen geladen werden
Fehler:
2024/10/16 02:25:17 [ImageDownloadFailed]: failed to load image from tarball, local, or remote sources.
Anmerkung
Dieser Fehler kann auftreten, wenn das Jenkins-Plugin das Container-Image nicht lesen kann, das Container-Image nicht in der Docker Engine gefunden wird und das Container-Image nicht in der Remote-Container-Registry gefunden wird.
Auflösung
Überprüfen Sie Folgendes:
-
Der Benutzer des Jenkins-Plugins hat Leseberechtigungen für das Bild, das Sie scannen möchten.
-
Das Bild, das Sie scannen möchten, ist in Docker der Engine vorhanden.
-
Ihre Remote-Bild-URL ist korrekt.
-
Sie sind bei der Remote-Registrierung authentifiziert (falls zutreffend).
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.
-
Platzieren Sie die richtige Betriebssystemarchitektur Inspector-sbomgen im Jenkins Verzeichnis. Weitere Informationen finden Sie unter Amazon Inspector SBOM Generator.
-
Gewähren Sie der Binärdatei mit dem folgenden Befehl die ausführbaren Berechtigungen:.
chmod +x inspector-sbomgen -
Geben Sie den richtigen Jenkins Computerpfad im Plugin an, z.
/opt/folder/arm64/inspector-sbomgenB. -
Speichern Sie die Konfiguration und führen Sie den Jenkins Job aus.