Skip to main content

Verificação de atestados offline

Os atestados de artefato podem ser verificados sem uma conexão de Internet.

Pré-requisitos

Antes de iniciar este guia, você deve gerar atestados de artefato para seus builds. Confira Usar atestados de artefatos para estabelecer a procedência de compilações.

Etapa 1: baixar o pacote de atestados

Primeiro, obtenha o pacote de atestado da API do atestado.

Você pode fazer isso com o seguinte comando em uma máquina que está online:

Bash
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME

Este é um exemplo de saída desse comando:

Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten

The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl

Etapa 2: baixar raízes confiáveis

Depois, obtenha o material de chaves das raízes confiáveis.

Os atestados de artefato usam a instância de bens públicos do Sigstore para repositórios públicos e a instância do Sigstore no GitHub para repositórios privados. É possível usar um comando para obter as duas raízes confiáveis:

Bash
gh attestation trusted-root > trusted_root.jsonl

Atualização de informações da raiz confiável em um ambiente offline

É uma prática recomendada gerar um novo arquivo de trusted_root.jsonl sempre que você importar um novo material assinado para seu ambiente off-line.

O material de chaves em trusted_root.jsonl não tem uma data do término interna, portanto, qualquer coisa assinada antes de você gerar o arquivo de raiz confiável continuará sendo verificada. Qualquer coisa assinada após a geração do arquivo será verificada até que a instância do Sigstore gire o respectivo material de chaves, o que geralmente acontece algumas vezes por ano. Você não saberá se o material de chaves foi revogado desde a última vez que gerou o arquivo de raiz confiável.

Etapa 3: fazer verificação offline

Agora, você está com tudo pronto para verificar o artefato offline.

Você deve importar para seu ambiente offline:

  • GitHub CLI
  • Seu artefato
  • O arquivo do pacote
  • O arquivo de raiz confiável

Depois, você pode fazer a verificação offline com o seguinte comando:

Bash
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl