Verificar pacotes Go automaticamente

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

O Artifact Analysis verifica vulnerabilidades sempre que uma imagem é enviada ao 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 pacote depois que você ativa a API de verificação. Os tipos de pacote compatíveis incluem: SO, Go, Java (Maven), Python e Node.js (npm).

Antes de começar

  1. Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a Google Cloud CLI.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Google Cloud projeto do:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Google Cloud projeto do que você está criando.

    • Selecione o Google Cloud projeto do que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do Google Cloud projeto.

  6. Verifique se o faturamento está ativado para o Google Cloud projeto.

  7. Ative as APIs Artifact Registry e Container Scanning:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (roles/serviceusage.serviceUsageAdmin), que contém a serviceusage.services.enable permissão. Saiba como conceder papéis.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Instale a Google Cloud CLI.

  9. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Google Cloud projeto do:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Google Cloud projeto do que você está criando.

    • Selecione o Google Cloud projeto do que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do Google Cloud projeto.

  12. Verifique se o faturamento está ativado para o Google Cloud projeto.

  13. Ative as APIs Artifact Registry e Container Scanning:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (roles/serviceusage.serviceUsageAdmin), que contém a serviceusage.services.enable permissão. Saiba como conceder papéis.

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

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 Google Cloud console.

    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 fazer push ou pull de imagens com o Artifact Registry, é necessário configurar 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

  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, você pode usar o Docker para extrair a imagem Go mais recente do Docker Hub.

    docker pull golang:1.17.6-alpine
    

Marcar o pacote com um nome de repositório

Quando você quiser enviar um pacote para o Artifact Registry, será 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 seu Google Cloud projeto. 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ão latest.

Envie a imagem para o Artifact Registry

O Artifact Analysis verifica automaticamente novos pacotes Go quando eles são enviados ao 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 por seu 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

Liberar espaço

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

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

  1. No Google Cloud console, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.

A seguir