
Componente GitLab CI para varredura Trivy
Um componente de CI do GitLab para o Trivy — o scanner de segurança completo que abrange imagens de contêiner, sistemas de arquivos, repositórios, clusters Kubernetes, SBOMs e conformidade de licenças. Insira esses modelos diretamente em seus pipelines para obter varreduras repetíveis, relatórios nativos do GitLab e artefatos portáteis com quase nenhum script de shell.
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
stages:
- test
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:remote"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/app:latest"
severity: "CRITICAL,HIGH,MEDIUM"
exit_on_vulnerability: true
stages:
- test
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:local"
TRIVY_SCAN_LOCAL_IMAGES: "dist/"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: false
stages:
- test
Cada modelo abaixo lista suas entradas disponíveis e padrões conforme definido na especificação do componente, seguido por um exemplo mínimo funcional.
templates/main.yml| Entrada | Descrição | Padrão |
|---|---|---|
job_name | Nome do job CI | "trivy scanning" |
stage | Estágio do pipeline | "test" |
image | Imagem do contêiner executando o Trivy | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_NEEDED_STAGE | Estágio que deve terminar antes da execução do Trivy | "build" |
TRIVY_SCAN_REMOTE_IMAGE | Imagem remota para varredura | "" |
TRIVY_SCAN_LOCAL_IMAGES | Caminho para entradas tar/OCI (procura . quando vazio) | "" |
TRIVY_SCANNERS | Scanners separados por vírgula | "vuln,secret,misconfig" |
severity | Severidades a incluir | "CRITICAL,HIGH" |
exit_on_vulnerability | Falhar job quando problemas forem encontrados | true |
TRIVY_EXTRA_ARGS | Sinalizadores adicionais de CLI | "" |
allow_failure | Permitir falha do job sem falhar o pipeline | false |
Exemplo
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "trivy:basic"
TRIVY_SCAN_REMOTE_IMAGE: "nginx:latest"
templates/target_container.yml| Entrada | Descrição | Padrão |
|---|---|---|
job_name | Nome do job CI | "trivy:scan:containers" |
stage | Estágio do pipeline | "test" |
image | Imagem do Trivy | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SCAN_REMOTE_IMAGE | Referência de imagem remota | "" |
TRIVY_SCAN_LOCAL_IMAGES | Diretório/tar para varreduras locais | "" |
TRIVY_SCANNERS | Scanners habilitados | "vuln,secret,misconfig" |
TRIVY_IMAGE_SRC | Backend da fonte da imagem (remote/docker/...) | "" |
severity | Severidades | "CRITICAL,HIGH" |
exit_on_vulnerability | Falhar ao corresponder severidade | true |
TRIVY_IGNORE_UNFIXED | Ignorar problemas sem correções | true |
TRIVY_PKG_TYPES | Tipos de pacotes | "os,library" |
TRIVY_VULN_TYPE | Alias obsoleto para tipos de pkg | "" |
TRIVY_TIMEOUT | Timeout do comando | "10m" |
TRIVY_EXTRA_ARGS | Argumentos extras de CLI | "" |
TRIVY_DB_REPOSITORY | Espelho de banco de dados personalizado | "" |
TRIVY_JAVA_DB_REPOSITORY | Espelho de banco de dados Java personalizado | "" |
TRIVY_SKIP_FILES | Exclusões de glob de arquivos | "" |
TRIVY_SKIP_DIRS | Exclusões de diretórios | "" |
allow_failure | Permitir falha sem falhar o pipeline | false |
Exemplo
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_container@latest
inputs:
job_name: "trivy:containers"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/service:latest"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: true
templates/target_filesystem.yml| Entrada | Descrição | Padrão |
|---|---|---|
job_name | Nome do job CI | "trivy:scan:filesystem" |
stage | Estágio do pipeline | "test" |
image | Imagem do Trivy | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_FS_PATH | Arquivo ou diretório para varredura | "." |
TRIVY_SCANNERS | Scanners habilitados | "vuln,secret" |
severity | Severidades | "CRITICAL,HIGH" |
exit_on_vulnerability | Falhar ao corresponder severidade | true |
TRIVY_IGNORE_UNFIXED | Ignorar problemas não corrigidos | true |
TRIVY_PKG_TYPES | Tipos de pacotes | "os,library" |
TRIVY_TIMEOUT | Timeout | "10m" |
TRIVY_SKIP_FILES | Globs de arquivos para ignorar | "" |
TRIVY_SKIP_DIRS | Diretórios para ignorar | "" |
TRIVY_EXTRA_ARGS | Argumentos extras de CLI | "" |
TRIVY_REPORT_BASENAME | Nome base do artefato | "filesystem-scan" |
allow_failure | Permitir falha do job | false |
Exemplo
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_filesystem@latest
inputs:
TRIVY_FS_PATH: "services/api"
TRIVY_SCANNERS: "vuln,misconfig,secret"
templates/target_rootfs.yml| Entrada | Descrição | Padrão |
|---|---|---|
job_name | Nome do job | "trivy:scan:rootfs" |
stage | Estágio | "test" |
image | Imagem do Trivy | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_ROOTFS_PATH | Caminho do sistema de arquivos raiz | "/" |
TRIVY_SCANNERS | Scanners | "vuln,secret" |
severity | Severidades | "CRITICAL,HIGH" |
exit_on_vulnerability | Falhar job em achados | true |
TRIVY_IGNORE_UNFIXED | Ignorar não corrigidos | true |
TRIVY_PKG_TYPES | Tipos de pacotes | "os,library" |
TRIVY_TIMEOUT | Timeout | "10m" |
TRIVY_SKIP_FILES | Arquivos para ignorar | "" |
TRIVY_SKIP_DIRS | Diretórios para ignorar | "" |
TRIVY_EXTRA_ARGS | Argumentos extras | "" |
TRIVY_REPORT_BASENAME | Nome base do artefato | "rootfs-scan" |
allow_failure | Permitir falha | false |
Exemplo
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_rootfs@latest
inputs:
TRIVY_ROOTFS_PATH: "/mnt/root"
TRIVY_SCANNERS: "vuln"
templates/target_repository.yml