Depois de criar o pipeline de imagens seguro, automatize o fluxo de trabalho de gerar imagens assinadas sempre que você fizer alterações no código-fonte.
Nesta página, explicamos como usar o pipeline de imagens para produzir imagens seguras e atestadas.
Antes de começar
Crie o pipeline de imagens seguro e familiarize-se com os recursos criados pelo pipeline.
Como usar o pipeline
O código-fonte das imagens base está no repositório baseimgfct-[some number]-containers
da organização do GitHub especificada ao configurar o pipeline de
imagens seguro. Para atualizar uma imagem, edite o arquivo relevante no repositório e
envie uma solicitação de envio com as alterações para um membro da equipe para revisão. Quando você cria
a solicitação de envio, o Cloud Build aciona em
YOUR_PROJECT_NAME-builder
a imagem atualizada e a envia
para o repositório do Artifact Registry em YOUR_PROJECT_NAME-stage
.
Quando um membro da equipe testa e verifica as imagens em YOUR_PROJECT_NAME-stage
,
ele pode aprovar e mesclar sua solicitação de envio. A ação de combinação cria, verifica e
atesta as imagens e as envia do projeto de preparo para
YOUR_PROJECT_NAME-verified
.
As etapas a seguir descrevem o fluxo de trabalho do desenvolvedor para usar o pipeline de imagens seguro:
Acesse o repositório baseimgfactor-[algum número]-containers.
Abra a pasta correspondente à imagem que você quer alterar, por exemplo,
ubuntu_18_0_4
.Faça as edições. Por exemplo, edite
Dockerfile
para atualizar uma imagem de contêiner.Selecione Criar uma nova ramificação para esta confirmação e iniciar uma solicitação de envio.
Clique em Propor alterações.
Em Descrição do comentário, digite /gcbrun. Isso garante que apenas usuários autorizados proponham alterações ao repositório.
Clique em Create pull request.
Quando você cria uma solicitação de envio, o gatilho de compilação em
YOUR_PROJECT_NAME-builder
, cria sua imagem e a envia paraYOUR_PROJECT_NAME-stage
.Adicione um membro da equipe para revisar a solicitação de envio.
Depois de verificar manualmente a imagem, o membro da equipe aprova e mescla a solicitação de envio.
A ação de mesclagem cria, testa, verifica a imagem em busca de vulnerabilidades e atesta a imagem se ela for uma imagem de contêiner e depois a imagem é enviada para
YOUR_PROJECT_NAME-verified
.
Como especificar uma política de segurança personalizada
Se você estiver usando o pipeline de imagens seguro para gerar e manter imagens de contêiner de base, especifique uma política de segurança personalizada em que a imagem será verificada.
YOUR_PROJECT_NAME-stage
executa uma instância Cupom,
que é uma ferramenta de código aberto que executa um pacote de verificações em imagens de contêiner e
cria Atestados de autorização binária
para as imagens. Quando uma imagem em YOUR_PROJECT_NAME-stage
foi verificada
manualmente e um membro da equipe mescla a solicitação de envio no repositório de imagens
do contêiner do GitHub, o cupom verifica a imagem em busca de vulnerabilidades, que são
definidas no arquivo de configuração do cupom. Após a conclusão da verificação, se todas as
vulnerabilidades identificadas estiverem abaixo do limite, o cupom criará um
atestado de autorização binária para a imagem, e a imagem será enviada para
YOUR_PROJECT_NAME-verified
. Se qualquer uma das vulnerabilidades identificadas atingir
ou exceder o limite, o cupom não criará um atestado. Sem um atestado
verificado, o aplicador de autorização binária impede que a imagem seja
enviada para YOUR_PROJECT_NAME-verified
.
Você pode definir quais verificações do cupom serão executadas, além de outros critérios, no arquivo de configuração do servidor do cupom. Para instruções sobre como fazer isso, consulte Criar e configurar o servidor do cupom.