Questa pagina descrive come utilizzare la funzionalità delle notifiche dell'API Security Command Center, inclusi i seguenti esempi:
- Crea un
NotificationConfig - Ottieni un
NotificationConfig - Aggiorna un
NotificationConfig - Elimina un
NotificationConfig - Elenca
NotificationConfig - Ricevi notifiche Pub/Sub
In alternativa, puoi configurare le esportazioni continue per Pub/Sub in Security Command Center.
Prima di iniziare
Per utilizzare gli esempi in questa pagina, devi completare la guida per configurare le notifiche sui risultati.
Per eseguire gli esempi seguenti, devi disporre di un ruolo Identity and Access Management (IAM) con le autorizzazioni appropriate:
- Crea
NotificationConfig: Editor configurazioni notifiche Centro sicurezza (roles/securitycenter.notificationConfigEditor) - Ottieni ed elenca
NotificationConfig: Visualizzatore configurazioni notifiche Centro sicurezza (roles/securitycenter.notificationConfigViewer) o Editor configurazioni notifiche Centro sicurezza (roles/securitycenter.notificationConfigEditor) - Aggiorna ed elimina
NotificationConfig: Editor configurazioni notifiche Centro sicurezza (roles/securitycenter.notificationConfigEditor)
Per concedere i ruoli appropriati a un'entità che accede a un notificationConfig, devi disporre di uno dei seguenti ruoli IAM:
- Amministratore organizzazione (
roles/resourcemanager.organizationAdmin) - Amministratore IAM cartella (
roles/resourcemanager.folderIamAdmin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
I ruoli IAM per Security Command Center possono essere concessi a livello di organizzazione, cartella o progetto. La possibilità di visualizzare, modificare, creare o aggiornare risultati, asset e origini di sicurezza dipende dal livello di accesso che ti è stato concesso. Per saperne di più sui ruoli di Security Command Center, consulta Controllo dell'accesso.
Residenza dei dati e notifiche
Se la residenza dei dati
è abilitata per Security Command Center, le configurazioni che definiscono le esportazioni continue in
Pub/Sub, ovvero le risorse notificationConfig, sono soggette
al controllo della residenza dei dati e vengono archiviate nella tua
località di Security Command Center.
Per esportare i risultati in una località di Security Command Center in Pub/Sub, devi configurare l'esportazione continua nella stessa località di Security Command Center dei risultati.
Poiché i filtri utilizzati nelle esportazioni continue possono contenere dati soggetti a controlli di residenza, assicurati di specificare la località corretta prima di crearli. Security Command Center non limita la località in cui crei le esportazioni.
Le esportazioni continue vengono archiviate solo nella località in cui vengono create e non possono essere visualizzate o modificate in altre località.
Dopo aver creato un'esportazione continua, non puoi modificarne la località. Per modificare la località, devi eliminare l'esportazione continua e ricrearla nella nuova località.
Per scoprire come utilizzare Security Command Center quando la residenza dei dati è abilitata, consulta Endpoint regionali di Security Command Center.
Creazione di un oggetto NotificationConfig
Per creare un oggetto NotificationConfig, devi disporre di:
- Un argomento Pub/Sub esistente a cui vuoi inviare le notifiche.
- I ruoli IAM richiesti per l'entità che crea l'oggetto
notificationConfig.
Per saperne di più, consulta il passaggio per configurare un argomento Pub/Sub nella guida alla configurazione delle notifiche sui risultati.
Prima di creare un oggetto NotificationConfig, tieni presente che ogni organizzazione può avere un numero limitato di file NotificationConfig. Per saperne di più, consulta
Quote e limiti.
L'oggetto NotificationConfig include un campo filter che limita le notifiche agli eventi utili. Questo campo accetta tutti i filtri disponibili nel
metodofindings.list
dell'API Security Command Center.
Quando crei un oggetto NotificationConfig, devi specificare un elemento principale per l'oggetto
NotificationConfig dalla Google Cloud gerarchia delle risorse, ovvero un'
organizzazione, una cartella o un progetto. Se in un secondo momento devi recuperare, aggiornare o eliminare l'oggetto NotificationConfig, devi includere l'ID numerico dell'organizzazione, della cartella o del progetto principale quando fai riferimento all'oggetto.
Per creare l'oggetto NotificationConfig utilizzando la lingua o la piattaforma di tua scelta:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Sostituisci quanto segue:
NOTIFICATION_NAME: il nome della notifica. Deve contenere tra 1 e 128 caratteri e contenere solo caratteri alfanumerici, trattini bassi o trattini.PARENT: l'ambito nella gerarchia delle risorse a cui si applica la notifica,organization,folderoproject.PARENT_ID: l'ID dell'organizzazione, della cartella o del progetto principale, specificato nel formatoorganizations/123,folders/456oprojects/789.LOCATION: the Security Command Center location in which to create aNotificationConfig; if residenza dei dati is enabled, useeu,sa, orus; otherwise, use the valueglobal.NOTIFICATION_DESCRIPTION: una descrizione della notifica di massimo 1024 caratteri.PUBSUB_TOPIC: l'argomento Pub/Sub che riceverà le notifiche. Il formato èprojects/PROJECT_ID/topics/TOPIC.FILTER: l'espressione che definisci per selezionare i risultati da inviare a Pub/Sub. Ad esempio,state=\"ACTIVE\".
Terraform
Crea un oggetto NotificationConfig per un'organizzazione:
Crea un oggetto NotificationConfig per una cartella:
Crea un oggetto NotificationConfig per un progetto:
Vai
Java
Node.js
Python
Le notifiche vengono ora pubblicate nell'argomento Pub/Sub specificato.
Per pubblicare le notifiche, viene creato un account di servizio nel formato
service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com.
Questo account di servizio viene creato quando crei il primo NotificationConfig
e gli viene concesso automaticamente il ruolo securitycenter.notificationServiceAgent nella policy IAM per PUBSUB_TOPIC durante la creazione della
configurazione delle notifiche. Questo ruolo dell'account di servizio è necessario per il funzionamento delle notifiche.
Ottenere un oggetto NotificationConfig
Per ottenere un oggetto NotificationConfig, devi disporre di un ruolo IAM che includa l'autorizzazione securitycenter.notification.get.
gcloud
gcloud scc notifications describe NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
Sostituisci quanto segue:
NOTIFICATION_NAME: il nome della configurazione delle notifiche.PARENT_TYPE: il livello della gerarchia delle risorse in cui è specificata la configurazione; utilizzaorganization,folderoproject.PARENT_ID: l'ID numerico della risorsa principale.LOCATION: la posizione di Security Command Center in cui ottenereNotificationConfig; se la residenza dei dati è abilitata, utilizzaeu,saous; altrimenti, utilizza il valoreglobal.
Aggiornare un oggetto NotificationConfig
Per aggiornare un oggetto NotificationConfig, devi disporre di un ruolo IAM che includa l'autorizzazione securitycenter.notification.update.
Quando esegui un aggiornamento utilizzando una maschera di campo, vengono aggiornati solo i campi specificati. Se non utilizzi una maschera di campo, tutti i campi modificabili nell'oggetto NotificationConfig vengono sostituiti dai nuovi valori. Puoi utilizzare una maschera di campo per aggiornare l'argomento Pub/Sub e la descrizione.
Per completare questo esempio, devi essere abbonato al nuovo argomento e il tuo account di servizio per le notifiche deve disporre dell'autorizzazione pubsub.topics.setIamPolicy sull'argomento.
Dopo aver concesso le autorizzazioni necessarie, aggiorna la descrizione, l'argomento Pub/Sub e il filtro dell'oggetto NotificationConfig utilizzando la lingua di tua scelta:
gcloud
gcloud scc notifications update NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Sostituisci quanto segue:
NOTIFICATION_NAME: il nome della configurazione delle notifiche.PARENT_TYPE: il livello della gerarchia delle risorse in cui è specificata la configurazione; utilizzaorganization,folderoproject.PARENT_ID: l'ID numerico della risorsa principale.LOCATION: la posizione di Security Command Center in cui aggiornareNotificationConfig; se la residenza dei dati è abilitata, utilizzaeu,saous; altrimenti, utilizza il valoreglobal.NOTIFICATION_DESCRIPTION: una descrizione della notifica di massimo 1024 caratteri.PUBSUB_TOPIC: l'argomento Pub/Sub che riceverà le notifiche. Il formato èprojects/PROJECT_ID/topics/TOPIC.FILTER: l'espressione che definisci per selezionare i risultati da inviare a Pub/Sub. Ad esempio,state="ACTIVE".
Eliminare un oggetto NotificationConfig
Per eliminare un oggetto NotificationConfig, devi disporre di un ruolo IAM che includa l'autorizzazione securitycenter.notification.delete.
Quando elimini un oggetto NotificationConfig, il ruolo securitycenter.notificationServiceAgent rimane nell'argomento Pub/Sub. Se non utilizzi l'argomento Pub/Sub in nessun altro oggetto NotificationConfig, rimuovi il ruolo dall'argomento. Per saperne di più, consulta Controllo dell'accesso.
Elimina un oggetto NotificationConfig utilizzando la lingua di tua scelta:
gcloud
gcloud scc notifications delete NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
Sostituisci quanto segue:
NOTIFICATION_NAME: il nome della configurazione delle notifiche.PARENT_TYPE: il livello della gerarchia delle risorse in cui è specificata la configurazione; utilizzaorganization,folderoproject.PARENT_ID: l'ID numerico della risorsa principale.LOCATION: the Security Command Center location in which to delete theNotificationConfig; if data residency is enabled, useeu,sa, orus; otherwise, use the valueglobal.
Elencare gli oggetti NotificationConfig
Per elencare gli oggetti NotificationConfigs, devi disporre di un ruolo IAM
che includa l'autorizzazione securitycenter.notification.list.
Tutti gli elenchi dell'API Security Command Center sono paginati. Ogni risposta restituisce una pagina di risultati e un token per restituire la pagina successiva. Il valore predefinito di pageSize è 10. Puoi configurare le dimensioni della pagina con un minimo di 1 e un massimo di 1000.
Elenca NotificationConfigs utilizzando la lingua di tua scelta:
gcloud
gcloud scc notifications list PARENT_TYPE/PARENT_ID \ --location=LOCATION
Sostituisci quanto segue:
PARENT_TYPE: il livello della gerarchia delle risorse in cui è specificata la configurazione; utilizzaorganizations,foldersoprojects.PARENT_ID: l'ID numerico della risorsa principale.LOCATION: la località di Security Command Center in cui elencare le risorseNotificationConfig; se la residenza dei dati è abilitata, utilizzaeu,sa, ous; in caso contrario, utilizza il valoreglobal.
Ricevere notifiche Pub/Sub
Questa sezione fornisce un messaggio di notifica di esempio ed esempi che mostrano come convertire un messaggio Pub/Sub in un oggetto NotificationMessage che contiene un risultato.
Le notifiche vengono pubblicate in Pub/Sub in formato JSON.
Di seguito è riportato un esempio di messaggio di notifica:
{
"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"
}
}
Converti un messaggio Pub/Sub in un oggetto NotificationMessage utilizzando la lingua di tua scelta:
gcloud
gcloud CLI non supporta la conversione di un messaggio Pub/Sub in un oggetto NotificationMessage. Puoi utilizzare gcloud CLI per ottenere un oggetto NotificationMessage e stampare il JSON direttamente nel terminale:
# The subscription used to receive published messages from a topic
PUBSUB_SUBSCRIPTION="projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
gcloud pubsub subscriptions pull $PUBSUB_SUBSCRIPTION
Sostituisci quanto segue:
- PROJECT_ID con l'ID progetto.
- SUBSCRIPTION_ID con l'ID abbonamento.
Vai
Passaggi successivi
- Scopri di più sul filtraggio delle notifiche.