View a markdown version of this page

Utilisation de l'Amazon Inspector Jenkins . - Amazon Inspector

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 de l'Amazon Inspector Jenkins .

Le Jenkins plug-in exploite 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 les risques et y remédier avant le déploiement. Avec le Jenkins plug-in Amazon Inspector, vous pouvez ajouter des analyses de vulnérabilité Amazon Inspector à votre Jenkins pipeline. Les analyses de vulnérabilités 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 la place de Jenkins marché à l'adresse https://plugins.jenkins.io/amazon-inspector-image-scanner/. Les étapes suivantes décrivent comment configurer le Jenkins plug-in Amazon Inspector.

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

Étape 1. Configurez un Compte AWS

Configurez un Compte AWS avec un rôle IAM qui permet d'accéder à 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 plug-in Amazon Inspector Jenkins

La procédure suivante décrit comment installer le plug-in Amazon Inspector Jenkins depuis le Jenkins tableau de bord.

  1. Dans le tableau de bord Jenkins, choisissez Gérer Jenkins, puis choisissez Gérer les plugins.

  2. Choisissez Disponible.

  3. Dans l'onglet Disponible, recherchez Amazon Inspector Scans, puis installez le plug-in.

(Facultatif) Étape 3. Ajoutez les informations d'identification Docker à Jenkins

Note

N'ajoutez des informations d'identification Docker que si l'image Docker se trouve dans un référentiel privé. Sinon, Ignorez cette étape.

La procédure suivante explique comment ajouter des informations d'identification Docker Jenkins depuis le Jenkins tableau de bord.

  1. Dans le tableau de bord Jenkins, choisissez Gérer Jenkins, Credentials, puis System.

  2. Choisissez Informations d'identification globales, puis Ajouter des informations d'identification.

  3. Dans Kind, sélectionnez Nom d'utilisateur avec mot de passe.

  4. Pour Scope, sélectionnez Global (Jenkins, nœuds, éléments, tous les éléments enfants, etc.).

  5. Entrez vos informations, puis cliquez sur OK.

(Facultatif) Étape 4. Addition AWS informations d’identification

Note

Ajoutez des AWS informations d'identification uniquement si vous souhaitez vous authentifier sur la base 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.

  1. Dans le tableau de bord Jenkins, choisissez Gérer Jenkins, Credentials, puis System.

  2. Choisissez Informations d'identification globales, puis Ajouter des informations d'identification.

  3. Dans Kind, sélectionnez AWS Credentials.

  4. Entrez vos informations, y compris votre identifiant de clé d'accès et votre clé d'accès secrète, puis choisissez OK.

Étape 5. Ajoutez le support CSS dans un Jenkins script

La procédure suivante décrit comment ajouter le support CSS dans un Jenkins script.

  1. Redémarrez Jenkins.

  2. Dans le tableau de bord, choisissez Manage Jenkins, Nodes, Built-In Node, puis Script Console.

  3. Dans la zone de texte, ajoutez la ligneSystem.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 génération à votre projet ou en utilisant le pipeline Jenkins déclaratif.

Amazon Inspector Scannez votre build en ajoutant une étape de génération à votre projet

  1. Sur la page de configuration, faites défiler la page jusqu'à Étapes de génération, puis choisissez Ajouter une étape de génération. Sélectionnez ensuite Amazon Inspector Scan.

  2. Choisissez entre deux méthodes d'installation inspector-sbomgen : automatique ou manuelle. L'option automatique permet au plugin de télécharger la version la plus récente. Il garantit également que vous disposez toujours des dernières fonctionnalités, mises à jour de sécurité et corrections de bogues.

    1. (Option 1) Choisissez Automatique pour télécharger la dernière version d'inspector-sbomgen. Cette option détecte automatiquement le système d'exploitation et l'architecture du processeur actuellement utilisés.

    2. (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 d'inspector-sbomgen.

    Pour plus d'informations, consultez Installation du générateur Amazon Inspector SBOM (Sbomgen) dans Amazon Inspector SBOM Generator.

  3. Procédez comme suit pour terminer la configuration de l'étape de création d'Amazon Inspector Scan :

    1. Entrez votre identifiant d'image. L'image peut être locale, distante ou archivée. Les noms des images doivent suivre 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 :

      1. Pour les conteneurs locaux ou distants : NAME[:TAG|@DIGEST]

      2. Pour un fichier tar : /path/to/image.tar

    2. Sélectionnez et Région AWS pour envoyer la demande de numérisation.

    3. (Facultatif) Dans Nom de l'artefact du rapport, entrez un nom personnalisé pour les artefacts générés lors du processus de création. Cela permet de les identifier et de les gérer de manière unique.

    4. (Facultatif) Pour les fichiers Ignorer, 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 scannés en raison de leur taille.

    5. (Facultatif) Pour les informations d'identification Docker, sélectionnez votre Docker nom d'utilisateur. Effectuez cette opération uniquement si l'image de votre conteneur se trouve dans un référentiel privé.

    6. (Facultatif) Vous pouvez fournir les méthodes AWS d'authentification prises en charge suivantes :

      1. (Facultatif) Pour le rôle IAM, indiquez un ARN de rôle (arn:aws:iam : :role/). AccountNumber RoleName

      2. (Facultatif) Pour les informations d'identification AWS, spécifiez les AWS informations d'identification à authentifier en fonction d'un utilisateur IAM.

      3. (Facultatif) Pour le nom du AWS profil, indiquez le nom d'un profil à authentifier à l'aide d'un nom de profil.

    7. (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 égales0, la compilation 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 compilation échoue et tous les CVE dont le score EPSS est supérieur à cette valeur s'affichent dans la console.

  4. 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 déclaratif SBOMgen
  • 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 et ID 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 niveau de 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 déclaratif SBOMgen
  • Pour ajouter Amazon Inspector Scan à une version, utilisez l'exemple de syntaxe suivant. Remplacez-le SBOMGEN_PATH par le chemin d'accès au générateur SBOM Amazon Inspector 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 et ID 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 niveau de gravité.

Note

SbomgenPlacez-le dans le répertoire Jenkins et indiquez 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 ignore les CVE spécifiques lors de la vérification 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 supprimée, les CVE apparaissent toujours dans votre rapport de sécurité, mais elles n'entraîneront pas d'échec de compilation.

Auto-Fail Liste CVE

Pour les failles 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. Afficher votre rapport de vulnérabilité Amazon Inspector

  1. Complétez une nouvelle version de votre projet.

  2. 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 :

Exemple de rapport de vulnérabilité d'Amazon Inspector.
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 de nouveaux paramètres. Par exemple, si vous utilisezisThresholdEnabled, vous recevrez un message d'avertissement vous suggérant de mettre à jour le paramètre enisSeverityThresholdEnabled.

Résolution des problèmes

Voici les erreurs 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. Configurez aws_access_key_id et aws_secret_access_key connectez~/.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 sur 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).

Inspector-sbomgen erreur de chemin

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 suivante pour résoudre le problème.

  1. Placer l'architecture du système d'exploitation correcte Inspector-sbomgen dans le Jenkins répertoire Pour plus d'informations, consultez Amazon Inspector SBOM Generator.

  2. Accordez des autorisations exécutables au fichier binaire à l'aide de la commande suivante :chmod +x inspector-sbomgen.

  3. Fournissez le chemin correct de la Jenkins machine dans le plugin, tel que/opt/folder/arm64/inspector-sbomgen.

  4. Enregistrez la configuration et exécutez la Jenkins tâche.