Skip to content
Latchkey

O Que É Assinatura de Imagem? Provando Que uma Imagem de Container É Genuína

A assinatura de imagem anexa uma assinatura criptográfica a uma imagem de container para que os consumidores possam verificar que ela veio de um builder confiável e não foi alterada.

Uma imagem de container é apenas bytes em um registry, e registries podem ser comprometidos ou imagens trocadas. A assinatura de imagem vincula uma assinatura verificável ao conteúdo exato da imagem. Antes de um cluster executar uma imagem, ele pode verificar a assinatura e recusar qualquer coisa não assinada ou adulterada. É assim que você impede que uma imagem maliciosa se infiltre na produção.

A que a assinatura realmente se vincula

Uma assinatura é feita sobre o digest da imagem, o hash de seu conteúdo exato, não sobre sua tag. Tags são mutáveis e podem ser reapontadas; o digest não. Assinar o digest significa que a assinatura é válida apenas para aqueles bytes precisos.

O fluxo de assinar e verificar

  • O pipeline de build assina a imagem após construí-la.
  • A assinatura é armazenada junto com a imagem no registry.
  • No momento do deploy, um admission controller verifica a assinatura.
  • Imagens não assinadas ou incompatíveis são rejeitadas.

Aplicando isso no cluster

A assinatura só ajuda se algo a verifica. Políticas de admission (por exemplo via Sigstore policy controllers ou Kyverno) verificam assinaturas antes de um pod iniciar, então um atacante que faz push de uma imagem maliciosa não consegue agendá-la.

Combinando com attestations

Uma assinatura prova que a imagem veio de uma fonte confiável. Attestations sobrepostas dizem mais: qual commit a construiu, qual é seu SBOM, quais scans ela passou. Juntas elas permitem que um gate tome uma decisão real de confiança.

Assinando com segurança no CI

A assinatura keyless via Sigstore permite que o pipeline assine com sua workload identity e sem chave armazenada. Executar o build e a assinatura em um runner isolado e efêmero mantém a identidade de assinatura longe de outros jobs e longe de código controlado por atacantes.

Principais conclusões

  • A assinatura de imagem vincula uma assinatura ao digest imutável de uma imagem.
  • Admission controllers verificam assinaturas e rejeitam imagens não assinadas ou adulteradas.
  • A assinatura keyless mais attestations permitem que deploy gates tomem decisões reais de confiança.

Guias relacionados