Este documento descreve como configurar notificações de atualizações de notas e ocorrências.
O Artifact Analysis envia notificações pelo Pub/Sub sobre vulnerabilidades encontradas por verificação automática e sobre outros metadados. Quando uma nota ou ocorrência é criada ou atualizada, uma mensagem é publicada no tópico correspondente para cada versão da API. Use o tópico para a versão da API que você está usando.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Saiba como configurar o controle de acesso para metadados no seu projeto. Pule esta etapa se você consumir apenas metadados de ocorrências de vulnerabilidade criadas pela verificação de contêineres do Artifact Analysis.
Criar tópicos Pub/Sub
Depois de ativar a API Artifact Analysis, ela cria automaticamente tópicos do Pub/Sub com os seguintes IDs:
container-analysis-notes-v1
container-analysis-occurrences-v1
Se os tópicos foram excluídos acidentalmente ou estão ausentes, você mesmo pode adicioná-los. Por exemplo, os tópicos podem estar ausentes se a organização do Google Cloud tiver uma restrição de política da organização que exija a criptografia com chaves de criptografia gerenciadas pelo cliente (CMEK). Quando a API Pub/Sub está na lista de negação dessa restrição, os serviços não podem criar automaticamente tópicos com chaves gerenciadas e de propriedade do Google.
Para criar os tópicos com chaves de propriedade e gerenciadas pelo Google:
Console
Acesse a página de tópicos do Pub/Sub no console do Google Cloud.
Clique em Criar tópico.
Insira um ID de tema:
container-analysis-notes-v1
para que o nome corresponda ao URI:
projects/PROJECT_ID/topics/container-analysis-notes-v1
em que PROJECT_ID é o ID do projeto no Google Cloud.
Clique em Criar.
Insira um ID de tema:
container-analysis-occurrences-v1
para que o nome corresponda ao URI:
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Execute os seguintes comandos no shell ou na janela do terminal:
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-notes-v1
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-occurrences-v1
Para saber mais sobre o comando gcloud pubsub topics
, consulte a documentação de topics
.
Para criar os tópicos com a criptografia CMEK, consulte as instruções do Pub/Sub para criptografar tópicos.
Sempre que uma nota ou ocorrência for criada ou atualizada, uma mensagem será publicada no respectivo tópico. No entanto, você também precisa criar uma assinatura do Pub/Sub para detectar eventos e receber mensagens do serviço do Pub/Sub.
Criar assinaturas do Pub/Sub
Para ouvir eventos, crie uma assinatura do Pub/Sub associada ao tópico:
Console
Acesse a página de assinaturas do Pub/Sub no console do Google Cloud.
Clique em Criar assinatura.
Digite um nome para a assinatura. Por exemplo, notas.
Insira o URI do tópico para as notas:
projects/PROJECT_ID/topics/container-analysis-notes-v1
em que PROJECT_ID é o ID do projeto no Google Cloud.
Clique em Criar
Crie outra assinatura para ocorrências com o URI:
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Para receber eventos Pub/Sub, você deve primeiro criar uma inscrição
associada ao tópico container-analysis-occurrences-v1
:
gcloud pubsub subscriptions create \
--topic container-analysis-occurrences-v1 occurrences
Agora é possível enviar mensagens sobre suas ocorrências usando a nova assinatura:
gcloud pubsub subscriptions pull \
--auto-ack occurrences
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Java.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Go.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Node.js.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Ruby.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Python.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Os aplicativos de assinante recebem apenas mensagens que são publicadas no tópico após a criação da assinatura.
Os payloads do Cloud Pub/Sub estão em JSON e o esquema é o seguinte:
Observações:
{ "name": "projects/PROJECT_ID/notes/NOTE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
Ocorrências:
{ "name": "projects/PROJECT_ID/occurrences/OCCURRENCE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
em que:
- NOTE_KIND é um dos valores em
NoteKind
- NOTIFICATION_TIME é um carimbo de data/hora no formato UTC "Zulu" RFC 3339, preciso em nanossegundos.
Ver detalhes
Para saber mais sobre uma observação ou ocorrência, acesse os metadados armazenados na Artifact Analysis. Por exemplo, é possível solicitar todos os detalhes de uma ocorrência específica. Consulte as instruções em Como investigar vulnerabilidades.
A seguir
Para instruções sobre como usar o Artifact Analysis para armazenar e gerenciar metadados personalizados, consulte Criar notas e ocorrências personalizadas.
É possível usar atestados com a verificação de vulnerabilidades para impedir que imagens com problemas de segurança conhecidos sejam executadas no seu ambiente de implantação. Para instruções sobre como fazer isso, consulte Criar atestados com o Kritis Signer.