Verificar pacotes Python automaticamente
Aprenda a 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 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 se há 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
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Artifact Registry e Container Scanning:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable containerscanning.googleapis.com
artifactregistry.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Artifact Registry e Container Scanning:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (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.
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.
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
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, é possível usar o TensorFlow. Esta imagem contém Python e algumas vulnerabilidades.
O objetivo deste guia é apenas analisar uma imagem e ver os resultados. Não é necessário ter conhecimento prévio do TensorFlow.
Execute o seguinte comando para receber a imagem:
docker pull amancevice/pandas:1.2.5-jupyter
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 amancevice/pandas:1.2.5-jupyter \ us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
Em que:
- 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 Docker. Se você não especificou uma tag, o Docker aplicará a tag padrãolatest.
Envie a imagem para o Artifact Registry
O Artifact Analysis verifica automaticamente novos pacotes Python em imagens de contêiner 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.
Acessar resultados da verificação de vulnerabilidades
Outras maneiras de ver os resultados
O console do Google Cloud 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 projeto do Google Cloud e os recursos.
Se você criou um projeto para este guia, agora pode excluí-lo.- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.