Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di Amazon Inspector Jenkins plugin
Il Jenkins plug-in sfrutta il codice binario Amazon Inspector SBOM Generator e l'API Amazon Inspector Scan per produrre report dettagliati alla fine della compilazione, in modo da poter analizzare e correggere i rischi prima della distribuzione. Con il Jenkins plug-in Amazon Inspector, puoi aggiungere le scansioni delle vulnerabilità di Amazon Inspector alla tua pipeline. Jenkins Le scansioni delle vulnerabilità di Amazon Inspector possono essere configurate per superare o fallire le esecuzioni della pipeline in base al numero e alla gravità delle vulnerabilità rilevate. Puoi visualizzare l'ultima versione del plug-in sul marketplace all'Jenkinsindirizzo. Jenkins https://plugins.jenkins.io/amazon-inspector-image-scanner/
Importante
Prima di completare i passaggi seguenti, è necessario aggiornare Jenkins alla versione 2.387.3 o successiva per l'esecuzione del plug-in.
Passaggio 1. Configura un Account AWS
Configura un Account AWS ruolo IAM che consenta l'accesso all'API Amazon Inspector Scan. Per istruzioni, consulta l’argomento Configurare un AWS account per utilizzare l'integrazione Amazon Inspector CI/CD.
Passaggio 2. Installa il plugin Amazon Inspector Jenkins
La procedura seguente descrive come installare il plug-in Amazon Inspector Jenkins dalla dashboard. Jenkins
-
Dalla dashboard di Jenkins, scegli Manage Jenkins, quindi scegli Manage Plugins.
-
Scegli Disponibile.
-
Dalla scheda Disponibile, cerca Amazon Inspector Scans, quindi installa il plug-in.
(Facoltativo) Passaggio 3. Aggiungi le credenziali docker a Jenkins
Nota
Aggiungi le credenziali docker solo se l'immagine docker si trova in un repository privato. In caso contrario, puoi ignorare questo passaggio.
La procedura seguente descrive come aggiungere le credenziali docker dalla dashboard. Jenkins Jenkins
-
Dalla dashboard di Jenkins, scegli Gestisci Jenkins, Credenziali e poi Sistema.
-
Scegli Credenziali globali e poi Aggiungi credenziali.
-
Per Tipo, seleziona Nome utente con password.
-
Per Ambito, seleziona Globale (Jenkins, nodi, elementi, tutti gli elementi secondari, ecc.).
-
Inserisci i tuoi dati, quindi scegli OK.
(Facoltativo) Passaggio 4. Add (Aggiungi) AWS credenziali
Nota
Aggiungi AWS le credenziali solo se desideri autenticarti in base a un utente IAM. In caso contrario, puoi ignorare questo passaggio.
La procedura seguente descrive come aggiungere AWS credenziali dalla dashboard. Jenkins
-
Dalla dashboard di Jenkins, scegli Gestisci Jenkins, Credenziali e quindi Sistema.
-
Scegli Credenziali globali e poi Aggiungi credenziali.
-
Per Tipo, seleziona Credenziali AWS.
-
Inserisci i tuoi dati, inclusi l'ID della chiave di accesso e la chiave di accesso segreta, quindi scegli OK.
Fase 5. Aggiungete il supporto CSS in un Jenkins script
La procedura seguente descrive come aggiungere il supporto CSS in uno Jenkins script.
-
Riavvia Jenkins.
-
Dalla dashboard, scegli Manage Jenkins, Nodes , Built-In Node e quindi Script Console.
-
Nella casella di testo, aggiungete la riga
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""), quindi scegliete Esegui.
Fase 6. Aggiungi Amazon Inspector Scan alla tua build
Puoi aggiungere Amazon Inspector Scan alla tua build aggiungendo una fase di compilazione nel tuo progetto o utilizzando la pipeline Jenkins dichiarativa.
Amazon Inspector Scan alla tua build aggiungendo una fase di compilazione nel tuo progetto
-
Nella pagina di configurazione, scorri verso il basso fino a Build Steps e scegli Add build step. Quindi seleziona Amazon Inspector Scan.
-
Scegli tra due metodi di installazione di inspector-sbomgen: automatico o manuale. L'opzione automatica consente al plugin di scaricare la versione più recente. Inoltre, ti assicura di avere sempre le funzionalità più recenti, gli aggiornamenti di sicurezza e le correzioni di bug.
-
(Opzione 1) Scegli Automatico per scaricare l'ultima versione di inspector-sbomgen. Questa opzione rileva automaticamente il sistema operativo e l'architettura della CPU attualmente in uso.
-
(Opzione 2) Scegli Manuale se desideri configurare il binario Amazon Inspector SBOM Generator per la scansione. Se scegli questo metodo, assicurati di fornire il percorso completo di una versione precedentemente scaricata di inspector-sbomgen.
Per ulteriori informazioni, consulta Installazione di Amazon Inspector SBOM Generator (Sbomgen) in Amazon Inspector SBOM Generator. https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html
-
-
Completa quanto segue per completare la configurazione della fase di compilazione di Amazon Inspector Scan:
-
Inserisci l'ID dell'immagine. L'immagine può essere locale, remota o archiviata. I nomi delle immagini devono seguire la convenzione di Docker denominazione. Se stai analizzando un'immagine esportata, fornisci il percorso del file tar previsto. Vedete il seguente esempio di percorsi Image Id:
-
Per contenitori locali o remoti:
NAME[:TAG|@DIGEST] -
Per un file tar:
/path/to/image.tar
-
-
Seleziona un tramite Regione AWS il quale inviare la richiesta di scansione.
-
(Facoltativo) Per Report Artifact Name, inserisci un nome personalizzato per gli artefatti generati durante il processo di creazione. Ciò consente di identificarli e gestirli in modo univoco.
-
(Facoltativo) Per i file Skip, specificate una o più directory da escludere dalla scansione. Considerate questa opzione per le directory che non devono essere scansionate a causa delle dimensioni.
-
(Facoltativo) Per le credenziali Docker, seleziona il tuo nome utente. Docker Fatelo solo se l'immagine del contenitore si trova in un repository privato.
-
(Facoltativo) Puoi fornire i seguenti metodi di AWS autenticazione supportati:
-
(Facoltativo) Per il ruolo IAM, fornisci un ruolo ARN (arn:aws:iam: ::role/).
AccountNumberRoleName -
(Facoltativo) Per le credenziali AWS, specifica le credenziali per l'autenticazione in base a un utente IAM. AWS
-
(Facoltativo) Per il nome del AWS profilo, fornisci il nome di un profilo da autenticare utilizzando un nome di profilo.
-
-
(Facoltativo) Seleziona Abilita le soglie di vulnerabilità. Con questa opzione, puoi determinare se la tua build fallisce se una vulnerabilità scansionata supera un valore. Se tutti i valori sono uguali
0, la compilazione ha esito positivo, indipendentemente dal numero di vulnerabilità analizzate. Per il punteggio EPSS, il valore può essere compreso tra 0 e 1. Se una vulnerabilità scansionata supera un valore, la compilazione ha esito negativo e tutti i CVE con un punteggio EPSS superiore al valore vengono visualizzati nella console.
-
-
Selezionare Salva.
Aggiungi Amazon Inspector Scan alla tua build utilizzando Jenkins pipeline dichiarativa
Puoi aggiungere Amazon Inspector Scan alla tua build utilizzando la pipeline dichiarativa Jenkins automaticamente o manualmente.
Per scaricare automaticamente la pipeline dichiarativa SBOMgen
-
Per aggiungere Amazon Inspector Scan a una build, utilizza la seguente sintassi di esempio. Sostituiscila
IMAGE_PATHcon il percorso della tua immagine (ad esempioalpine:latest),IAM_ROLEcon l'ARN del ruolo IAM che hai configurato nel passaggio 1 eIDcon il tuo ID di Docker credenziale se stai utilizzando un repository privato. Facoltativamente, puoi abilitare le soglie di vulnerabilità e specificare valori per ciascuna gravità.
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 ]) } } } }
Per scaricare manualmente la pipeline dichiarativa SBOMgen
-
Per aggiungere Amazon Inspector Scan a una build, utilizza la seguente sintassi di esempio. Sostituiscilo
SBOMGEN_PATHcon il percorso del generatore SBOM di Amazon Inspector che hai installato nel passaggio 3,IMAGE_PATHcon il percorso della tua immagine (ad esempioalpine:latest),IAM_ROLEcon l'ARN del ruolo IAM che hai configurato nel passaggio 1 eIDcon il tuo ID Docker credenziale se stai utilizzando un repository privato. Facoltativamente, puoi abilitare le soglie di vulnerabilità e specificare valori per ciascuna gravità.
Nota
SbomgenInseritelo nella directory Jenkins e fornite il percorso della directory Jenkins nel plugin (ad esempio). /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 ]) } } } }
Il plugin include funzionalità per la gestione delle vulnerabilità di sicurezza.
Elenco CVE soppresso
Le scansioni possono occasionalmente rilevare vulnerabilità che non sono minacce effettive. Per evitare che questi falsi positivi blocchino la tua build, puoi aggiungerli a un elenco eliminato.
isSuppressedCveEnabled: true, suppressedCveList: 'CVE-2023-1234,CVE-2023-5678'
Questo ignora i CVE specifici quando si controlla se la build deve fallire. Dovresti aggiungere falsi positivi all'elenco eliminato solo se li hai risolti. Dopo aver aggiunto queste vulnerabilità all'elenco eliminato, i CVE vengono comunque visualizzati nel rapporto sulla sicurezza, ma non causeranno errori di compilazione.
Auto-Fail Elenco CVE
Per le vulnerabilità di sicurezza critiche, puoi creare un elenco che causa sempre il fallimento della build.
isAutoFailCveEnabled: true, autoFailCveList: 'CVE-2024-9999'
Ciò causa sempre il fallimento delle build, indipendentemente dalle impostazioni abilitate. Dovresti creare questo elenco solo per problemi di sicurezza ad alta priorità che non dovrebbero mai essere implementati. L'elenco sostituisce tutte le altre impostazioni di soglia per la massima sicurezza.
Fase 7. Visualizza il rapporto sulle vulnerabilità di Amazon Inspector
-
Completa una nuova build del tuo progetto.
-
Al termine della compilazione, seleziona un formato di output dai risultati. Se selezioni HTML, hai la possibilità di scaricare una versione JSON SBOM o CSV del rapporto. Di seguito viene mostrato un esempio di report HTML:
Nota
Puoi utilizzare script meno recenti, poiché il plug-in supporta vecchi nomi di parametri. Tuttavia, nella console verranno visualizzati avvisi che suggeriscono di aggiornare questi parametri con quelli più recenti. Ad esempio, se si utilizzaisThresholdEnabled, verrà visualizzato un avviso che suggerisce di aggiornare il parametro a. isSeverityThresholdEnabled
Risoluzione dei problemi
Di seguito sono riportati gli errori più comuni che si possono riscontrare quando si utilizza il plug-in Amazon Inspector Scan per. Jenkins
Impossibile caricare le credenziali o errore di eccezione sts
Errore:
InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.
Risoluzione
Ottieni aws_access_key_id e aws_secret_access_key per il tuo account. AWS Configura aws_access_key_id e aws_secret_access_key accedi~/.aws/credentials.
Impossibile caricare l'immagine da fonti tarball, locali o remote
Errore:
2024/10/16 02:25:17 [ImageDownloadFailed]: failed to load image from tarball, local, or remote sources.
Nota
Questo errore può verificarsi se il plug-in Jenkins non è in grado di leggere l'immagine del contenitore, l'immagine del contenitore non viene trovata nel Docker motore e l'immagine del contenitore non viene trovata nel registro remoto del contenitore.
Risoluzione:
Verifica quanto segue;
-
L'utente del plugin Jenkins ha i permessi di lettura dell'immagine che desideri scansionare.
-
L'immagine che desideri scansionare è presente nel Docker motore.
-
L'URL dell'immagine remota è corretto.
-
L'utente è autenticato nel registro remoto (se applicabile).
Inspector-sbomgen errore di percorso
Errore:
Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?
Risoluzione:
Completa la seguente procedura per risolvere il problema.
-
Inserisci l'architettura del sistema operativo corretta Inspector-sbomgen nella Jenkins directory Per ulteriori informazioni, consulta Amazon Inspector SBOM Generator.
-
Concedi le autorizzazioni eseguibili al file binario utilizzando il seguente comando:.
chmod +x inspector-sbomgen -
Fornisci il percorso corretto del Jenkins computer nel plugin, ad esempio.
/opt/folder/arm64/inspector-sbomgen -
Salva la configurazione ed esegui il Jenkins lavoro.