Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation du Jenkins plugin Amazon Inspector
Le Jenkins plugin utilise le binaire Amazon Inspector SBOM Generator et l'API Amazon Inspector Scan pour produire des rapports détaillés à la fin de votre build, afin que vous puissiez étudier et corriger les risques avant le déploiement. Avec le Jenkins plugin Amazon Inspector, vous pouvez ajouter des analyses de vulnérabilité Amazon Inspector à votre Jenkins pipeline. Les analyses de vulnérabilité d'Amazon Inspector peuvent être configurées pour réussir ou échouer les exécutions de pipeline en fonction du nombre et de la gravité des vulnérabilités détectées. Vous pouvez consulter la dernière version du Jenkins plugin sur le Jenkins marché à l'adresse https://plugins.jenkins.io/amazon-inspector-image-scanner/
Important
Avant d'effectuer les étapes suivantes, vous devez mettre à niveau Jenkins vers la version 2.387.3 ou supérieure pour que le plugin puisse s'exécuter.
Étape 1. Configurez un Compte AWS
Configurez un Compte AWS avec un rôle IAM qui autorise l'accès à l'API Amazon Inspector Scan. Pour obtenir des instructions, veuillez consulter Configuration d'un AWS compte pour utiliser l' CI/CD intégration Amazon Inspector.
Étape 2. Installez le plugin Jenkins d'Amazon Inspector
La procédure suivante décrit comment installer le plug-in Amazon Inspector Jenkins depuis le Jenkins tableau de bord.
-
Dans le tableau de bord Jenkins, choisissez Manage Jenkins, puis Manage Plugins.
-
Choisissez Disponible.
-
Dans l'onglet Available, recherchez Amazon Inspector Scans, puis installez le plugin.
(Facultatif) Étape 3. Ajoutez les informations d'identification du docker à Jenkins
Note
Ajoutez les informations d'identification du docker uniquement si l'image du docker se trouve dans un référentiel privé. Sinon, Ignorez cette étape.
La procédure suivante décrit comment ajouter des informations d'identification docker Jenkins depuis le Jenkins tableau de bord.
-
Dans le tableau de bord Jenkins, choisissez Manage Jenkins, Credentials, puis System.
-
Choisissez Informations d'identification globales, puis Ajouter des informations d'identification.
-
Pour Kind, sélectionnez Nom d'utilisateur avec mot de passe.
-
Pour Scope, sélectionnez Global (Jenkins, nœuds, éléments, tous les éléments enfants, etc.).
-
Entrez vos informations, puis cliquez sur OK.
(Facultatif) Étape 4. Ajouter des AWS informations d'identification
Note
Ajoutez des AWS informations d'identification uniquement si vous souhaitez vous authentifier en fonction d'un utilisateur IAM. Sinon, Ignorez cette étape.
La procédure suivante décrit comment ajouter des AWS informations d'identification depuis le Jenkins tableau de bord.
-
Dans le tableau de bord Jenkins, choisissez Manage Jenkins, Credentials, puis System.
-
Choisissez Informations d'identification globales, puis Ajouter des informations d'identification.
-
Pour Kind, sélectionnez AWS Credentials.
-
Entrez vos informations, y compris votre identifiant de clé d'accès et votre clé d'accès secrète, puis cliquez sur OK.
Étape 5. Ajouter le support CSS dans un Jenkins script
La procédure suivante décrit comment ajouter le support CSS dans un Jenkins script.
-
Redémarrez Jenkins.
-
Dans le tableau de bord, choisissez Manage Jenkins, Nodes, Built-In Node, puis Script Console.
-
Dans la zone de texte, ajoutez la ligne
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
, puis choisissez Exécuter.
Étape 6. Ajoutez Amazon Inspector Scan à votre build
Vous pouvez ajouter Amazon Inspector Scan à votre build en ajoutant une étape de compilation dans votre projet ou en utilisant le pipeline Jenkins déclaratif.
Amazon Inspector Scannez votre build en ajoutant une étape de compilation à votre projet
-
Sur la page de configuration, faites défiler la page vers le bas jusqu'à Build Steps, puis choisissez Add build step. Sélectionnez ensuite Amazon Inspector Scan.
-
Choisissez entre deux méthodes d'installation inspectors-sbomgen : automatique ou manuelle. L'option automatique permet au plugin de télécharger la version la plus récente. Cela garantit également que vous disposez toujours des dernières fonctionnalités, mises à jour de sécurité et corrections de bogues.
-
(Option 1) Choisissez Automatique pour télécharger la dernière version d'inspectors-sbomgen. Cette option détecte automatiquement le système d'exploitation et l'architecture du processeur actuellement utilisés.
-
(Option 2) Choisissez Manuel si vous souhaitez configurer le binaire Amazon Inspector SBOM Generator pour la numérisation. Si vous choisissez cette méthode, assurez-vous de fournir le chemin complet vers une version précédemment téléchargée de inspectors-sbomgen.
Pour plus d'informations, consultez Installation d'Amazon Inspector SBOM Generator (Sbomgen) dans Amazon Inspector SBOM Generator.
-
-
Pour terminer la configuration de l'étape de génération d'Amazon Inspector Scan, procédez comme suit :
-
Entrez votre identifiant d'image. L'image peut être locale, distante ou archivée. Les noms des images doivent respecter la convention de Docker dénomination. Si vous analysez une image exportée, indiquez le chemin d'accès au fichier tar attendu. Consultez les exemples de chemins d'identification d'image suivants :
-
Pour les conteneurs locaux ou distants :
NAME[:TAG|@DIGEST]
-
Pour un fichier tar :
/path/to/image.tar
-
-
Sélectionnez et par lequel Région AWSenvoyer la demande de numérisation.
-
(Facultatif) Dans le champ Nom de l'artefact du rapport, entrez un nom personnalisé pour les artefacts générés pendant le processus de création. Cela permet de les identifier et de les gérer de manière unique.
-
(Facultatif) Pour Skip files, spécifiez un ou plusieurs répertoires que vous souhaitez exclure de l'analyse. Envisagez cette option pour les répertoires qui n'ont pas besoin d'être analysés en raison de leur taille.
-
(Facultatif) Pour les informations d'identification Docker, sélectionnez votre Docker nom d'utilisateur. Procédez ainsi uniquement si l'image de votre conteneur se trouve dans un dépôt privé.
-
(Facultatif) Vous pouvez fournir les méthodes AWS d'authentification prises en charge suivantes :
-
(Facultatif) Pour le rôle IAM, fournissez un ARN de rôle (arn:aws:iam : :role/).
AccountNumber
RoleName
-
(Facultatif) Pour les informations d'identification AWS, spécifiez les AWS informations d'identification à authentifier en fonction d'un utilisateur IAM.
-
(Facultatif) Pour le nom du AWS profil, indiquez le nom du profil à authentifier à l'aide d'un nom de profil.
-
-
(Facultatif) Sélectionnez Activer les seuils de vulnérabilité. Avec cette option, vous pouvez déterminer si votre build échoue si une vulnérabilité analysée dépasse une valeur. Si toutes les valeurs sont égales
0
, le build réussit, quel que soit le nombre de vulnérabilités analysées. Pour le score EPSS, la valeur peut être comprise entre 0 et 1. Si une vulnérabilité analysée dépasse une valeur, la génération échoue et toutes les vulnérabilités CVEs dont le score EPSS est supérieur à la valeur s'affichent dans la console.
-
-
Choisissez Enregistrer.
Ajoutez Amazon Inspector Scan à votre build à l'aide du Jenkins pipeline déclaratif
Vous pouvez ajouter Amazon Inspector Scan à votre build à l'aide du pipeline déclaratif Jenkins automatiquement ou manuellement.
Pour télécharger automatiquement le pipeline SBOMGen déclaratif
-
Pour ajouter Amazon Inspector Scan à une version, utilisez l'exemple de syntaxe suivant. Remplacez-le
IMAGE_PATH
par le chemin d'accès à votre image (par exemplealpine:latest
),IAM_ROLE
par l'ARN du rôle IAM que vous avez configuré à l'étape 1 etID
par votre identifiant Docker d'identification si vous utilisez un référentiel privé. Vous pouvez éventuellement activer les seuils de vulnérabilité et spécifier des valeurs pour chaque 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 ]) } } } }
Pour télécharger manuellement le pipeline SBOMGen déclaratif
-
Pour ajouter Amazon Inspector Scan à une version, utilisez l'exemple de syntaxe suivant.
SBOMGEN_PATH
Remplacez-le par le chemin d'accès au générateur Amazon Inspector SBOM que vous avez installé à l'étape 3,IMAGE_PATH
par le chemin d'accès à votre image (par exemplealpine:latest
),IAM_ROLE
par l'ARN du rôle IAM que vous avez configuré à l'étape 1 etID
par votre identifiant Docker d'identification si vous utilisez un référentiel privé. Vous pouvez éventuellement activer les seuils de vulnérabilité et spécifier des valeurs pour chaque gravité.
Note
SbomgenPlacez-le dans le répertoire Jenkins et fournissez le chemin d'accès au répertoire Jenkins dans le plugin (par exemple). /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 ]) } } } }
Le plugin inclut des fonctionnalités permettant de gérer les failles de sécurité.
Liste CVE supprimée
Les scans peuvent parfois détecter des vulnérabilités qui ne constituent pas de véritables menaces. Pour éviter que ces faux positifs n'arrêtent votre build, vous pouvez les ajouter à une liste supprimée.
isSuppressedCveEnabled: true, suppressedCveList: 'CVE-2023-1234,CVE-2023-5678'
Cela ne tient pas compte des spécificités CVEs lorsque vous vérifiez si votre build doit échouer. Vous ne devez ajouter des faux positifs à la liste supprimée que si vous les avez corrigés. Une fois que vous avez ajouté ces vulnérabilités à la liste des vulnérabilités supprimées, elles apparaissent CVEs toujours dans votre rapport de sécurité, mais elles ne provoqueront pas d'échec de compilation.
Liste CVE en cas d'échec automatique
Pour les vulnérabilités de sécurité critiques, vous pouvez créer une liste qui entraîne toujours l'échec de votre build.
isAutoFailCveEnabled: true, autoFailCveList: 'CVE-2024-9999'
Cela entraîne toujours l'échec de vos builds, quels que soient les paramètres que vous avez activés. Vous ne devez créer cette liste que pour les problèmes de sécurité prioritaires qui ne doivent jamais être déployés. La liste remplace tous les autres paramètres de seuil pour une sécurité maximale.
Étape 7. Consultez votre rapport sur les vulnérabilités d'Amazon Inspector
-
Réalisez une nouvelle version de votre projet.
-
Une fois la génération terminée, sélectionnez un format de sortie parmi les résultats. Si vous sélectionnez HTML, vous avez la possibilité de télécharger une version JSON SBOM ou CSV du rapport. Voici un exemple de rapport HTML :

Note
Vous pouvez utiliser des scripts plus anciens, car le plugin prend en charge les anciens noms de paramètres. Cependant, des avertissements s'afficheront dans la console vous suggérant de mettre à jour ces paramètres vers des paramètres plus récents. Par exemple, si vous utilisezisThresholdEnabled
, vous recevrez un avertissement vous suggérant de mettre à jour le paramètre àisSeverityThresholdEnabled
.
Résolution des problèmes
Les erreurs suivantes sont courantes que vous pouvez rencontrer lors de l'utilisation du plug-in Amazon Inspector Scan pourJenkins.
Impossible de charger les informations d'identification ou erreur d'exception STS
Erreur :
InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.
Résolution
Obtenez aws_access_key_id
et aws_secret_access_key
pour votre AWS compte. Configuration aws_access_key_id
et mise aws_secret_access_key
en place~/.aws/credentials
.
Impossible de charger l'image à partir de sources tarball, locales ou distantes
Erreur :
2024/10/16 02:25:17 [ImageDownloadFailed]: failed to load image from tarball, local, or remote sources.
Note
Cette erreur peut se produire si le plug-in Jenkins ne peut pas lire l'image du conteneur, si l'image du conteneur est introuvable dans le Docker moteur et si l'image du conteneur n'est pas trouvée dans le registre de conteneurs distant.
Résolution :
Vérifiez les points suivants :
-
L'utilisateur du plugin Jenkins dispose d'autorisations de lecture pour l'image que vous souhaitez numériser.
-
L'image que vous souhaitez numériser est présente dans le Docker moteur.
-
L'URL de votre image distante est correcte.
-
Vous êtes authentifié auprès du registre distant (le cas échéant).
Erreur de chemin Inspector-SBOMGen
Erreur :
Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?
Résolution :
Suivez la procédure ci-dessous pour résoudre le problème.
-
Placez l'architecture du système d'exploitation correcte Inspector-SBOMGen dans le Jenkins répertoire Pour plus d'informations, consultez Amazon Inspector SBOM Generator.
-
Accordez des autorisations exécutables au binaire à l'aide de la commande suivante :
chmod +x inspector-sbomgen
. -
Fournissez le chemin de Jenkins machine correct dans le plugin, par exemple
/opt/folder/arm64/inspector-sbomgen
. -
Enregistrez la configuration et exécutez le Jenkins travail.