Como usar o comando docker trust revoke para remover assinaturas de imagens

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, exploraremos como gerenciar assinaturas de imagens usando o Docker Content Trust, focando especificamente no comando docker trust revoke. Começaremos inspecionando uma imagem assinada para entender como as assinaturas são exibidas e verificadas.

Após a inspeção, aprenderemos como revogar assinaturas de uma tag específica e assinada de uma imagem. Em seguida, verificaremos se a revogação foi bem-sucedida, inspecionando a imagem novamente. Finalmente, demonstraremos como revogar assinaturas de todas as tags dentro de um repositório e confirmaremos que todas as assinaturas foram removidas. Este laboratório oferece experiência prática no gerenciamento da confiança associada às suas imagens Docker.

Inspecione uma imagem assinada para ver suas assinaturas

Nesta etapa, aprenderemos como inspecionar uma imagem Docker assinada para visualizar suas assinaturas. O Docker Content Trust permite verificar a integridade e o editor das imagens. Quando uma imagem é assinada, significa que o editor assinou criptograficamente a imagem, e você pode verificar essa assinatura para garantir que a imagem não foi adulterada.

Primeiro, precisamos habilitar o Docker Content Trust. Isso é feito definindo a variável de ambiente DOCKER_CONTENT_TRUST como 1.

export DOCKER_CONTENT_TRUST=1

Agora, vamos fazer o pull de uma imagem assinada. Usaremos a imagem docker/trusttest, que é projetada especificamente para testar o Docker Content Trust.

docker pull docker/trusttest:latest

Quando você faz o pull de uma imagem assinada com o Docker Content Trust habilitado, o Docker verifica a assinatura. Se a assinatura for válida, o pull será bem-sucedido. Se a assinatura for inválida ou ausente, o pull falhará.

Para inspecionar as assinaturas de uma imagem assinada, usamos o comando docker trust inspect seguido pelo nome da imagem.

docker trust inspect docker/trusttest:latest

Este comando exibirá informações sobre as assinaturas da imagem, incluindo os signatários e suas chaves. Você deve ver detalhes sobre as assinaturas associadas à tag latest da imagem docker/trusttest. Esta saída confirma que a imagem está assinada e mostra quem a assinou.

Revogar assinaturas de uma tag assinada específica

Nesta etapa, aprenderemos como revogar assinaturas de uma tag específica de uma imagem Docker assinada. Revogar uma assinatura significa invalidar a assinatura existente para uma tag de imagem específica. Isso é útil se uma chave for comprometida ou se você precisar remover uma versão específica de uma imagem de ser confiável.

Para revogar assinaturas de uma tag específica, usamos o comando docker trust revoke seguido pelo nome da imagem e da tag. Revogaremos a assinatura da tag latest da imagem docker/trusttest.

docker trust revoke docker/trusttest:latest

Ao executar este comando, você será solicitado a confirmar a revogação. Digite y e pressione Enter para prosseguir.

Are you sure you want to revoke signature for docker/trusttest:latest? (y/n) y

Após a confirmação, o Docker revogará a assinatura da tag especificada. Essa ação atualiza os dados de confiança para a imagem no registro.

Inspecione a imagem novamente para verificar a revogação

Nesta etapa, inspecionaremos a imagem novamente para verificar se a assinatura da tag latest foi revogada com sucesso. Após revogar a assinatura na etapa anterior, os dados de confiança para esta tag específica devem ser removidos ou marcados como inválidos.

Usaremos o mesmo comando docker trust inspect de antes para verificar as assinaturas da imagem docker/trusttest:latest.

docker trust inspect docker/trusttest:latest

Desta vez, a saída deve indicar que não há assinaturas para a tag latest. Você pode ver informações sobre outras tags, se existirem e forem assinadas, mas a seção para latest não deve mostrar assinaturas válidas. Isso confirma que a revogação foi bem-sucedida.

Se você tentar fazer o pull da imagem docker/trusttest:latest com DOCKER_CONTENT_TRUST=1 habilitado após revogar a assinatura, o pull deve falhar porque a imagem não é mais confiável para essa tag específica.

Revogar assinaturas de todas as tags em um repositório

Nesta etapa, aprenderemos como revogar assinaturas de todas as tags dentro de um repositório de imagem Docker específico. Isso é útil quando você precisa remover completamente a confiança de um repositório inteiro, talvez devido a um incidente de segurança ou a uma decisão de não usar mais imagens dessa fonte.

Para revogar assinaturas de todas as tags em um repositório, usamos o comando docker trust revoke seguido pelo nome do repositório, sem especificar uma tag. Revogaremos todas as assinaturas do repositório docker/trusttest.

docker trust revoke docker/trusttest

Ao executar este comando, você será solicitado a confirmar que deseja revogar as assinaturas de todas as tags no repositório. Digite y e pressione Enter para prosseguir.

Are you sure you want to revoke all signatures for docker/trusttest? (y/n) y

Após a confirmação, o Docker revogará as assinaturas de todas as tags associadas ao repositório docker/trusttest. Essa ação remove efetivamente os dados de confiança para todo o repositório no registro.

Inspecione o repositório para verificar se todas as assinaturas foram removidas

Nesta etapa final, inspecionaremos o repositório docker/trusttest novamente para verificar se todas as assinaturas foram removidas com sucesso de todas as suas tags. Após revogar todas as assinaturas na etapa anterior, os dados de confiança para todo o repositório devem ter sido removidos.

Usaremos o comando docker trust inspect, desta vez especificando apenas o nome do repositório sem nenhuma tag.

docker trust inspect docker/trusttest

A saída deste comando agora deve indicar que nenhuma assinatura foi encontrada para o repositório docker/trusttest. Isso confirma que a revogação de todas as assinaturas foi bem-sucedida.

Isso conclui o laboratório sobre a revogação de assinaturas de imagens Docker usando Docker Content Trust. Você aprendeu como revogar assinaturas para uma tag específica e para um repositório inteiro.

Resumo

Neste laboratório, aprendemos como gerenciar assinaturas de imagens usando Docker Content Trust. Começamos habilitando o Docker Content Trust e puxando uma imagem assinada (docker/trusttest:latest) para entender como o Docker verifica as assinaturas durante o processo de pull. Em seguida, usamos o comando docker trust inspect para visualizar as assinaturas associadas à imagem, confirmando seu status assinado e identificando os signatários.

Posteriormente, exploramos como revogar assinaturas. Aprendemos a usar o comando docker trust revoke para remover assinaturas de uma tag de imagem específica (docker/trusttest:latest) e verificamos a revogação inspecionando a imagem novamente. Finalmente, estendemos esse conhecimento para revogar assinaturas de todas as tags dentro de um repositório e confirmamos a remoção completa das assinaturas por meio da inspeção. Este laboratório forneceu experiência prática na inspeção e revogação de assinaturas de imagens Docker, habilidades essenciais para manter a integridade e a confiabilidade das imagens de contêiner.