Este documento descreve como configurar notificações para atualizações de observações e ocorrências.
O Artifact Analysis envia notificações pelo Pub/Sub sobre vulnerabilidades encontradas por verificações automáticas e sobre outros metadados. Quando uma observação 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
- Faça login na sua conta do Google Cloud . 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 sem custos financeiros.
-
In the Google Cloud console, on the project selector page, select or create 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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 criadas pela verificação de contêineres do Artifact Analysis.
Criar tópicos Pub/Sub
Depois que você ativa a API Artifact Analysis, o serviço cria automaticamente tópicos do Pub/Sub com os seguintes IDs:
container-analysis-notes-v1container-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 faltando se a sua organização Google Cloudtiver uma restrição de política da organização que exija 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 tópicos automaticamente com Google-owned and Google-managed encryption keys.
Para criar os tópicos com Google-owned and Google-managed encryption keys:
Console
Acesse a página de tópicos do Pub/Sub no console Google Cloud .
Clique em Criar tópico.
Insira um ID de tópico:
container-analysis-notes-v1para que o nome corresponda ao URI:
projects/PROJECT_ID/topics/container-analysis-notes-v1em que PROJECT_ID é o ID do projeto do Google Cloud.
Clique em Criar.
Insira um ID do tema:
container-analysis-occurrences-v1para 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 criptografia CMEK, consulte as instruções do Pub/Sub para criptografar tópicos.
Sempre que uma observação ou ocorrência é criada ou atualizada, uma mensagem é publicada no tópico respectivo. 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 detectar eventos, crie uma assinatura do Pub/Sub associada ao tópico:
Console
Acesse a página de assinaturas do Pub/Sub no consoleGoogle 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-v1em que PROJECT_ID é o ID do projeto do 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 do Artifact Analysis. Para mais informações, consulte a documentação de referência da API Java Artifact Analysis.
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 do Artifact Analysis. Para mais informações, consulte a documentação de referência da API Go Artifact Analysis.
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 do Artifact Analysis. Para mais informações, consulte a documentação de referência da API Node.js Artifact Analysis.
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 do Artifact Analysis. Para mais informações, consulte a documentação de referência da API Ruby Artifact Analysis.
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 do Artifact Analysis. Para mais informações, consulte a documentação de referência da API Python do Artifact Analysis.
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, medido com precisão de nanossegundos.
Ver detalhes
Para saber mais sobre uma nota ou ocorrência, acesse os metadados armazenados no Artifact Analysis. Por exemplo, você pode pedir todos os detalhes de uma ocorrência específica. Consulte as instruções em Investigação de vulnerabilidades.
A seguir
- Para instruções sobre como usar o Artifact Analysis para armazenar e gerenciar seus metadados personalizados, consulte Criar observações e ocorrências personalizadas.