Verificar pacotes do Go automaticamente

Aprenda a ativar a verificação automática, enviar uma imagem de contêiner no Artifact Registry e conferir uma lista de todas as vulnerabilidades encontradas na imagem.

O Artifact Analysis verifica vulnerabilidades sempre que uma imagem é encaminhada para o Artifact Registry. Os administradores de plataforma e os desenvolvedores de aplicativos podem usar esse recurso de verificação automática para ajudar a identificar riscos no pipeline de entrega de software.

Este guia de início rápido usa um pacote simples disponível publicamente para demonstrar um tipo de verificação de pacote. Por padrão, o Artifact Analysis verifica vulnerabilidades em vários tipos de pacotes depois que você ativa a API de verificação. Os tipos de pacotes compatíveis incluem: SO, Go, Java (Maven), Python e Node.js (npm).

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

O Artifact Analysis não verifica automaticamente as imagens existentes. Para verificar uma imagem existente, é necessário enviá-la novamente.

Criar um repositório do Docker no Artifact Registry

Crie um repositório do Docker para armazenar a imagem de amostra deste guia de início rápido.

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Clique em Criar repositório.

  3. Na página Criar repositório, insira as seguintes configurações:

    • Nome: quickstart-docker-repo
    • Formato: Docker
    • Modo: padrão
    • Tipo de local: região
    • Região: us-central1
  4. Clique em Criar.

A página Repositórios é exibida. O repositório quickstart-docker-repo é adicionado à lista de repositórios.

Configurar a autenticação

Antes de enviar ou extrair imagens com o Artifact Registry, configure o Docker para usar a Google Cloud CLI e autenticar solicitações ao Artifact Registry.

No Cloud Shell ou no shell local, configure a autenticação nos repositórios do Docker na região us-central1:

gcloud auth configure-docker us-central1-docker.pkg.dev

Receber um pacote

  1. Mude para um diretório em que você quer salvar a imagem do contêiner.

  2. Copie uma imagem para o diretório local. Por exemplo, é possível usar o Docker para extrair a imagem mais recente do Go do Docker Hub.

    docker pull golang:1.17.6-alpine
    

Marcar seu pacote com o nome de um repositório

Quando você quer enviar um pacote para o Artifact Registry, é necessário configurar o comando docker push para enviar a imagem a um local específico.

Execute o comando a seguir para marcar a imagem como quickstart-image:tag1:

docker tag golang:1.17.6-alpine \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Em que:

  • PROJECT é o ID do projeto do Google Cloud. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.
  • us-central1 é a região do repositório do Artifact Registry.
  • docker.pkg.dev é o nome do host dos repositórios do Docker.
  • quickstart-image é o nome da imagem que você quer usar no repositório. O nome da imagem pode ser diferente do nome da imagem local.
  • tag1 é uma tag que você está adicionando à imagem do Docker. Se você não especificou uma tag, o Docker aplicará a tag padrão latest.

Envie a imagem para o Artifact Registry

O Artifact Analysis verifica automaticamente novos pacotes Go quando eles são enviados para o Artifact Registry.

Para enviar a imagem ao repositório do Docker no Artifact Registry, execute o seguinte comando:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Substitua PROJECT pelo ID do projeto do Google Cloud. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.

Conferir resultados de verificação de vulnerabilidades

Para conferir as vulnerabilidades de uma imagem:

  1. Confira a lista de repositórios.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique em um repositório.

  3. Na lista de imagens, clique no nome de uma imagem.

    Os totais de vulnerabilidades de cada resumo de imagem são exibidos na coluna Vulnerabilidades.

    Captura de tela de uma imagem com vulnerabilidades

  4. Para ver a lista de vulnerabilidades de uma imagem, clique no link na coluna Vulnerabilidades.

    A seção Resultados da verificação mostra um resumo dos tipos de pacote verificados, o total de vulnerabilidades, as vulnerabilidades com correções disponíveis, as vulnerabilidades sem correções e a gravidade efetiva.

    Captura de tela da seção "Resultados da verificação" com vulnerabilidades, correções e gravidade eficaz

    A tabela de vulnerabilidades lista o nome das vulnerabilidades e exposições comuns (CVE) para cada vulnerabilidade encontrada, a gravidade efetiva, a pontuação do sistema de pontuação de vulnerabilidade comum (CVSS, na sigla em inglês), as correções (quando disponíveis), o nome do pacote que contém a vulnerabilidade e o tipo do pacote.

    É possível filtrar e classificar esses arquivos para verificar um arquivo, diretório ou tipo de arquivo específico por extensão.

    O console do Google Cloud mostra até 1.200 vulnerabilidades nesta tabela. Se a imagem tiver mais de 1.200 vulnerabilidades, use a gcloud ou a API para conferir a lista completa.

  5. Para detalhes sobre uma CVE específica, clique no nome dela.

  6. Para conferir detalhes da ocorrência da vulnerabilidade, como o número da versão e o local afetado, clique em Visualizar ou Visualizar correção na linha com o nome da vulnerabilidade. O texto do link é View para vulnerabilidades sem correção e View Fixed para vulnerabilidades em que uma correção foi aplicada.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

Se você criou um novo projeto para este guia, agora pode excluí-lo.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir