Verificar pacotes do Go automaticamente
Saiba como ativar a verificação automática, enviar uma imagem de contêiner para o Artifact Registry e conferir uma lista de vulnerabilidades encontradas na imagem.
O Artifact Analysis verifica vulnerabilidades sempre que uma imagem é enviada por push para o Artifact Registry. Os administradores de plataforma e os desenvolvedores de aplicativos podem usar esse recurso de verificação automática para 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
- 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.
-
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Container Scanning APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Container Scanning APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com Abra a página Repositórios no console do Google Cloud .
Clique em Criar repositório.
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
- Nome:
Clique em Criar.
Mude para um diretório em que você quer salvar a imagem do contêiner.
Copie uma imagem para o diretório local. Por exemplo, você pode usar o Docker para extrair a imagem mais recente do Go do Docker Hub.
docker pull golang:1.17.6-alpine
- PROJECT é o ID do projeto do seu Google Cloud.
Se o ID do projeto tiver 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ãolatest
.Confira a lista de repositórios.
Na lista de repositórios, clique em um deles.
Na lista de imagens, clique no nome de uma imagem.
O total de vulnerabilidades de cada resumo de imagem é exibido na coluna Vulnerabilidades.
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 pacotes verificados, o total de vulnerabilidades, as vulnerabilidades com correções disponíveis, as vulnerabilidades sem correções e a gravidade efetiva.
A tabela de vulnerabilidades lista o nome de Vulnerabilidades e Exposições Comuns (CVE, na sigla em inglês) de 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 de pacote.
O console doGoogle Cloud mostra até 1.200 vulnerabilidades por página nessa tabela. É possível filtrar e classificar esses arquivos para verificar um arquivo, diretório, camada ou tipo específico por extensão.
Para detalhes sobre uma CVE específica, clique no nome dela.
Para ver detalhes da ocorrência de vulnerabilidade, como número da versão e local afetado, clique em Ver ou Ver corrigido na linha com o nome da vulnerabilidade. O texto do link é Ver para vulnerabilidades sem correção e Ver corrigidas para vulnerabilidades em que uma correção foi aplicada.
No Artifact Registry, abra sua lista de repositórios.
Na página Repositórios, clique em um repositório.
Na página Detalhes do repositório, clique em uma imagem.
Na lista de versões de imagens, clique em um resumo de imagem.
Na página de detalhes do resumo da imagem, clique na guia Vulnerabilidades.
Quando os metadados baseados em camadas estão disponíveis, Artifact Analysis mostra uma lista selecionável de camadas na barra Camada:
Para ver a lista de camadas, clique no menu suspenso de camadas.
Uma lista suspensa é aberta, mostrando uma lista numerada de camadas. A camada 0 representa a camada inferior, e cada camada seguinte é criada com base na anterior. Somente as camadas em que vulnerabilidades foram encontradas são mostradas.
Para cada camada, o Artifact Analysis mostra o comando do Docker usado para criar a camada e o número de vulnerabilidades encontradas nela.
Para saber mais sobre as vulnerabilidades em uma camada específica, selecione uma opção na lista de camadas.
A tabela de vulnerabilidades é atualizada para mostrar apenas as vulnerabilidades encontradas na camada selecionada. É possível aplicar mais filtros ou investigar vulnerabilidades específicas.
Clique em VER ou VER CORREÇÃO ao lado de uma vulnerabilidade para conferir informações mais detalhadas sobre ela.
O painel lateral Detalhes da vulnerabilidade mostra os locais dos arquivos em que os pacotes têm vulnerabilidades.
Na tabela Locais dos arquivos, passe o cursor sobre o ponto de interrogação para abrir metadados adicionais da camada.
Uma caixa de diálogo mostra o índice da camada, o comando de build da camada, o resumo da camada e a imagem de base em que é possível corrigir a vulnerabilidade.
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.
A página Repositórios vai aparecer. 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 para repositórios do Docker na região us-central1
:
gcloud auth configure-docker us-central1-docker.pkg.dev
Receber um pacote
Marcar o pacote com um nome de 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:
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 Google Cloud
ID do projeto.
Se o ID do projeto tiver dois pontos (:
), consulte
Projetos com escopo de domínio.
Conferir resultados da verificação de vulnerabilidades
Para ver as vulnerabilidades em uma imagem:
Ver vulnerabilidades em uma camada específica
Artifact Analysis fornece metadados específicos da camada para ajudar você a identificar qual pacote contém vulnerabilidades e qual comando de build do Docker introduziu essa camada.
Para conferir os metadados de vulnerabilidade com base em camadas no Google Cloud console:
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud e os recursos.
Se você criou um novo projeto para este guia, agora é possível excluí-lo.Delete a Google Cloud project:
gcloud projects delete PROJECT_ID