Pular para o conteúdo

Adicionar o step na pipeline

O Security Gate é um template de steps do Azure DevOps. Ele roda logo depois do scan, no mesmo job, e antes do push da imagem e do deploy. Assim, no modo fail, uma imagem fora do prazo não chega ao registry.

No Workspace: AppSec → Config Stack → Pipeline → aba Security Gate.

Campo Para que serve Padrão
Application name Nome da aplicação. Vira o parâmetro appName e aparece no nome do step: [<appName>] Leavory Security Gate. my-application
Trivy report source De onde o step lê o relatório (ver abaixo). Leavory Trivy manifest
Trivy JSON report path Só na opção Custom. Caminho do JSON no agente. Aceita vários arquivos separados por vírgula. $(Build.ArtifactStagingDirectory)/trivy.json
Max days for CRITICAL Limite em dias para CRITICAL. -1 desliga. 7
Max days for HIGH Limite em dias para HIGH. -1 desliga. 30
When over the limit Fail the pipeline para o build. Warn only deixa o build amarelo (Succeeded with issues). Fail the pipeline
Only count vulnerabilities with a fix available Ignora o que ainda não tem versão corrigida. Desmarcado

Trivy report source:

Opção Quando usar
Leavory Trivy manifest (same job) Você usa os steps de scan gerados na aba Manifest generator. O Security Gate encontra os relatórios sozinho, pelo mesmo appName.
Custom path to a Trivy JSON report Você já gera o relatório JSON de outra forma. Informe o caminho do arquivo.

Clique em Download .yml (ou Copy) para baixar o security-gate-steps.yml.

Coloque o arquivo no repositório da aplicação, por exemplo em templates/security-gate-steps.yml, e confirme que a variável secreta LEAVORY_TOKEN existe na pipeline.

Com o manifest de scan do Leavory:

steps:
# ... build e scan da imagem
- template: templates/security-gate-steps.yml
parameters:
appName: 'minha-aplicacao' # o mesmo appName do template de scan
# depois: push da imagem, deploy...

Com um relatório JSON que a sua pipeline já gera:

steps:
# ... o step que gera $(Build.ArtifactStagingDirectory)/trivy.json
- template: templates/security-gate-steps.yml
parameters:
appName: 'minha-aplicacao'
trivyReport: '$(Build.ArtifactStagingDirectory)/trivy.json'

Qualquer parâmetro pode ser trocado na chamada, sem gerar o arquivo de novo.

Parâmetro O que é
appName Nome da aplicação
trivyReport Só na opção Custom: caminho(s) do relatório JSON
maxDaysCritical / maxDaysHigh Limites em dias (-1 desliga)
mode fail ou warn
onlyWithFix true para contar só o que tem correção
image Imagem do Security Gate. latest é sempre a mais nova; use uma tag de versão (ex.: v20261013.2) para fixar

Regra diferente só para uma pipeline:

- template: templates/security-gate-steps.yml
parameters:
appName: 'minha-aplicacao'
maxDaysCritical: 3
maxDaysHigh: 15
mode: warn

Nesses casos o step mostra um aviso e o build continua:

Aviso Causa
LEAVORY_TOKEN secret variable not set, check skipped. A variável não existe ou não é secreta com esse nome
no Trivy JSON report found, check skipped. O relatório não foi gerado ou o caminho está errado
could not run the check (exit 2), skipped. Token recusado (inválido ou revogado) ou base indisponível
could not run the check (exit 125), skipped. O agente não conseguiu baixar ou iniciar a imagem