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
O plug-in Jenkins utiliza o binário do Amazon Inspector SBOM Generator 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/
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
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 .
Etapa 2. Instalar o plug-in Jenkins do Amazon Inspector
O procedimento a seguir descreve como instalar o plug-in Jenkins do Amazon Inspector usando o painel do Jenkins.
-
No painel do Jenkins, selecione Gerenciar Jenkins, em seguida, selecione Gerenciar plug-ins.
-
Selecione Disponível.
-
Na guia Disponível, pesquise Amazon Inspector Scans, em seguida, instale o plug-in.
(Opcional) Etapa 3. Adicionar credenciais do Docker ao Jenkins
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.
-
No painel do Jenkins, escolha Gerenciar Jenkins, Credenciais, em seguida, Sistema.
-
Selecione Credenciais globais, em seguida, Adicionar credenciais.
-
Em Tipo, selecione Nome de usuário com senha.
-
Em Escopo, selecione Global (Jenkins, nós, itens, todos os itens secundários, etc.).
-
Insira os detalhes e selecione OK.
(Opcional) Etapa 4. Adicionar AWS credenciais
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.
-
No painel do Jenkins, escolha Gerenciar Jenkins, Credenciais, em seguida, Sistema.
-
Selecione Credenciais globais, em seguida, Adicionar credenciais.
-
Em Tipo, selecione Credenciais da AWS.
-
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
O procedimento a seguir descreve como adicionar suporte a CSS em um script do Jenkins.
-
Reinicie o Jenkins.
-
No painel, selecione Gerenciar Jenkins, Nós, Nó integrado, em seguida, Console do script.
-
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
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.
-
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.
-
Escolha entre dois métodos de instalação do inspector-sbomgen: Automático ou Manual. A opção automática permite que o plugin baixe a versão mais recente. Ele também garante que você sempre tenha os recursos, as atualizações de segurança e as correções de erros mais recentes.
-
(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 atualmente em uso.
-
(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) no Amazon Inspector SBOM Generator.
-
-
Faça o seguinte para realizar a configuração da etapa de criação do Amazon Inspector Scan:
-
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:
-
Para contêineres locais ou remotos:
NAME[:TAG|@DIGEST]
-
Para um arquivo tar:
/path/to/image.tar
-
-
Selecione uma Região da AWS para enviar a solicitação de escaneamento.
-
(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.
-
(Opcional) Em Ignorar arquivos, especifique um ou mais diretórios que você deseja excluir do escaneamento. Considere essa opção para diretórios que não precisam ser digitalizados devido ao tamanho.
-
(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.
-
(Opcional) Você pode fornecer os seguintes métodos de AWS autenticação compatíveis:
-
(Opcional) Para a função IAM, forneça um ARN da função (arn:aws:iam: ::role/).
AccountNumber
RoleName
-
(Opcional) Para credenciais da AWS, especifique as AWS credenciais para autenticação com base em um usuário do IAM.
-
(Opcional) Em Nome do perfil da AWS , forneça o nome de um perfil para autenticar usando um nome de perfil.
-
-
(Opcional) Selecione Ativar limites de vulnerabilidade. Com essa opção, você pode determinar se sua compilação falhará se uma vulnerabilidade verificada exceder um valor. Se todos os valores forem iguais
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.
-
-
Escolha Salvar.
Adicionar o Amazon Inspector Scan à criação usando o pipeline declarativo do Jenkins
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_PATH
Substitua pelo caminho para sua imagem (comoalpine:latest
),IAM_ROLE
pelo ARN da função do IAM que você configurou na etapa 1 eID
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_PATH
Substitua pelo caminho para o Amazon Inspector SBOM Generator que você instalou na etapa 3,IMAGE_PATH
pelo caminho para sua imagem (comoalpine:latest
),IAM_ROLE
pelo ARN da função do IAM que você configurou na etapa 1 eID
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 CVE suprimida
Ocasionalmente, os escaneamentos podem detectar vulnerabilidades que não são ameaças reais. Para evitar que esses falsos positivos interrompam sua compilação, você pode adicioná-los a uma lista suprimida.
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 suprimida se os tiver abordado. 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 CVE com falha automática
Para vulnerabilidades críticas de segurança, você pode criar uma lista que sempre faz com que sua compilação falhe.
isAutoFailCveEnabled: true, autoFailCveList: 'CVE-2024-9999'
Isso sempre faz com que suas compilações falhem, independentemente das configurações ativadas. Você só deve criar essa lista para problemas de segurança de alta prioridade que nunca devem ser implantados. A lista substitui todas as outras configurações de limite para máxima segurança.
Etapa 7. Veja o relatório de vulnerabilidade do Amazon Inspector
-
Realize nova compilação do projeto.
-
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:

nota
Você pode usar scripts mais antigos, pois o plug-in suporta nomes de parâmetros antigos. No entanto, você encontrará avisos no console sugerindo que você atualize esses parâmetros para os mais novos. Por exemplo, se você usarisThresholdEnabled
, encontrará um aviso sugerindo que você atualize o parâmetro paraisSeverityThresholdEnabled
.
Solução de problemas
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
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
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
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.
-
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.
-
Conceda permissões executáveis ao binário usando o seguinte comando:
chmod +x inspector-sbomgen
. -
Forneça o caminho correto da máquina do Jenkins no plug-in, como
/opt/folder/arm64/inspector-sbomgen
. -
Salve a configuração e execute o trabalho do Jenkins.