Este documento descreve como configurar notificações para atualizações de notas e ocorrências.
O Artifact Analysis fornece notificações via Pub/Sub para vulnerabilidades encontradas por verificações automáticas e para 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 da versão da API que você está usando.
Antes de começar
- 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.
-
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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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 scanning.
Criar tópicos Pub/Sub
Depois de ativar a API Artifact Analysis, o Artifact Analysis cria automaticamente tópicos do Pub/Sub com os seguintes IDs de tópico:
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 ausentes se a Google Cloud organização tiver uma restrição de política da organização que exige criptografia com chaves de criptografia gerenciadas pelo cliente (CMEK). Quando a API Pub/Sub está na lista de bloqueio 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 Google Cloud console.
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 Google Cloud ID do projeto.
Clique em Criar.
Insira um ID de tópico:
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
topics documentação.
Para criar os tópicos com 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 ouvir 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 Google Cloud console.
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 Google Cloud ID do projeto.
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
No futuro, você pode extrair mensagens sobre suas ocorrências usando sua 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. Se quiser 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 APIGo do Artifact Analysis.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Se quiser 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 APINode.js do Artifact Analysis.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Se quiser 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 APIRuby do Artifact Analysis.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Se quiser 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 Artifact Analysis Python.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Se quiser 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 observação ou ocorrência, acesse os metadados armazenados no Artifact Analysis. Por exemplo, você pode solicitar todos os detalhes de uma ocorrência específica. Consulte as instruções em Investigar vulnerabilidades.
A seguir
- Para instruções sobre como usar o Artifact Analysis para armazenar e gerenciar seus metadados personalizados, consulte Criar notas e ocorrências personalizadas.