Instruções e requisitos de configuração do laboratório
Proteja sua conta e seu progresso. Sempre use uma janela anônima do navegador e suas credenciais para realizar este laboratório.

Builds seguros com o Cloud Build

Laboratório 20 minutos universal_currency_alt 5 créditos show_chart Intermediário
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Este conteúdo ainda não foi otimizado para dispositivos móveis.
Para aproveitar a melhor experiência, acesse nosso site em um computador desktop usando o link enviado a você por e-mail.

GSP1184

Laboratórios autoguiados do Google Cloud

Visão geral

Vulnerabilidades de software são pontos fracos que podem causar uma falha acidental do sistema ou entregar aos usuários de má-fé um meio de comprometer seu software. O Artifact Analysis oferece dois tipos de verificação de SO para encontrar vulnerabilidades em contêineres:

  • A API On-Demand Scanning permite verificar manualmente se há vulnerabilidades do SO nas imagens de contêiner, seja localmente no seu computador ou remotamente no Artifact Registry. Isso oferece controle granular sobre os contêineres que você quer verificar se há vulnerabilidades.
  • A API Container Scanning permite automatizar a detecção de vulnerabilidades do SO, verificando cada vez que você envia uma imagem para o Artifact Registry. Você pode usar a On-Demand Scanning para verificar imagens no seu pipeline de CI/CD antes de decidir se vai armazená-las em um registro. Ao ativar essa API, você também ativa as verificações de pacotes de linguagens em busca de vulnerabilidades em Go e Java.

Neste laboratório, você vai usar o Cloud Build para aprender a criar e verificar se há vulnerabilidades nas imagens de contêiner armazenadas no Artifact Registry.

O que você vai aprender

Neste laboratório, você aprenderá a:

  • Criar imagens com o Cloud Build
  • Usar o Artifact Registry para contêineres
  • Utilizar a verificação de vulnerabilidades automatizada
  • Configurar a API On-Demand Scanning
  • Adicionar verificação de imagens em CI/CD no Cloud Build

Configuração e requisitos

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório – não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:

    • O botão Abrir console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Nome de usuário"}}}

    Você também encontra o Nome de usuário no painel Detalhes do laboratório.

  4. Clique em Avançar.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes sem custo financeiro.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Configuração do ambiente

  1. No Cloud Shell, defina o ID e o número do seu projeto. Salve-os como as variáveis PROJECT_ID e PROJECT_NUMBER:
export PROJECT_ID=$(gcloud config get-value project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID \ --format='value(projectNumber)')
  1. Ative todos os serviços necessários:
gcloud services enable \ cloudkms.googleapis.com \ cloudbuild.googleapis.com \ container.googleapis.com \ containerregistry.googleapis.com \ artifactregistry.googleapis.com \ containerscanning.googleapis.com \ ondemandscanning.googleapis.com \ binaryauthorization.googleapis.com

Clique em Verificar meu progresso para conferir o objetivo.

Ative as APIs necessárias

Tarefa 1: Criar imagens com o Cloud Build

Nesta seção, você vai criar um pipeline de build automatizado para criar sua imagem de contêiner, verificá-la e avaliar os resultados. Se nenhuma vulnerabilidade CRÍTICA for encontrada, a imagem será enviada para o repositório. Se vulnerabilidades CRÍTICAS forem encontradas, o build vai falhar e será encerrado.

  1. Forneça o acesso à conta de serviço do Cloud Build:
gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/ondemandscanning.admin"

O Cloud Build vai precisar de direitos para acessar a API On-Demand Scanning. Forneça acesso com os comandos a seguir.

  1. Crie e acesse um diretório de trabalho:
mkdir vuln-scan && cd vuln-scan
  1. Defina uma imagem de amostra:

Crie um arquivo chamado Dockerfile com o conteúdo a seguir.

cat > ./Dockerfile << EOF FROM gcr.io/google-appengine/debian11 # System RUN apt update && apt install python3-pip -y # App WORKDIR /app COPY . ./ RUN pip3 install Flask==1.1.4 RUN pip3 install gunicorn==20.1.0 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app EOF
  1. Crie um arquivo chamado main.py com o seguinte conteúdo:
cat > ./main.py << EOF import os from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): name = os.environ.get("NAME", "Worlds") return "Hello {}!".format(name) if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080))) EOF

Criar o pipeline do Cloud Build

Você vai criar um arquivo cloudbuild.yaml no seu diretório que será usado no processo automatizado. Neste laboratório, as etapas são limitadas ao processo de build de contêineres. Na prática, no entanto, você incluiria instruções e testes específicos do aplicativo, além das etapas do contêiner.

  1. Crie o arquivo com o seguinte comando:
cat > ./cloudbuild.yaml << EOF steps: # build - id: "build" name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image', '.'] waitFor: ['-'] EOF
  1. Execute o pipeline de CI:

Envie o build para processamento:

gcloud builds submit
  1. Depois que o processo de build começar, no console do Cloud, abra o painel do Cloud Build para visualizar o conteúdo.

Clique em Verificar meu progresso para conferir o objetivo.

Criar as imagens com o Cloud Build

Tarefa 2: Usar o Artifact Registry para contêineres

Criar repositório do Artifact Registry

Você vai usar o Artifact Registry para armazenar e verificar suas imagens.

  1. Crie o repositório com o seguinte comando:
gcloud artifacts repositories create artifact-scanning-repo \ --repository-format=docker \ --location={{{ project_0.default_region | "REGION" }}} \ --description="Docker repository"
  1. Configure o Docker para usar suas credenciais do gcloud ao acessar o Artifact Registry:
gcloud auth configure-docker {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev
  1. Modifique o pipeline do Cloud Build para enviar a imagem resultante ao Artifact Registry:
cat > ./cloudbuild.yaml << EOF steps: # build - id: "build" name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image', '.'] waitFor: ['-'] # push to artifact registry - id: "push" name: 'gcr.io/cloud-builders/docker' args: ['push', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image'] images: - {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image EOF
  1. Execute o pipeline de CI:
gcloud builds submit

Clique em Verificar meu progresso para conferir o objetivo.

Criar repositório do Artifact Registry

Tarefa 3: Verificação de vulnerabilidades automatizada

A verificação é acionada automaticamente sempre que você envia uma nova imagem para o Artifact Registry. As informações de vulnerabilidade são atualizadas continuamente quando novas vulnerabilidades são descobertas.

Nesta seção, você vai analisar a imagem que acabou de criar e enviar para o Artifact Registry e conferir os resultados da verificação de vulnerabilidades.

Analisar detalhes da imagem

Depois que o processo de build for concluído, revise os resultados da imagem e da vulnerabilidade no painel do Artifact Registry.

  1. No console do Cloud, abra o Artifact Registry.
  2. Clique em artifact-scanning-repo para ver o conteúdo.
  3. Clique nos detalhes da imagem.
  4. Clique no resumo mais recente da sua imagem.
  5. Quando terminar a verificação, clique na guia Vulnerabilidades da imagem.

Na guia "Vulnerabilidades", veja os resultados da verificação automática da imagem que acabou de criar.

Página do Artifact Registry mostrando a guia &quot;Vulnerabilidades&quot;

A verificação automática é ativada por padrão. Acesse as configurações do Artifact Registry para saber como ativar ou desativar a verificação automática.

Tarefa 4: On Demand Scanning

Em vários cenários pode ser necessário realizar uma verificação antes de enviar a imagem para um repositório. Por exemplo, um desenvolvedor de contêineres pode verificar uma imagem e corrigir os problemas encontrados antes de enviar o código para o controle de origem.

No exemplo abaixo, você vai criar e analisar a imagem localmente antes de tomar medidas com base nos resultados.

  1. Use o Docker local para criar a imagem no cache local:
docker build -t {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image .
  1. Depois que a imagem for criada, solicite uma verificação dela:
gcloud artifacts docker images scan \ {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image \ --format="value(response.scan)" > scan_id.txt

Os resultados da verificação são armazenados em um servidor de metadados. O job é concluído com um local dos resultados no servidor de metadados.

  1. Analise a saída armazenada no arquivo scan_id.txt:
cat scan_id.txt

Observe o local do relatório dos resultados da verificação no servidor de metadados.

  1. Para ver os resultados reais da verificação, use o comando list-vulnerabilities no local do relatório indicado no arquivo de saída:
gcloud artifacts docker images list-vulnerabilities $(cat scan_id.txt)

A saída contém uma quantidade significativa de dados sobre todas as vulnerabilidades na imagem. Os humanos raramente usam os dados armazenados no relatório diretamente. Normalmente, os resultados são usados por um processo automatizado.

  1. Use os comandos abaixo para ler os detalhes do relatório e registrar se alguma vulnerabilidade CRÍTICA foi encontrada:
export SEVERITY=CRITICAL gcloud artifacts docker images list-vulnerabilities $(cat scan_id.txt) --format="value(vulnerability.effectiveSeverity)" | if grep -Fxq ${SEVERITY}; then echo "Failed vulnerability check for ${SEVERITY} level"; else echo "No ${SEVERITY} Vulnerabilities found"; fi

A saída desse comando será

Failed vulnerability check for CRITICAL level

Clique em Verificar meu progresso para conferir o objetivo.

Verificar as imagens usando a On-Demand Scanning

Tarefa 5: Usar a verificação de artefatos em CI/CD no Cloud Build

Primeiro você vai dar ao Cloud Build direitos para acessar a API On-Demand Scanning.

  1. Forneça acesso com os seguintes comandos:
gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/ondemandscanning.admin"
  1. Atualize o pipeline do Cloud Build com o seguinte comando, que cria um arquivo cloudbuild.yaml que será usado no processo automatizado:
cat > ./cloudbuild.yaml << EOF steps: # build - id: "build" name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image', '.'] waitFor: ['-'] #Run a vulnerability scan at _SECURITY level - id: scan name: 'gcr.io/cloud-builders/gcloud' entrypoint: 'bash' args: - '-c' - | (gcloud artifacts docker images scan \ {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image \ --location us \ --format="value(response.scan)") > /workspace/scan_id.txt #Analyze the result of the scan - id: severity check name: 'gcr.io/cloud-builders/gcloud' entrypoint: 'bash' args: - '-c' - | gcloud artifacts docker images list-vulnerabilities \$(cat /workspace/scan_id.txt) \ --format="value(vulnerability.effectiveSeverity)" | if grep -Fxq CRITICAL; \ then echo "Failed vulnerability check for CRITICAL level" && exit 1; else echo "No CRITICAL vulnerability found, congrats !" && exit 0; fi #Retag - id: "retag" name: 'gcr.io/cloud-builders/docker' args: ['tag', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image:good'] #pushing to artifact registry - id: "push" name: 'gcr.io/cloud-builders/docker' args: ['push', '{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image:good'] images: - {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/${PROJECT_ID}/artifact-scanning-repo/sample-image EOF

Neste exemplo, as etapas são limitadas ao processo de build de contêineres. Na prática, você incluiria instruções e testes específicos do aplicativo, além das etapas do contêiner.

  1. Envie o build de processamento para verificar se ele é interrompido quando uma vulnerabilidade de gravidade CRÍTICA é encontrada.
gcloud builds submit
  1. Analise a falha de build na página Histórico do Cloud Build.

Clique em Verificar meu progresso para conferir o objetivo.

Verificar se o build é interrompido quando uma vulnerabilidade de gravidade CRÍTICA é encontrada

Corrigir a vulnerabilidade

Atualize o Dockerfile para usar uma imagem de base que não contenha vulnerabilidades CRÍTICAS.

  1. Substitua o Dockerfile para usar a imagem Debian 10 com o seguinte comando:
cat > ./Dockerfile << EOF FROM python:3.8-alpine # App WORKDIR /app COPY . ./ RUN pip3 install Flask==2.1.0 RUN pip3 install gunicorn==20.1.0 RUN pip3 install Werkzeug==2.2.2 CMD exec gunicorn --bind :\$PORT --workers 1 --threads 8 main:app EOF
  1. Envie o build de processamento para verificar se ele terá sucesso quando nenhuma vulnerabilidade de gravidade CRÍTICA for encontrada:
gcloud builds submit
  1. No console do Cloud, acesse Cloud Build > Histórico do Cloud Build para revisar o sucesso do build.

Clique em Verificar meu progresso para conferir o objetivo.

Corrigir a vulnerabilidade

Analisar os resultados da verificação

Analise a boa imagem no Artifact Registry.

  1. Abra o Artifact Registry no console do Cloud.
  2. Clique em artifact-scanning-repo para ver o conteúdo.
  3. Clique nos detalhes da imagem.
  4. Clique no resumo mais recente da sua imagem.
  5. Clique na guia Vulnerabilidades da imagem.

Parabéns!

Você aprendeu a criar uma imagem com o Cloud Build e armazená-la no Artifact Registry, além de ver como a verificação do Artifact é acionada automaticamente. Você também sabe como verificar imagens "sob demanda" antes de enviá-las para o controle de origem.

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, on demand e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 23 de julho de 2025

Laboratório testado em 23 de julho de 2025

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.