

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como usar o plug-in Jenkins do Amazon Inspector
<a name="cicd-jenkins"></a>

 O plug-in Jenkins utiliza o binário do [Amazon Inspector SBOM Generator](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#sbomgen-supported) e a API Amazon Inspector Scan para gerar relatórios detalhados no final da compilação, para investigar e corrigir os riscos antes da implantação. Com o plug-in Jenkins do Amazon Inspector, você pode adicionar verificações de vulnerabilidade do Amazon Inspector ao pipeline do Jenkins. As verificações de vulnerabilidade do Amazon Inspector podem ser configuradas para aprovar ou reprovar execuções do pipeline com base na quantidade e na gravidade das vulnerabilidades detectadas. Você pode ver a versão mais recente do Jenkins plug-in no Jenkins mercado em [https://plugins.jenkins.io/amazon-inspector-image-scanner/](https://plugins.jenkins.io/amazon-inspector-image-scanner/). As etapas a seguir descrevem como configurar o plug-in  Jenkins do Amazon Inspector. 

**Importante**  
 Antes de concluir as etapas a seguir, você deve atualizar o Jenkins para a versão 2.387.3 ou superior para que o plug-in seja executado. 

## Etapa 1. Configurar um Conta da AWS
<a name="cicd-jenkins-enable"></a>

 Configure um Conta da AWS com uma função do IAM que permita o acesso à API Amazon Inspector Scan. Para instruções, consulte [Configurando uma AWS conta para usar a integração com o Amazon Inspector CI/CD](configure-cicd-account.md). 

## Etapa 2. Instalar o plug-in Jenkins do Amazon Inspector
<a name="cicd-jenkins-install-jenkins-plugin"></a>

 O procedimento a seguir descreve como instalar o plug-in Jenkins do Amazon Inspector usando o painel do Jenkins. 

1.  No painel do Jenkins, selecione **Gerenciar Jenkins**, em seguida, selecione **Gerenciar plug-ins**. 

1.  Selecione **Disponível**. 

1.  Na guia **Disponível**, pesquise **Amazon Inspector Scans**, em seguida, instale o plug-in. 

## (Opcional) Etapa 3. Adicionar credenciais do Docker ao Jenkins
<a name="cicd-jenkins-add-jenkins"></a>

**nota**  
 Adicione credenciais do Docker somente se a imagem do Docker estiver em um repositório privado. Caso contrário, ignore essa etapa. 

 O procedimento a seguir descreve como adicionar credenciais do Docker ao Jenkins pelo painel do Jenkins. 

1.  No painel do Jenkins, escolha **Gerenciar Jenkins**, **Credenciais**, em seguida, **Sistema**. 

1.  Selecione **Credenciais globais**, em seguida, **Adicionar credenciais**. 

1.  Em **Tipo**, selecione **Nome de usuário com senha**. 

1.  Em **Escopo**, selecione **Global (Jenkins, nós, itens, todos os itens secundários, etc.)**. 

1.  Insira os detalhes e selecione **OK**. 

## (Opcional) Etapa 4. Adicionar AWS credenciais
<a name="cicd-jenkins-add-aws-credentials"></a>

**nota**  
 Adicione AWS credenciais somente se quiser se autenticar com base em um usuário do IAM. Caso contrário, ignore essa etapa. 

 O procedimento a seguir descreve como adicionar AWS credenciais do Jenkins painel. 

1.  No painel do Jenkins, escolha **Gerenciar Jenkins**, **Credenciais**, em seguida, **Sistema**. 

1.  Selecione **Credenciais globais**, em seguida, **Adicionar credenciais**. 

1.  Em **Tipo**, selecione **Credenciais da AWS**. 

1.  Insira os detalhes, inclusive o **ID da chave de acesso** e a **Chave de acesso secreta**, e selecione **OK**. 

## Etapa 5. Adicionar suporte a CSS em um script do Jenkins
<a name="cicd-jenkins-add-css-support"></a>

 O procedimento a seguir descreve como adicionar suporte a CSS em um script do Jenkins. 

1.  Reinicie o Jenkins. 

1.  No painel, selecione **Gerenciar Jenkins**, **Nós**, **Nó integrado**, em seguida, **Console do script**. 

1.  Na caixa de texto, adicione a linha `System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")` e selecione **Executar**. 

## Etapa 6. Adicionar o Amazon Inspector Scan à sua criação
<a name="cicd-jenkins-add-inspector-scan"></a>

 Você pode adicionar o Amazon Inspector Scan à criação inserindo uma etapa de criação ao projeto ou usando o pipeline declarativo Jenkins. 

### Adicionar o Amazon Inspector Scan à sua criação ao adicionar uma etapa de criação no projeto.
<a name="w2aac39c17c19b5"></a>

1.  Na página de configuração, role a página para baixo até **Etapas de criação** e selecione **Adicionar etapa de criação**. Em seguida, selecione **Amazon Inspector Scan**. 

1.  Escolha entre dois métodos de instalação do inspector-sbomgen: **Automático** ou **Manual**. A opção automática permite que o plug-in baixe a versão mais recente. Isso também garante que você sempre tenha os recursos, atualizações de segurança e correções de erros mais recentes. 

   1.  (Opção 1) Selecione **Automático** para baixar a versão mais recente do inspector-sbomgen. Essa opção detecta automaticamente o sistema operacional e a arquitetura da CPU que estão em uso no momento. 

   1.  (Opção 2) Selecione **Manual** se quiser configurar o binário do Amazon Inspector SBOM Generator para verificação. Se você escolher esse método, forneça o caminho completo para uma versão do inspector-sbomgen baixada anteriormente. 

    Para obter mais informações, consulte [Instalação do Amazon Inspector SBOM Generator (Sbomgen)](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#install-sbomgen) no [Amazon Inspector SBOM Generator](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html). 

1.  Faça o seguinte para realizar a configuração da etapa de criação do Amazon Inspector Scan: 

   1.  Insira o **ID da imagem**. A imagem pode ser local, remota ou arquivada. Os nomes das imagens devem seguir a convenção de nomenclatura do Docker. Se estiver analisando uma imagem exportada, forneça o caminho para o arquivo tar previsto. Veja os seguintes exemplos de caminhos de ID da imagem: 

      1.  Para contêineres locais ou remotos: `NAME[:TAG|@DIGEST]` 

      1.  Para um arquivo tar: `/path/to/image.tar` 

   1.  Selecione uma **Região da AWS** para enviar a solicitação de escaneamento. 

   1.  (Opcional) Em **Nome do artefato do relatório**, insira um nome personalizado para os artefatos gerados durante o processo de criação. Isso ajuda a identificá-los e gerenciá-los de forma exclusiva. 

   1.  (Opcional) Em **Ignorar arquivos**, especifique um ou mais diretórios que você deseja excluir da verificação. Considere essa opção para diretórios que não precisam ser verificados devido ao tamanho. 

   1.  (Opcional) Para **credenciais do Docker**, selecione o nome de usuário Docker. Faça isso apenas se a imagem de contêiner estiver em um repositório privado. 

   1.  (Opcional) Você pode fornecer os seguintes métodos de AWS autenticação compatíveis: 

      1.  (Opcional) Para a **função IAM**, forneça um ARN da função (arn:aws:iam: ::role/). *AccountNumber* *RoleName* 

      1.  (Opcional) Para **credenciais da AWS**, especifique as AWS credenciais para autenticação com base em um usuário do IAM. 

      1.  (Opcional) Em **Nome do perfil da AWS **, forneça o nome de um perfil para autenticar usando um nome de perfil. 

   1.  (Opcional) Selecione **Ativar limites de vulnerabilidade**. Com essa opção, você pode avaliar se a compilação falhará se uma vulnerabilidade verificada exceder um valor. Se todos os valores forem iguais a `0`, a compilação será bem-sucedida, independentemente de quantas vulnerabilidades sejam verificadas. Para a pontuação do EPSS, o valor pode ser de 0 a 1. Se uma vulnerabilidade verificada exceder um valor, a compilação falhará e todas CVEs com uma pontuação EPSS acima do valor serão exibidas no console. 

1.  Escolha **Salvar**. 

### Adicionar o Amazon Inspector Scan à criação usando o pipeline declarativo do Jenkins
<a name="w2aac39c17c19b7"></a>

 Você pode adicionar o Amazon Inspector Scan à criação usando o pipeline declarativo do Jenkins de forma automática ou manual. 

**Para baixar automaticamente o pipeline SBOMGen declarativo**
+  Para adicionar o Amazon Inspector Scan a uma criação, use o exemplo de sintaxe a seguir. *IMAGE\$1PATH*Substitua pelo caminho para sua imagem (como*alpine:latest*), *IAM\$1ROLE* pelo ARN da função do IAM que você configurou na etapa 1 e *ID* pelo seu ID de Docker credencial se você estiver usando um repositório privado. Se desejar, você poderá ativar os limites de vulnerabilidade e especificar valores para cada grau. 

```
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
                ])
            }
        }
    }
}
```

**Para baixar manualmente o pipeline SBOMGen declarativo**
+  Para adicionar o Amazon Inspector Scan a uma criação, use o exemplo de sintaxe a seguir. *SBOMGEN\$1PATH*Substitua pelo caminho para o Amazon Inspector SBOM Generator que você instalou na etapa 3, *IMAGE\$1PATH* pelo caminho para sua imagem (como*alpine:latest*), *IAM\$1ROLE* pelo ARN da função do IAM que você configurou na etapa 1 e *ID* pelo seu ID de Docker credencial se você estiver usando um repositório privado. Se desejar, você poderá ativar os limites de vulnerabilidade e especificar valores para cada grau. 

**nota**  
 Coloque Sbomgen no diretório Jenkins e forneça o caminho para o diretório Jenkins no plug-in (como*/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
                ])
            }
        }
    }
}
```

 O plug-in inclui recursos para gerenciar vulnerabilidades de segurança. 

**Lista de CVEs suprimidas**  
 Ocasionalmente, as verificações podem detectar vulnerabilidades que não são ameaças reais. Para evitar que esses falsos positivos interrompam sua compilação, adicione-os a uma lista de *supressão*. 

```
isSuppressedCveEnabled: true,
suppressedCveList: 'CVE-2023-1234,CVE-2023-5678'
```

 Isso ignora as especificidades CVEs ao verificar se sua compilação deve falhar. Você só deve adicionar falsos positivos à lista de supressão caso já os tenha solucionado. Depois de adicionar essas vulnerabilidades à lista suprimida, elas CVEs ainda aparecerão no seu relatório de segurança, mas não causarão falhas na compilação. 

**Lista de CVEs com falha automática**  
 Para vulnerabilidades críticas de segurança, você pode criar uma lista que sempre fará a compilação falhar. 

```
isAutoFailCveEnabled: true,
autoFailCveList: 'CVE-2024-9999'
```

 Isso fará com que as compilações sempre falhem, independentemente das configurações que você tiver habilitado. Você só deve criar essa lista para problemas de segurança de alta prioridade que jamais devem ser implantados. A lista substitui todas as outras configurações de limite, garantindo a máxima segurança. 

## Etapa 7. Veja o relatório de vulnerabilidade do Amazon Inspector
<a name="cicd-jenkin-view-vulnerability-report"></a>

1.  Realize nova compilação do projeto. 

1.  Quando a criação for concluída, selecione um formato de saída nos resultados. Se você selecionar HTML, poderá fazer download da SBOM JSON ou da versão CSV do relatório. Este é um exemplo de relatório HTML: 

![\[Amostra de relatório de vulnerabilidade do Amazon Inspector.\]](http://docs.aws.amazon.com/pt_br/inspector/latest/user/images/report.png)


**nota**  
 Você pode usar scripts mais antigos, pois o plug-in é compatível com nomes de parâmetros antigos. No entanto, você receberá avisos no console sugerindo atualizar esses parâmetros para nomes mais novos. Por exemplo, se usar `isThresholdEnabled`, você receberá um aviso sugerindo atualizar o parâmetro para `isSeverityThresholdEnabled`. 

## Solução de problemas
<a name="jenkins-troubleshooting"></a>

 Veja a seguir os erros comuns que você pode encontrar ao usar o plug-in Amazon Inspector Scan para o Jenkins. 

### Falha ao carregar credenciais ou erro de exceção do STS
<a name="w2aac39c17c23b5"></a>

**Erro:**  
 `InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.` 

**Resolução**  
 Obtenha `aws_access_key_id` e `aws_secret_access_key` para sua AWS conta. Configure `aws_access_key_id` e `aws_secret_access_key` em `~/.aws/credentials`. 

### Falha ao carregar a imagem de origens do tarball, locais ou remotas
<a name="w2aac39c17c23b7"></a>

**Erro:**  
 `2024/10/16 02:25:17 [ImageDownloadFailed]: failed to load image from tarball, local, or remote sources.` 

**nota**  
 Esse erro pode ocorrer se o plug-in do Jenkins não conseguir ler a imagem de contêiner, se a imagem de contêiner não for encontrada no mecanismo do Docker e se a imagem de contêiner não for encontrada no registro remoto do contêiner. 

**Resolução:**  
 Verifique o seguinte: 
+  O usuário do plug-in do Jenkins tem permissões de leitura para a imagem que você deseja verificar. 
+  A imagem que você deseja verificar está presente no mecanismo do Docker. 
+  O URL da imagem remota está correto. 
+  Você se autenticou no registro remoto (se aplicável). 

### Erro de caminho do Inspector-sbomgen
<a name="w2aac39c17c23b9"></a>

**Erro:**  
 `Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?` 

**Resolução:**  
 Para resolver esse problema, conclua o seguinte procedimento. 

1.  Coloque o Inspector-sbomgen da arquitetura do sistema operacional correto no diretório do Jenkins. Para ter mais informações, consulte [Amazon Inspector SBOM Generator](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html). 

1.  Conceda permissões executáveis ao binário usando o seguinte comando: `chmod +x inspector-sbomgen`. 

1.  Forneça o caminho correto da máquina do Jenkins no plug-in, como `/opt/folder/arm64/inspector-sbomgen`. 

1.  Salve a configuração e execute o trabalho do Jenkins. 