Assinar uma tag como signatário
Nesta etapa, exploraremos como um "signatário" designado pode assinar uma tag de imagem Docker. Em um cenário do mundo real, um repositório pode ter vários signatários, cada um responsável por assinar tags ou lançamentos específicos. Isso permite um processo de assinatura mais distribuído e seguro.
Primeiro, certifique-se de que o Docker Content Trust está habilitado:
export DOCKER_CONTENT_TRUST=1
Agora, vamos criar uma nova tag para nossa imagem, simulando uma versão ou lançamento diferente pela qual um signatário pode ser responsável.
docker tag labexuser/my-signed-image:latest labexuser/my-signed-image:v1.0.0
Isso cria uma nova tag labexuser/my-signed-image:v1.0.0 apontando para a mesma imagem.
Para assinar esta nova tag como um "signatário" diferente, usamos o comando docker trust sign. Este comando permite que você assine explicitamente uma tag específica com uma chave específica.
docker trust sign labexuser/my-signed-image:v1.0.0
Ao executar este comando, o Docker solicitará a senha da chave de assinatura que você deseja usar. Se você estiver usando a mesma chave gerada na Etapa 2, insira essa senha. Se você fosse um signatário diferente com uma chave diferente, usaria a senha dessa chave.
Após inserir a senha com sucesso, o Docker assinará a tag labexuser/my-signed-image:v1.0.0. Você deve ver a saída confirmando o processo de assinatura.
Finalmente, precisamos enviar os dados de confiança atualizados para o registro. O comando docker push para a tag assinada incluirá as novas informações de assinatura.
docker push labexuser/my-signed-image:v1.0.0
Este comando envia a tag v1.0.0 junto com sua assinatura associada para o registro.