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 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 Google Cloud console.
Antes de começar
-
Para receber as permissões necessárias a fim de 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 por meio de papéis personalizados ou de outros papéis predefinidos.
-
Administrador da Central de segurança (
-
Enable the Security Command Center API:
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
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
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.
Como os filtros usados nas 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 as exportações.
As exportações contínuas são armazenadas apenas no local em que são 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 a recrie no novo local.
Para recuperar uma exportação contínua usando chamadas de API,
especifique o local no nome completo do recurso do
notificationConfig
. Exemplo:
GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/notificationConfigs/my-pubsub-export-01
Da mesma forma, para recuperar uma exportação contínua usando a CLI gcloud, é necessário especificar o local usando a flag --location
. Exemplo:
gcloud scc notifications describe myContinuousExport --organization=123 \ --location=us
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 novo tópico do Pub/Sub, execute o seguinte comando:
gcloud pubsub topics create TOPIC_ID
Substitua
TOPIC_ID
pelo nome de um tópico.Crie uma assinatura para o tópico:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Substitua:
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 ter o papel de administrador do Pub/Sub
(roles/pubsub.admin
) no tópico do Pub/Sub para o qual você criou
uma assinatura.
Para conceder esse papel, faça o seguinte:
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 Google Cloud projeto que contém seu 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 Google Cloud , seja uma
organização, uma pasta ou um projeto. Se for necessário recuperar,
atualizar ou excluir o NotificationConfig
mais tarde, será necessário incluir o ID numérico da
organização, pasta ou projeto pai ao fazer referência a ele.
No console Google Cloud , alguns recursos NotificationConfig
podem ter um rótulo Legacy, o que indica que eles foram criados com a API Security Command Center v1. É possível gerenciar esses
recursos NotificationConfig
com o console Google Cloud , a CLI gcloud, a API Security Command Center v1 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
,folder
ouproject
.PARENT_ID
: o ID da organização, pasta ou projeto pai, especificado no formatoorganizations/123
,folders/456
ouprojects/789
.LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que; se a residência de dados não estiver ativada, 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 resultados são enviados ao Pub/Sub. Por exemplo,state=\"ACTIVE\"
.
Terraform
Crie um NotificationConfig
para uma organização:
Crie um NotificationConfig
para uma pasta:
Crie uma 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 ao 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 estas etapas.
Console
-
No Google Cloud console, acesse a página VPC Service Controls.
- Selecione a organização ou o projeto.
- Se você selecionou uma organização, clique em Selecionar uma política de acesso e selecione a política de acesso associada ao perímetro que você quer atualizar.
-
Clique no nome do perímetro 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 perímetro.
- Clique em Política de saída.
- Clique em Adicionar uma regra de saída.
-
Na seção DE, defina os seguintes detalhes:
- Em 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 TO, defina os seguintes detalhes:
- Em Projeto, 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 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 TO, defina os seguintes detalhes:
- Em Projeto, selecione Selecionar projetos.
- Clique em Adicionar projetos e selecione 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 tiver sido definido, faça isso. Escolha um projeto com a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_ID
pelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
egress-rule.yaml
com o seguinte conteúdo:- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESS
pelo endereço do principal usado para chamar a API Security Command Center. -
Crie um arquivo chamado
ingress-rule.yaml
com o seguinte conteúdo:- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESS
pelo 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_perimeter
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
-
-
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_perimeter
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
-
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 uma 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 Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Digite o endereço de e-mail do
NotificationConfig
agente de serviço. 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_ID
pelo 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 TO, defina os seguintes detalhes:
- Em Projeto, selecione Selecionar projetos.
- Clique em Adicionar projetos e selecione 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 tiver sido definido, faça isso. Escolha um projeto com a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_ID
pelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
ingress-rule.yaml
com 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_ID
pelo 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_perimeter
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
-
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.