Verificar pacotes do SO 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 Cloudagora, 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 CLI gcloud 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:

      gcloud projects create PROJECT_ID

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

    • Selecione o Google Cloud projeto 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, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). 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 CLI gcloud 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:

      gcloud projects create PROJECT_ID

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

    • Selecione o Google Cloud projeto 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, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). 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 aparece. 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, é 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 a imagem para o diretório local. Por exemplo, você pode usar o Docker para extrair a imagem mais recente do Ubuntu do Docker Hub.

    docker pull ubuntu:latest
    

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 ubuntu:latest \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Onde

  • 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 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 novas imagens quando elas são enviadas 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

Para conferir as vulnerabilidades em uma imagem:

  1. Abra a lista de repositórios do Artifact Registry no console do Artifact Analysis.

    Abrir a página Repositórios

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

  3. Clique no nome de uma imagem.

    Você verá uma lista de resumos da imagem.

    O total de vulnerabilidades de cada resumo de imagem é exibido na coluna Vulnerabilidades.

    Captura de tela de uma imagem com vulnerabilidades

  4. Clique no número total de vulnerabilidades vinculadas na coluna Vulnerabilidades.

    Você verá uma lista de vulnerabilidades.

    Captura de tela de uma lista de imagens e detalhes de vulnerabilidade

    A lista de vulnerabilidades mostra o número de vezes que essa imagem foi verificada, os níveis de gravidade da vulnerabilidade, a disponibilidade de uma correção, o nome do pacote que contém a vulnerabilidade e o tipo de pacote.

  5. Para saber mais sobre uma vulnerabilidade específica da origem de vulnerabilidade, clique no identificador CVE vinculado na coluna Nome.

Outras maneiras de conferir resultados

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

Limpar

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