Nesta página, explicamos como ativar as notificações da API Security Command Center.
As notificações enviam descobertas e descobertas sobre um tópico do Pub/Sub em minutos. As notificações da API Security Command Center incluem todas as informações de descoberta exibidas pelo Security Command Center no consoleGoogle Cloud .
É possível conectar as notificações do Security Command Center no Pub/Sub diretamente às ações das funções do Cloud Run. Para ver funções de exemplo que podem ajudar com resposta, aprimoramento e remediação, consulte o repositório de código aberto do Security Command Center em código do Cloud Run functions. O repositório contém soluções para ajudar você a tomar ações automatizadas sobre as descobertas de segurança.
Como alternativa, é possível exportar descobertas para o BigQuery ou configurar exportações contínuas para o Pub/Sub no console Google Cloud .
Antes de começar
-
Para receber as permissões necessárias para configurar as notificações da API Security Command Center, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Administrador da Central de segurança (
roles/securitycenter.admin) na organização ou no projeto em que o Security Command Center está ativado -
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin) no projeto em que você vai criar o tópico do Pub/Sub
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
-
Administrador da Central de segurança (
-
Enable the Security Command Center 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.gcloud services enable securitycenter.googleapis.com
Residência de dados e notificações
Se a residência de dados estiver ativada para o Security Command Center, as configurações que definem as exportações contínuas para o Pub/Sub (recursos notificationConfig) estarão sujeitas ao controle de residência de dados e serão armazenadas no seu local do Security Command Center.
Para exportar descobertas em um local do Security Command Center para o Pub/Sub, configure a exportação contínua no mesmo local do Security Command Center das descobertas.
Como os filtros usados em exportações contínuas podem conter dados sujeitos a controles de residência, especifique o local correto antes de criá-los. O Security Command Center não restringe o local em que você cria exportações.
As exportações contínuas são armazenadas apenas no local em que foram criadas e não podem ser visualizadas ou editadas em outros locais.
Depois de criar uma exportação contínua, não é possível mudar o local dela. Para mudar o local, exclua a exportação contínua e recrie-a no novo local.
Para saber como usar o Security Command Center quando a residência de dados está ativada, consulte Endpoints regionais do Security Command Center.
Configurar um tópico do Pub/Sub
Nesta tarefa, você cria e se inscreve no tópico do Pub/Sub para onde quer enviar notificações.
Etapa 1: configurar o Pub/Sub
Para configurar e se inscrever em um tópico do Pub/Sub, faça o seguinte:
Acesse o console do Google Cloud .
Selecione o projeto em que você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Opcional: para criar um tópico do Pub/Sub, execute o seguinte comando:
gcloud pubsub topics create TOPIC_IDSubstitua
TOPIC_IDpor um nome de tópico.Crie uma assinatura para o tópico:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDSubstitua:
SUBSCRIPTION_ID: O ID da assinatura.TOPIC_ID: o ID do tópico
Para saber mais sobre como configurar o Pub/Sub, consulte Como gerenciar tópicos e assinaturas.
Etapa 2: conceder função no tópico do Pub/Sub
Para criar um NotificationConfig, você precisa da função de administrador do Pub/Sub (roles/pubsub.admin) no tópico do Pub/Sub em que criou uma assinatura.
Para conceder esse papel:
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Conceda o papel necessário à sua Conta do Google no tópico do Pub/Sub:
gcloud pubsub topics add-iam-policy-binding \ projects/PUBSUB_PROJECT/topics/TOPIC_ID \ --member="user:GOOGLE_ACCOUNT" \ --role="roles/pubsub.admin"Substitua:
PUBSUB_PROJECT: o projeto Google Cloud que contém o tópico do Pub/SubTOPIC_ID: o ID do tópicoGOOGLE_ACCOUNT: o endereço de e-mail da sua Conta do Google
Criar um NotificationConfig
Antes de criar um NotificationConfig, observe que cada organização pode ter um
número limitado de arquivos NotificationConfig. Para mais informações, consulte Cotas e limites.
O NotificationConfig inclui um campo filter, que limita as notificações a eventos úteis. Esse campo aceita todos os filtros disponíveis no método
findings.list
da API Security Command Center.
Ao criar um NotificationConfig, você especifica um pai para o
NotificationConfig da hierarquia de recursos do Google Cloud , seja uma
organização, uma pasta ou um projeto. Se for necessário recuperar, atualizar ou excluir
o NotificationConfig depois, inclua o ID numérico da
organização, pasta ou projeto pai ao fazer referência a ele.
No console do Google Cloud , alguns recursos do NotificationConfig podem ter um rótulo Legado, que indica que eles foram criados com a API Security Command Center v1. É possível gerenciar esses recursos do NotificationConfig com o console do Google Cloud , a CLI gcloud, a API v1 do Security Command Center ou as bibliotecas de cliente v1 do Security Command Center.
Para gerenciar esses recursos NotificationConfig com a CLI gcloud, não especifique um local ao executar o comando da CLI gcloud.
Para criar o NotificationConfig usando o idioma ou a plataforma de sua
escolha:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Substitua:
NOTIFICATION_NAME: o nome da notificação. Precisa ter entre 1 e 128 caracteres e conter apenas caracteres alfanuméricos, sublinhados ou hifens.PARENT: o escopo na hierarquia de recursos a que a notificação se aplica,organization,folderouproject.PARENT_ID: o ID da organização, pasta ou projeto pai, especificado no formatoorganizations/123,folders/456ouprojects/789.LOCATION: o local do Security Command Center em que ; se a residência de dados estiver ativada, useeu,saouus. Caso contrário, use o valorglobal.NOTIFICATION_DESCRIPTION: uma descrição da notificação de no máximo 1.024 caracteres.PUBSUB_TOPIC: o tópico do Pub/Sub que vai receber notificações. O formato éprojects/PROJECT_ID/topics/TOPIC.FILTER: a expressão que você define para selecionar quais descobertas são enviadas ao Pub/Sub. Por exemplo,state=\"ACTIVE\".
Terraform
Crie um NotificationConfig para uma organização:
Criar um NotificationConfig para uma pasta:
Crie um NotificationConfig para um projeto:
Go
Java
Node.js
Python
Agora, as notificações são publicadas no tópico Pub/Sub que você especificou.
Para publicar notificações, uma conta de serviço é criada para você na forma de
service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com.
Essa conta de serviço é criada quando você cria seu primeiro NotificationConfig
e recebe automaticamente o papel securitycenter.notificationServiceAgent
na política do IAM para PUBSUB_TOPIC ao criar a configuração de notificação. Esse
papel de conta de serviço é necessário para que as notificações funcionem.
Conceder acesso de perímetro no VPC Service Controls
Se você usar o VPC Service Controls e o tópico do Pub/Sub fizer parte de um projeto dentro de um perímetro de serviço, será necessário conceder acesso a projetos para criar notificações.
Para conceder acesso a projetos, crie regras de entrada e saída para os principais
e projetos usados para criar notificações. As regras permitem o
acesso a recursos protegidos e permitem que o Pub/Sub verifique se os usuários têm a
permissão setIamPolicy no tópico do Pub/Sub.
Antes de criar uma NotificationConfig
Antes de concluir as etapas em Como criar uma NotificationConfig, siga as etapas abaixo.
Console
-
No console Google Cloud , acesse a página VPC Service Controls.
- Selecione a organização ou o projeto.
-
Na lista suspensa, selecione a política de acesso que contém o perímetro de serviço a que você quer conceder acesso.
Os perímetros de serviço associados à política de acesso aparecem na lista.
-
Clique no nome do perímetro de serviço que você quer atualizar.
Para encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o camposervicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- Clique em Editar.
- Clique em Política de saída.
- Clique em Adicionar uma regra de saída.
-
Na seção De, defina os seguintes detalhes:
- Em Identidades > Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Insira o endereço de e-mail do principal usado para chamar a API Security Command Center.
- Selecione o principal ou pressione ENTER e clique em Adicionar identidades.
-
Na seção Para, defina os seguintes detalhes:
- Em Recursos > Projetos, selecione Todos os projetos.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço pubsub.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço pubsub.googleapis.com.
- Clique em Política de entrada.
- Clique em Adicionar uma regra de entrada.
-
Na seção De, defina os seguintes detalhes:
- Em Identidades > Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Insira o endereço de e-mail do principal usado para chamar a API Security Command Center.
- Selecione o principal ou pressione ENTER e clique em Adicionar identidades.
- Em Origens, selecione Todas as origens.
-
Na seção Para, defina os seguintes detalhes:
- Em Recursos > Projetos, selecione Selecionar projetos.
- Clique em Adicionar projetos e adicione o projeto que contém o tópico do Pub/Sub.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço pubsub.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço pubsub.googleapis.com.
- Clique em Salvar.
gcloud
-
Se um projeto de cota ainda não estiver definido, faça isso. Escolha um projeto que tenha a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_IDpelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
egress-rule.yamlcom o seguinte conteúdo:- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESSpelo endereço do principal usado para chamar a API Security Command Center. -
Crie um arquivo chamado
ingress-rule.yamlcom o seguinte conteúdo:- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESSpelo endereço do principal usado para chamar a API Security Command Center. -
Adicione a regra de saída ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
Substitua:
-
PERIMETER_NAME: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeterPara encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o camposervicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
Adicione a regra de entrada ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Substitua:
-
PERIMETER_NAME: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeterPara encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o camposervicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulte Regras de entrada e saída para mais informações.
Criar uma regra de entrada para a NotificationConfig
Para criar uma regra de entrada para um NotificationConfig, siga as instruções
em Como criar uma NotificationConfig e conclua
as etapas a seguir.
Console
-
Abra novamente o perímetro de serviço da seção anterior.
- Clique em Política de entrada.
- Clique em Adicionar uma regra de entrada.
-
Na seção De, defina os seguintes detalhes:
- Em Identidades > Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Digite o endereço de e-mail do agente de serviço do
NotificationConfig. O endereço do agente de serviço tem o seguinte formato:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
Substitua
ORGANIZATION_IDpelo ID da organização. - Selecione o agente de serviço ou pressione ENTER e clique em Adicionar identidades.
- Em Origens, selecione Todas as origens.
-
Na seção Para, defina os seguintes detalhes:
- Em Recursos > Projetos, selecione Selecionar projetos.
- Clique em Adicionar projetos e adicione o projeto que contém o tópico do Pub/Sub.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço pubsub.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço pubsub.googleapis.com.
- Clique em Salvar.
gcloud
-
Se um projeto de cota ainda não estiver definido, faça isso. Escolha um projeto que tenha a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_IDpelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
ingress-rule.yamlcom o seguinte conteúdo:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
ORGANIZATION_IDpelo ID da organização. -
Adicione a regra de entrada ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Substitua:
-
PERIMETER_NAME: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeterPara encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o camposervicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulte Regras de entrada e saída para mais informações.
As contas de serviço, usuários e projetos selecionados agora podem acessar os recursos protegidos e criar notificações.
Se você seguiu todas as etapas deste guia e as notificações estão funcionando corretamente, agora é possível excluir o seguinte:
- A regra de entrada do principal
- A regra de saída para a principal
Essas regras só eram necessárias para configurar o NotificationConfig. No entanto, para que as
notificações continuem funcionando, mantenha a regra de entrada da
NotificationConfig, que permite publicar notificações no seu
tópico do Pub/Sub atrás do perímetro de serviço.
A seguir
- Saiba como ativar notificações de chat e e-mail em tempo real.
- Saiba como gerenciar a API de notificações.
- Saiba mais sobre como filtrar notificações.