Nesta página, você verá como usar o recurso de notificações da API Security Command Center, incluindo os exemplos a seguir:
- Criar um
NotificationConfig
- Receber um
NotificationConfig
- Atualizar um
NotificationConfig
- Excluir um
NotificationConfig
- Listar
NotificationConfig
- Receber notificações do Pub/Sub
Como alternativa, os clientes do Security Command Center Premium podem configurar exportações contínuas para Pub/Sub no Security Command Center.
Antes de começar
Para usar os exemplos nesta página, você precisa completar o guia para configurar notificações de descoberta.
Para executar os exemplos a seguir, você precisa de um papel de Gerenciamento de identidade e acesso (IAM, na sigla em inglês) com as permissões apropriadas:
- Criar
NotificationConfig
: configurações de notificação da Central de segurança Editor (roles/securitycenter.notificationConfigEditor
) - Receber e listar
NotificationConfig
: visualizador de configurações de notificação da Central de segurança (roles/securitycenter.notificationConfigViewer
) ou editor de configurações de notificação da Central de segurança (roles/securitycenter.notificationConfigEditor
) - Atualizar e excluir
NotificationConfig
: Editor de notificações da Central de segurança (roles/securitycenter.notificationConfigEditor
)
Para conceder os papéis apropriados a um principal que acesse um notificationConfig
,
é preciso ter um dos seguintes papéis do IAM:
- Administrador da organização (
roles/resourcemanager.organizationAdmin
) - Administrador de pastas do IAM (
roles/resourcemanager.folderIamAdmin
) - Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
)
Os papéis do IAM para o Security Command Center podem ser concedidos no nível da organização, da pasta ou do projeto. A capacidade de ver, editar, criar ou atualizar descobertas, recursos e fontes de segurança depende do nível a que você tem acesso. Para saber mais sobre Para papéis do Security Command Center, consulte Controle de acesso.
Residência de dados e notificações
Se a residência dos dados
ativado para o Security Command Center, as configurações que definem
exportações contínuas para
Os recursos do Pub/Sub (notificationConfig
) estão sujeitos
controle de residência de dados e são armazenados
Local do Security Command Center.
Para exportar as descobertas em um local do Security Command Center para no Pub/Sub, é preciso configurar o fluxo contínuo e exportar no mesmo local do Security Command Center que as descobertas.
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,
você precisa especificar o local no nome completo do recurso do
notificationConfig
: Exemplo:
GET https://securitycenter.googleapis.com/v2/{name=organizations/123/locations/eu/notificationConfigs/my-pubsub-export-01}
Da mesma forma, para recuperar uma exportação contínua usando a CLI gcloud, você precisa especificar o local no nome do recurso completo da configuração ou usando a flag --locations
. Exemplo:
gcloud scc notifications describe myContinuousExport organizations/123 \ --location=locations/us
Como criar um NotificationConfig
Para criar um NotificationConfig
, você precisa ter:
- um tópico do Pub/Sub para onde você quer enviar notificações;
- Papéis do IAM necessários para o principal que cria o
notificationConfig
.
Para mais informações, consulte a etapa para configurar um tópico do Pub/Sub no guia para configurar notificações de localização.
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 na
API Security Command Center findings.list
.
Ao criar um NotificationConfig
, você especifica um pai para o
NotificationConfig
da hierarquia de recursos do Google Cloud, seja um
organização, pasta ou 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.
Para criar o NotificationConfig
usando o idioma ou a plataforma do
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 caracteres alfanuméricos. apenas 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, especificado no formato deorganizations/123
,folders/456
ouprojects/789
.LOCATION
: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a notificação será criada. O recursonotificationConfig
resultante é armazenado apenas neste local. Somente as descobertas emitidas nesse local são enviadas ao Pub/Sub.
Se a residência de dados não estiver ativada, a especificação da flag --location
vai criar
a notificação usando a API Security Command Center v2, e o único valor válido
para a flag é global
.
* NOTIFICATION_DESCRIPTION
: uma descrição da
notificação de no máximo 1.024 caracteres.
* PUBSUB_TOPIC
: o tópico do Pub/Sub que será
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\"
.
Python
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Java
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Go
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Node.js
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
PHP
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Ruby
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
C#
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
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. Isso
o papel da conta de serviço é necessário para que as notificações funcionem.
Como receber uma NotificationConfig
Para acessar um NotificationConfig
, você precisa ter um papel do IAM
que inclua a permissão securitycenter.notification.get
.
gcloud
gcloud scc notifications describe PARENT_TYPE/PARENT_ID/locations/LOCATION/notificationConfigs/NOTIFICATION_NAME
Substitua:
PARENT_TYPE
comorganizations
,folders
, ouprojects
, dependendo do nível da hierarquia de recursos especificado na configuração de notificação.PARENT_ID
pelo ID numérico do recurso pai.LOCATION
: obrigatório se os nomes de residência dos dados está ativado ounotificationConfig
recursos foram criados usando o API v2.Se a residência de dados estiver ativada, especifique Local do Security Command Center no qual as notificações são armazenadas.
Se a residência de dados não estiver ativada, inclua
/locations/LOCATION
somente se onotificationConfig
recurso foi criado usando o a API Security Command Center v2. Nesse caso, o único local válido églobal
.NOTIFICATION_NAME
: o nome da notificação.
Python
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Java
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Go
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Node.js
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
PHP
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Ruby
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
C#
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Como atualizar um NotificationConfig
Para atualizar um NotificationConfig
, você precisa ter um papel de IAM
que inclua a permissão securitycenter.notification.update
.
Quando você faz a atualização usando uma máscara de campo, somente os campos especificados são atualizados. Se
você não usar uma máscara de campo, todos os campos mutáveis no NotificationConfig
serão
substituídos pelos novos valores. Você pode usar uma máscara de campo para atualizar o
tópico e a descrição do Pub/Sub.
Para concluir este exemplo, você precisa estar inscrito no novo tópico e sua
conta de serviço de notificações precisa ter a permissão pubsub.topics.setIamPolicy
no tópico.
Depois de conceder as permissões necessárias, atualize a descrição de NotificationConfig
, o tópico do Pub/Sub e filtre usando a linguagem de sua escolha:
gcloud
gcloud scc notifications update PARENT_TYPE/PARENT_ID/locations/LOCATION/notificationConfigs/NOTIFICATION_NAME
--description="NOTIFICATION_DESCRIPTION" \
--pubsub-topic=PUBSUB_TOPIC \
--filter="FILTER"
Substitua:
PARENT_TYPE
comorganizations
,folders
, ouprojects
, dependendo do nível da hierarquia de recursos especificado na configuração de notificação.PARENT_ID
pelo ID numérico do recurso pai.LOCATION
: obrigatório se a residência de dados estiver ativada ou se onotificationConfig
foi criado usando a API v2.Se a residência de dados estiver ativada, especifique Local do Security Command Center no qual a notificação é armazenada.
Se a residência de dados não estiver ativada, inclua
/locations/LOCATION
no nome completo ou especifique a flag--location
somente senotificationConfig
ele foi criado com a API Security Command Center v2. Nesse caso, o único local válido églobal
.NOTIFICATION_NAME
: o nome da notificação.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"
.
Python
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Java
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Go
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Node.js
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
PHP
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Ruby
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
C#
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Como excluir uma NotificationConfig
Para excluir um NotificationConfig
, você precisa ter um papel do IAM
que inclua a permissão securitycenter.notification.delete
.
Quando você exclui um NotificationConfig
, o
papel securitycenter.notificationServiceAgent
permanece no
tópico do Pub/Sub. Se você não estiver usando o tópico Pub/Sub
em qualquer outro NotificationConfig
, remova o papel do tópico. Para mais
informações, consulte controle de acesso.
Exclua um NotificationConfig
usando o idioma de sua escolha:
gcloud
gcloud scc notifications delete PARENT_TYPE/PARENT_ID/locations/LOCATION/notificationConfigs/NOTIFICATION_NAME
Substitua:
PARENT_TYPE
comorganizations
,folders
, ouprojects
, dependendo do nível da hierarquia de recursos especificado na configuração de notificação.PARENT_ID
pelo ID numérico do recurso pai.LOCATION
: obrigatório se a residência de dados estiver ativada ou se onotificationConfig
foi criado usando a API v2.Se a residência de dados estiver ativada, especifique Local do Security Command Center no qual a notificação é armazenada.
Se a residência de dados não estiver ativada, inclua
/locations/LOCATION
no nome completo ou especifique a flag--location
somente se onotificationConfig
tiver sido criado usando a API Security Command Center v2. Nesse caso, o único local válido églobal
.NOTIFICATION_NAME
: o nome da notificação.
Python
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Java
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Go
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Node.js
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
PHP
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Ruby
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
C#
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Como listar NotificationConfigs
Para listar NotificationConfigs
, você precisa ter um papel do IAM que
inclua a permissão securitycenter.notification.list
.
Todas as listas da API Security Command Center são paginadas. Cada resposta retorna uma página de
resultados e um token para retornar a próxima página. O padrão pageSize
é 10. Você
pode configurar o tamanho da página para um mínimo de 1 e um máximo de 1.000.
Liste NotificationConfigs
usando o idioma de sua escolha:
gcloud
gcloud scc notifications list PARENT_TYPE/PARENT_ID/locations/LOCATION
Substitua:
PARENT_TYPE
comorganizations
,folders
ouprojects
, dependendo do escopo em que você precisa listar notificações.PARENT_ID
pelo ID numérico do pai recurso.LOCATION
: obrigatório se os nomes de residência dos dados está ativado ounotificationConfig
recursos foram criados usando o API v2.Se a residência de dados estiver ativada, especifique o local do Security Command Center em que as notificações são armazenadas.
Se a residência de dados não estiver ativada, a inclusão de
/locations/LOCATION
no nome ou a flag--location
no comando vai listar apenas os recursosnotificationConfig
criados usando a API Security Command Center v2, e o único local válido seráglobal
.
Python
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Java
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Go
O exemplo a seguir usa a API v1. Para modificar
o exemplo para a v2, substitua v1
por v2
e adicione
/locations/LOCATION
ao nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
Node.js
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao recurso
depois de /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
Serviço do Security Command Center
que emitiu a descoberta.
PHP
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Ruby
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
,
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
C#
O exemplo a seguir usa a API v1. Para modificar
exemplo da v2, substitua v1
por v2
e adicione
/locations/LOCATION
, que é o nome do recurso.
Para a maioria dos recursos, adicione /locations/LOCATION
ao
nome do recurso depois de /PARENT/PARENT_ID
, em que
PARENT
é organizations
, folders
ou projects
.
Para descobertas, adicione /locations/LOCATION
ao nome do recurso
após /sources/SOURCE_ID
, em que SOURCE_ID
é o ID do
serviço do Security Command Center
que emitiu a descoberta.
Como receber notificações do Pub/Sub
Nesta seção, apresentamos um exemplo de mensagem de notificação e exemplos que mostram como
converter uma mensagem do Pub/Sub em um NotificationMessage
que
contém uma descoberta.
As notificações são publicadas no Pub/Sub no formato JSON
.
Veja abaixo um exemplo de mensagem de notificação:
{
"notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/CONFIG_ID",
"finding": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"state": "ACTIVE",
"category": "TEST-CATEGORY",
"securityMarks": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
},
"eventTime": "2019-07-26T07:32:37Z",
"createTime": "2019-07-29T18:45:27.243Z"
}
}
Converta uma mensagem do Pub/Sub em um NotificationMessage
usando
a linguagem de sua escolha:
gcloud
A CCLI gcloud não é compatível com a conversão de uma mensagem do
Pub/Sub em NotificationMessage
. É possível usar a CLI gcloud para
receber um NotificationMessage
e imprimir o JSON
diretamente no terminal:
# The subscription used to receive published messages from a topic
PUBSUB_SUBSCRIPTION="projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
gcloud pubsub subscriptions pull $PUBSUB_SUBSCRIPTION
Substitua:
- PROJECT_ID pelo código do projeto;
- SUBSCRIPTION_ID pelo ID da sua assinatura.
Python
Java
Go
Node.js
PHP
A seguir
- Saiba mais sobre como filtrar notificações.