

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
<a name="cicd-jenkins"></a>

 Le Jenkins plugin utilise le binaire [Amazon Inspector SBOM Generator](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#sbomgen-supported) 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/](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 puisse s'exécuter. 

## Étape 1. Configurez un Compte AWS
<a name="cicd-jenkins-enable"></a>

 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](configure-cicd-account.md). 

## Étape 2. Installez le plugin Jenkins d'Amazon Inspector
<a name="cicd-jenkins-install-jenkins-plugin"></a>

 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 **Manage Jenkins**, puis **Manage** Plugins. 

1.  Choisissez **Disponible**. 

1.  Dans l'onglet **Available**, recherchez **Amazon Inspector Scans**, puis installez le plugin. 

## (Facultatif) Étape 3. Ajoutez les informations d'identification du docker à Jenkins
<a name="cicd-jenkins-add-jenkins"></a>

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

1.  **Dans le tableau de bord Jenkins, choisissez **Manage Jenkins**, **Credentials**, puis System.** 

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

1.  Pour **Kind**, sélectionnez **Nom d'utilisateur avec mot de passe**. 

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

1.  Entrez vos informations, puis cliquez **sur OK**. 

## (Facultatif) Étape 4. Ajouter des AWS informations d'identification
<a name="cicd-jenkins-add-aws-credentials"></a>

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

1.  **Dans le tableau de bord Jenkins, choisissez **Manage Jenkins**, **Credentials**, puis System.** 

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

1.  Pour **Kind**, sélectionnez **AWS Credentials**. 

1.  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
<a name="cicd-jenkins-add-css-support"></a>

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

1.  Redémarrez Jenkins. 

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

1.  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
<a name="cicd-jenkins-add-inspector-scan"></a>

 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
<a name="w2aac39c17c19b5"></a>

1.  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**. 

1.  ****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. 

   1.  (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. 

   1.  (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](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html) Inspector SBOM](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#install-sbomgen) Generator. 

1.  Pour terminer la configuration de l'étape de génération d'Amazon Inspector Scan, procédez comme suit : 

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

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

      1.  Pour un fichier tar : `/path/to/image.tar` 

   1.  Sélectionnez et par lequel **Région AWS**envoyer la demande de numérisation. 

   1.  (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. 

   1.  (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. 

   1.  (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é. 

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

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

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

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

   1.  (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. 

1.  Choisissez **Enregistrer**. 

### Ajoutez Amazon Inspector Scan à votre build à l'aide du Jenkins pipeline déclaratif
<a name="w2aac39c17c19b7"></a>

 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\$1PATH* par le chemin d'accès à votre image (par exemple*alpine:latest*), *IAM\$1ROLE* 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 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\$1PATH*Remplacez-le par le chemin d'accès au générateur Amazon Inspector SBOM que vous avez installé à l'étape 3, *IMAGE\$1PATH* par le chemin d'accès à votre image (par exemple*alpine:latest*), *IAM\$1ROLE* 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 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'interrompent 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
<a name="cicd-jenkin-view-vulnerability-report"></a>

1.  Réalisez une nouvelle version de votre projet. 

1.  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 sur les vulnérabilités d'Amazon Inspector.\]](http://docs.aws.amazon.com/fr_fr/inspector/latest/user/images/report.png)


**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 utilisez`isThresholdEnabled`, vous recevrez un avertissement vous suggérant de mettre à jour le paramètre à`isSeverityThresholdEnabled`. 

## Résolution des problèmes
<a name="jenkins-troubleshooting"></a>

 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
<a name="w2aac39c17c23b5"></a>

**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
<a name="w2aac39c17c23b7"></a>

**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
<a name="w2aac39c17c23b9"></a>

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

1.  Placez l'architecture du système d'exploitation correcte Inspector-SBOMGen dans le Jenkins répertoire Pour plus d'informations, consultez [Amazon](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html) Inspector SBOM Generator. 

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

1.  Fournissez le chemin de Jenkins machine correct dans le plugin, par exemple`/opt/folder/arm64/inspector-sbomgen`. 

1.  Enregistrez la configuration et exécutez le Jenkins travail. 