Attivazione delle notifiche via email e chat in tempo reale

Panoramica

Security Command Center fornisce notifiche in tempo reale dei risultati nella console Google Cloud. Questa guida descrive come utilizzare i servizi Google Cloud e le API di terze parti per estendere questa funzionalità e ricevere notifiche quasi in tempo reale nelle app email e di chat. Quando completi la guida, ricevi avvisi sui nuovi risultati nei servizi di terze parti configurati senza accedere alla console Google Cloud, consentendo una classificazione più rapida di vulnerabilità e minacce. Scopri di più sui diversi tipi di vulnerabilità e minacce in Security Command Center.

Topologia

In questa guida creerai la configurazione illustrata nel diagramma seguente.

Flusso di lavoro delle notifiche quasi in tempo reale (fai clic per ingrandire)
Flusso di lavoro per le notifiche quasi in tempo reale per Security Command Center (fai clic per ingrandire)

Obiettivi

In questa guida:

  1. Configurare un argomento Pub/Sub.
  2. Configura Slack, WebEx Teams e SendGrid Email.
  3. Scrivi il codice in Cloud Functions.
  4. Configura Pub/Sub e Cloud Functions per inviare notifiche a Slack, WebEx Teams o SendGrid Email ogni volta che un nuovo risultato con gravità elevata o critica viene scritto in Security Command Center.
  5. Risolvere i problemi relativi alle notifiche.

Costi

Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:

  • Pub/Sub
  • Cloud Functions
  • Cloud Build

Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.

Prima di iniziare

Per completare questa guida, devi disporre dei seguenti ruoli IAM (Identity and Access Management):

  • Amministratore dell'organizzazione (roles/resourcemanager.organizationAdmin)
  • Amministratore Centro sicurezza (roles/securitycenter.admin)
  • Amministratore sicurezza (roles/iam.securityAdmin)
  • Un ruolo con l'autorizzazione serviceusage.services.use, ad esempio Proprietario (roles/owner), Editor (roles/editor) o ruolo personalizzato.
  • Crea account di servizio (roles/iam.serviceAccountCreator)
  • Editor Pub/Sub (roles/pubsub.editor)
  • Amministratore account di fatturazione (roles/billing.admin)

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 per cui ti viene concesso l'accesso. Per scoprire di più sui ruoli di Security Command Center, vedi Controllo dell'accesso.

Configurazione di un progetto

Completa i seguenti passaggi per creare o selezionare un progetto.

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva l'API Cloud Build .

    Abilita l'API

  5. Installa Google Cloud CLI.
  6. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  7. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Attiva l'API Cloud Build .

    Abilita l'API

  10. Installa Google Cloud CLI.
  11. Per initialize gcloud CLI, esegui questo comando:

    gcloud init

Tempo stimato: è necessaria circa un'ora per la configurazione e il test delle notifiche per un singolo servizio.

Configurazione di un argomento Pub/Sub

Pub/Sub è un servizio di messaggistica in tempo reale che consente di inviare e ricevere messaggi tra applicazioni indipendenti. Scopri di più su Pub/Sub.

In questa sezione configurerai Security Command Center per pubblicare i risultati in un argomento Pub/Sub.

Per configurare e sottoscrivere un argomento Pub/Sub:

  1. Specifica il progetto Google Cloud in una variabile di ambiente.

    export PROJECT_ID=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID progetto.

  2. Specifica la tua organizzazione Google Cloud in una variabile di ambiente.

    export ORG_ID=ORG_ID
    

    Sostituisci ORG_ID con l'ID della tua organizzazione.

  3. Imposta l'ID progetto per i comandi gcloud.

    gcloud config set project PROJECT_ID
    
  4. Crea l'argomento Pub/Sub in cui vengono pubblicate le notifiche.

    gcloud pubsub topics create scc-critical-and-high-severity-findings-topic
    
  5. Specifica l'argomento in una variabile di ambiente.

    export TOPIC=projects/$PROJECT_ID/topics/scc-critical-and-high-severity-findings-topic
    
  6. Crea la sottoscrizione che notifichi a Cloud Functions l'invio di un messaggio email o di chat quando i messaggi vengono pubblicati nell'argomento.

    gcloud pubsub subscriptions create scc-critical-and-high-severity-findings-sub \
      --topic scc-critical-and-high-severity-findings-topic
    
  7. Configura Security Command Center per pubblicare notifiche nell'argomento. Puoi utilizzare qualsiasi filtro compatibile con l'API ListFindings.

    Il seguente filtro pubblica notifiche per i risultati attivi di gravità elevata e critica. Scopri di più su come filtrare i risultati.

     gcloud scc notifications create scc-critical-and-high-severity-findings-notify \
       --pubsub-topic $TOPIC \
       --organization $ORG_ID \
       --filter "(severity=\"HIGH\" OR severity=\"CRITICAL\") AND state=\"ACTIVE\""
    

Successivamente, puoi creare o configurare la tua app email o di chat per ricevere notifiche da Pub/Sub.

Configurazione di un'app di messaggistica

Questa sezione descrive come utilizzare Pub/Sub e Cloud Functions per abilitare notifiche quasi in tempo reale per l'API SendGrid Email, Slack e WebEx Teams. Fai clic su una scheda qui sotto e segui le istruzioni relative al servizio selezionato.

Email SendGrid

Per attivare le notifiche via email:

  • Crea un account API SendGrid Email e ottieni una chiave API.
  • Crea ed esegui il deployment di una Cloud Function che invii email alla ricezione delle notifiche da Pub/Sub.

Crea un account API SendGrid Email

In questa sezione creerai un account API SendGrid Email e otterrai una chiave API. Se hai già abilitato SendGrid, passa a Ottenere una chiave API Sendgrid Email e assicurati che la chiave API esistente disponga delle autorizzazioni appropriate.

  1. Vai alla console Google Cloud.
    Vai alla console Google Cloud
  2. Nella casella di ricerca nella parte superiore della pagina, cerca API SendGrid Email. Ricerca SendGrid
  3. Nella pagina successiva, seleziona il piano più adatto alle tue esigenze.

    • Il piano gratuito consente fino a 12.000 email al mese ed è sufficiente per questa guida, ma le organizzazioni di grandi dimensioni potrebbero richiederne di più. Se prevedi un volume maggiore di notifiche via email, valuta la possibilità di aggiungere altri filtri alle notifiche per escludere i risultati non omogenei.
    • Ti potrebbe essere chiesto di selezionare un progetto da associare a SendGrid. Seleziona un progetto per procedere. Potresti aver bisogno di autorizzazioni adeguate per gestire gli acquisti per l'account di fatturazione associato al progetto.
  4. Leggi i termini e, se vuoi, fai clic su Abbonati.

  5. Attiva il servizio SendGrid facendo clic su Registrati con SendGrid.

  6. Nella schermata di registrazione, inserisci un nome utente, una password e un indirizzo email. Accetta i Termini di servizio e fai clic su Continua.

  7. Nella finestra di dialogo di conferma, fai clic su Torna a Google.

Ottenere una chiave API SendGrid Email

  1. Fai clic su Gestisci chiavi API sul sito web di SendGrid. Si apre una nuova scheda per il sito web di SendGrid. Gestisci chiavi API

  2. Compila il modulo o accedi, se richiesto. Poi, fai clic su Inizia.

  3. Nel riquadro del menu, espandi Impostazioni e fai clic su Chiavi API.

  4. Nella schermata successiva, fai clic sul pulsante Crea chiave API.

  5. In Nome chiave API, inserisci "Notifiche email SCC", seleziona Accesso completo e poi fai clic sul pulsante Crea e visualizza.

    Nome chiave API

  6. Ti viene mostrata la chiave API. Registra il valore. Ti servirà nella prossima sezione.

  7. Fai clic su Fine. Ti viene mostrato il set attuale di chiavi API. Chiudi la scheda e torna alla console Google Cloud.

Successivamente, esegui il deployment di una Cloud Function per inviare notifiche a un indirizzo email.

Crea la funzione Cloud Functions di SendGrid

In questa sezione eseguirai il deployment di una funzione che invia notifiche al tuo account email.

  1. Vai a Cloud Functions.
    Vai a Cloud Functions

  2. Assicurati di utilizzare lo stesso PROJECT_ID che hai usato per creare l'argomento Pub/Sub.

  3. Fai clic su Crea funzione. Funzione SendGrid

  4. Imposta il Nome funzione su send-high-and-critical-finding-email-notification e il Tipo di trigger su Pub/Sub.

  5. Seleziona l'argomento Pub/Sub che hai creato in Configurazione di un argomento Pub/Sub.

  6. Fai clic su Salva e poi su Avanti.

  7. Nella pagina successiva, imposta Runtime su Python 3.8. L'esempio di codice in questa sezione è scritto in Python, ma puoi utilizzare qualsiasi linguaggio supportato da Cloud Functions.

  8. Nell'elenco dei file, fai clic su requirements.txt e aggiungi quanto segue al campo di testo: sendgrid.

    Requisiti di SendGrid

  9. Fai clic su main.py e sostituisci i contenuti con il seguente snippet di codice.

    import base64
    import json
    from sendgrid import SendGridAPIClient
    from sendgrid.helpers.mail import Mail
    
    def send_email_notification(event, context):
        """Triggered from a message on a Pub/Sub topic.
        Args:
             event (dict): Event payload.
             context (google.cloud.functions.Context): Metadata for the event.
        """
        pubsub_message = base64.b64decode(event['data']).decode('utf-8')
        message_json = json.loads(pubsub_message)
        message = Mail(
            from_email='noreply@yourdomain.com',
            to_emails='$EMAIL_ADDRESS',
            subject='New High or Critical Severity Finding Detected',
            html_content='A new high or critical severity finding was
            detected: ' + ''.join(message_json['finding']['category']))
        try:
            sg = SendGridAPIClient('$SENDGRID_EMAIL_API_KEY')
            response = sg.send(message)
            print(response.status_code)
            print(response.body)
            print(response.headers)
        except Exception as e:
            print(e)
    
        print(pubsub_message)
    
  10. Sostituisci quanto segue:

    • Sostituisci noreply@yourdomain.com con l'indirizzo email da cui vuoi che abbiano origine i messaggi.
    • Sostituisci $EMAIL_ADDRESS con l'indirizzo email del destinatario previsto. Nota. Questa variabile può contenere un array di indirizzi email (['user1@yourdomain.com', 'user2@yourdomain.com']) oppure scrivere un codice personalizzato per impostare una variabile dinamica, ad esempio un elenco a rotazione di persone disponibili.
    • Sostituisci $SENDGRID_EMAIL_API_KEY con la chiave API che hai già o con quella creata nella sezione precedente.
  11. Vai al campo Punto di ingresso e inserisci il nome della funzione nello snippet di codice (send_email_notification, in questo esempio).

  12. Fai clic su Esegui il deployment. Tornerai all'elenco di Cloud Functions in cui dovresti vedere la nuova funzione. Quando accanto al nome della funzione viene visualizzato un segno di spunta verde, significa che il deployment è stato eseguito. Il processo potrebbe richiedere alcuni minuti. Deployment della funzione SendGrid

Slack

Per inviare notifiche a un canale Slack:

  • Crea una nuova app Slack con privilegi sufficienti per pubblicare messaggi su un canale Slack pubblico.
  • Crea ed esegui il deployment di una Cloud Function che pubblichi messaggi di chat su Slack quando le notifiche vengono ricevute da Pub/Sub.

Crea una nuova app Slack

In questa sezione creerai una nuova app Slack per ricevere le notifiche.

  1. Vai ad App dell'API Slack. La pagina si apre in una nuova scheda.
  2. Accedi o crea un account.

  3. Seleziona Create an App (Crea un'app).

  4. Imposta App Name (Nome app) su "SCC Finding Scheduler".

  5. Seleziona l'area di lavoro Slack dello sviluppo in cui vuoi che il bot Slack pubblichi messaggi, quindi fai clic su Crea app.

  6. Nel pannello di navigazione, seleziona OAuth e autorizzazioni.

    Autorizzazioni Slack

  7. Vai alla sezione Ambiti. Gli ambiti rientrano in due categorie:

    • Ambiti dei token bot
    • Ambiti token utente
  8. Per questo esercizio non è necessario aggiungere un ambito del token utente. In Ambiti token bot, fai clic su Aggiungi un ambito OAuth e inserisci:

    • chat:write
    • chat:write.public

      Ambiti Slack
  9. Scorri fino alla parte superiore della pagina OAuth e autorizzazioni e fai clic su Installa app in Workspace.

  10. Nella finestra di dialogo di conferma, fai clic su Consenti.

  11. Copia il token di accesso OAuth dell'utente bot per utilizzarlo in Cloud Functions.

Successivamente, esegui il deployment di una Cloud Function per inviare notifiche a un gruppo Slack.

Crea la funzione Cloud Functions Slack

In questa sezione eseguirai il deployment di una funzione per inviare notifiche al tuo account Slack.

  1. Vai a Cloud Functions.
    Vai a Cloud Functions

  2. Assicurati di utilizzare lo stesso PROJECT_ID in cui è stato creato l'argomento Pub/Sub.

  3. Fai clic su Crea funzione. Funzione SendGrid

  4. Imposta Nome funzione su slack-chat-high-and-critical-findings e Tipo di trigger su Pub/Sub.

  5. Seleziona l'argomento Pub/Sub che hai creato in Configurazione di un argomento Pub/Sub.

  6. Fai clic su Salva e poi su Avanti.

  7. Nella pagina successiva, imposta Runtime su Python 3.8. L'esempio di codice in questa sezione è scritto in Python, ma puoi utilizzare qualsiasi linguaggio supportato da Cloud Functions.

  8. Vai all'elenco dei file. Fai clic su requirements.txt e aggiungi quanto segue: requests. Requisiti Slack

  9. Fai clic su main.py e sostituisci i contenuti con il seguente snippet di codice.

    import base64
    import json
    import requests
    
    TOKEN = "BOT_ACCESS_TOKEN"
    
    def send_slack_chat_notification(event, context):
        pubsub_message = base64.b64decode(event['data']).decode('utf-8')
        message_json = json.loads(pubsub_message)
        finding = message_json['finding']
    
        requests.post("https://slack.com/api/chat.postMessage", data={
            "token": TOKEN,
            "channel": "#general",
            "text": f"A high severity finding {finding['category']} was detected!"
        })
    
  10. Sostituisci BOT_ACCESS_TOKEN con il token di accesso OAuth dell'utente bot che hai creato con l'app Slack.

  11. Vai al campo Punto di ingresso e inserisci il nome della funzione nello snippet di codice (send_slack_chat_notification, in questo esempio).

  12. Fai clic su Esegui il deployment. Tornerai all'elenco di Cloud Functions in cui dovresti vedere la nuova funzione. Quando viene visualizzato un segno di spunta verde accanto al nome della funzione, significa che il deployment è stato eseguito. Il processo potrebbe richiedere un paio di minuti. I messaggi vengono visualizzati nel canale Slack #general. Funzione Slack

WebEx

Per inviare notifiche al tuo account WebEx Teams, procedi nel seguente modo:

  • Crea un nuovo account di servizio con le autorizzazioni per recuperare asset da Security Command Center.
  • Crea un nuovo bot WebEx con privilegi sufficienti per pubblicare messaggi nella tua area di lavoro.
  • Crea ed esegui il deployment di una Cloud Function che si abbona a Pub/Sub e pubblica messaggi di chat su WebEx quando vengono ricevute notifiche dall'argomento Pub/Sub.

Crea un account di servizio

Per impostazione predefinita, Cloud Functions non può recuperare asset da Security Command Center. In questa sezione eseguirai il provisioning di un account di servizio che permetta a Cloud Functions di recuperare gli asset associati ai risultati.

  1. Assegna un nome all'account di servizio e specificalo come variabile di ambiente.

    export SERVICE_ACCOUNT=ACCOUNT_NAME
    
  2. Crea l'account di servizio per il progetto.

    gcloud iam service-accounts create $SERVICE_ACCOUNT \
     --display-name "Service Account for SCC Finding Notifier WebEx Cloud Function" \
     --project $PROJECT_ID
    
  3. Concedi all'account di servizio il ruolo securitycenter.assetsViewer a livello di organizzazione.

     gcloud organizations add-iam-policy-binding $ORG_ID \
       --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \
       --role='roles/securitycenter.assetsViewer'
    

Crea un bot Webex

In questa sezione creerai un bot WebEx che pubblica messaggi nella tua area di lavoro.

  1. Accedi al tuo account WebEx Teams e vai alla pagina Nuovo bot.

  2. Imposta Nome bot su "SCC Finding Notifications".

  3. Seleziona un nome utente bot descrittivo ma univoco (your-name-scc-finding-notifier-demo).

  4. In Icona, seleziona Predefinita 1.

  5. Imposta Descrizione su "Un bot che avvisa il team quando un nuovo risultato con gravità alta o critica viene pubblicato in Security Command Center."

  6. Fai clic su Aggiungi bot.

  7. Nella pagina di conferma, copia il Bot Access Token e salvalo per utilizzarlo nella Cloud Function.

Aggiungi Webex Bot all'area di lavoro

In questa sezione, aggiungi il bot WebEx a uno spazio di lavoro.

  1. Nello spazio WebEx in cui vuoi che il bot pubblichi le notifiche, espandi il riquadro delle attività.Riquadro WebEx

  2. Seleziona Aggiungi persone.

  3. Digita "SCC Finding Notification" nel campo di testo e seleziona dal menu a discesa il bot che hai creato. Aggiungi WebEx

  4. Seleziona il pulsante Aggiungi e chiudi il riquadro.

  5. Ottieni l'ID stanza dello spazio di lavoro per la Cloud Function. Su un computer desktop, vai a https://developer.WebEx.com/docs/api/v1/rooms/list-rooms ed esegui l'accesso, se necessario. Questa pagina utilizza l'API WebEx per elencare le stanze virtuali a cui appartieni. Stanze virtuali WebEx

  6. Vai al riquadro di ricerca.

  7. Seleziona la scheda con l'etichetta Prova nella parte superiore del riquadro.

  8. Lascia invariati i valori predefiniti di tutte le opzioni e fai clic su Esegui.

  9. Nella scheda Risposta, ricevi una risposta in formato JSON con un elenco di items, o stanze. Trova il title della stanza in cui vuoi che vengano visualizzate le notifiche e registra il valore id associato. Risposta
WebEx

Successivamente, esegui il deployment di una Cloud Function per inviare notifiche all'area di lavoro WebEx.

Crea la funzione Cloud Functions WebEx

In questa sezione, eseguirai il deployment di una funzione per inviare notifiche al tuo account WebEx.

  1. Vai a Cloud Functions.
    Vai a Cloud Functions

  2. Seleziona lo stesso PROJECT_ID in cui è stato creato l'argomento Pub/Sub.

  3. Fai clic su Crea funzione. Funzione WebEx

  4. Imposta il Nome funzione su webex-teams-high-and-critical-findings e il Tipo di trigger su Pub/Sub.

  5. Seleziona l'argomento Pub/Sub che hai creato in Configurazione di un argomento Pub/Sub.

  6. Espandi il campo Variabili, networking e impostazioni avanzate.

  7. In Account di servizio, filtra e seleziona l'account di servizio webex-cloud-function-sa che hai creato. Variabili WebEx

  8. Fai clic su Salva e poi su Avanti.

  9. Nella pagina successiva, imposta Runtime su Python 3.8. L'esempio di codice in questa sezione è scritto in Python, ma puoi utilizzare qualsiasi linguaggio supportato da Cloud Functions.

  10. Vai all'elenco dei file. Fai clic su requirements.txt e aggiungi quanto segue:

    • requests==2.25.1
    • google-cloud-securitycenter==1.1.0 Requisiti WebEx
  11. Fai clic su main.py e sostituisci i contenuti con il seguente snippet di codice.

    #!/usr/bin/env python3
    import base64
    import json
    
    import requests
    from google.cloud import securitycenter_v1
    
    WEBEX_TOKEN = "WEBEX_TOKEN"
    ROOM_ID = "ROOM_ID"
    
    TEMPLATE = """
    **Severity:** {severity}\n
    **Asset:** {asset}\n
    **SCC Category:** {category}\n
    **Project:** {project}\n
    **First observed:** {create_time}\n
    **Last observed:** {event_time}\n
    **Link to finding:** {finding_link}
    """
    
    PREFIX = "https://console.cloud.google.com/security/command-center/findings"
    
    def get_finding_detail_page_link(finding_name):
        """Constructs a direct link to the finding detail page."""
        org_id = finding_name.split("/")[1]
        return f"{PREFIX}?organizationId={org_id}&resourceId={finding_name}"
    
    def get_asset(parent, resource_name):
        """Retrieves the asset corresponding to `resource_name` from SCC."""
        client = securitycenter_v1.SecurityCenterClient()
        resp = client.list_assets(
            securitycenter_v1.ListAssetsRequest(
                parent=parent,
                filter=f'securityCenterProperties.resourceName="{resource_name}"',
            )
        )
        page = next(resp.pages)
        if page.total_size == 0:
            return None
        asset = page.list_assets_results[0].asset
        return json.loads(securitycenter_v1.Asset.to_json(asset))
    
    def send_webex_teams_notification(event, context):
        """Send the notification to WebEx Teams."""
        pubsub_message = base64.b64decode(event["data"]).decode("utf-8")
        message_json = json.loads(pubsub_message)
        finding = message_json["finding"]
    
        parent = "/".join(finding["parent"].split("/")[0:2])
        asset = get_asset(parent, finding["resourceName"])
    
        requests.post(
            "https://webexapis.com/v1/messages",
            json={
                "roomId": ROOM_ID,
                "markdown": TEMPLATE.format(
                    severity=finding["severity"],
                    asset=asset["securityCenterProperties"]["resourceDisplayName"],
                    category=finding["category"],
                    project=asset["resourceProperties"]["project"],
                    create_time=finding["createTime"],
                    event_time=finding["eventTime"],
                    finding_link=get_finding_detail_page_link(finding["name"]),
                ),
            },
            headers={"Authorization": f"Bearer {WEBEX_TOKEN}"},
        )
    
  12. Sostituisci quanto segue:

    • WEBEX_TOKEN con il token di accesso bot della sezione Crea un bot WebEx.
    • ROOM_ID con l'ID stanza virtuale della sezione Aggiungi bot WebEx all'area di lavoro.
  13. Vai al campo Punto di ingresso e inserisci il nome della funzione nello snippet di codice (send_webex_teams_notification, in questo esempio).

  14. Fai clic su Esegui il deployment. Tornerai all'elenco di Cloud Functions in cui dovresti vedere la nuova funzione. Quando accanto al nome della funzione viene visualizzato un segno di spunta verde, significa che il deployment è stato eseguito. Il processo può richiedere alcuni minuti. Deployment di WebEx

Se i passaggi precedenti per il servizio selezionato sono stati completati senza errori, la configurazione è stata completata e inizierai a ricevere le notifiche. Ricorda:

  • Ricevi un messaggio email o di chat separato per ogni singolo risultato critico o con gravità alta. La frequenza o il numero di notifiche dipende dalle risorse all'interno della tua organizzazione.
  • Le notifiche vengono pubblicate e inviate quasi in tempo reale. Tuttavia, l'immediatezza delle email o dei messaggi non è garantita e vari fattori possono causare ritardi, tra cui problemi con SendGrid, il sistema email, Slack o WebEx.

Per modificare il flusso di lavoro delle notifiche, puoi:

  • Per cambiare i destinatari, aggiorna la Cloud Function.
  • Modifica i risultati che attivano le notifiche aggiornando il filtro per l'argomento Pub/Sub.

Test delle notifiche

Per verificare se le notifiche sono configurate correttamente, segui le istruzioni riportate di seguito per passare dallo stato attivo a quello non attivo e viceversa.

  1. Vai alla pagina dei risultati di Security Command Center.
    Vai alla pagina Risultati
  2. Seleziona la tua organizzazione, se richiesto.
  3. Nel riquadro Filtri rapidi, scorri verso il basso fino alla sezione Gravità e seleziona Alta o Critica. Il riquadro Risultati delle query dei risultati si aggiorna per mostrare solo i risultati relativi alla gravità selezionata.
  4. Nel riquadro Risultati delle query dei risultati, scegli un risultato selezionando la casella accanto al suo nome.
  5. Dal menu Modifica stato attivo nella barra delle azioni Risultati delle query dei risultati, seleziona Non attivo. Se la query dei risultati attuale mostra solo risultati attivi, il risultato viene rimosso dai risultati della query.
  6. Nel riquadro Filtri rapidi, scorri verso il basso fino alla sezione Stato e modifica le selezioni in modo che sia selezionato solo Non attivo. Il riquadro Risultati delle query dei risultati si aggiorna per mostrare solo i risultati non attivi.
  7. Nel riquadro Risultati delle query dei risultati, seleziona il risultato contrassegnato come non attivo.
  8. Dal menu Modifica stato attivo nella barra delle azioni Risultati della query dei risultati, seleziona Attivo.
  9. Controlla la posta o il servizio di messaggistica; dovresti visualizzare un messaggio simile alle immagini qui sotto.

Email:

Email di notifica

Slack:

Notifica Slack

I messaggi inviati a WebEx, che contengono ulteriori informazioni in questa guida, sono simili all'immagine seguente.

Notifica WebEx

Risoluzione dei problemi

Se le email o i messaggi di chat non vengono inviati o ricevuti, segui i passaggi di seguito per identificare e risolvere potenziali problemi.

  • Email SendGrid:

    • Per impedire che le email finiscano nella cartella Spam, aggiungi il valore from_email alla tua lista consentita per le email o configura l'autenticazione del mittente su SendGrid.
    • Assicurati di non superare il limite di frequenza per il piano SendGrid.
    • Le email in errore possono essere rilevate tramite i report di SendGrid.
      • Il criterio DMARC del tuo dominio o provider email potrebbe bloccare le email provenienti da mittenti non autenticati. Scopri come SendGrid gestisce l'identità del mittente. Se si verifica un errore, prova con un altro indirizzo email nel valore from_email.
  • SendGrid Email, Slack e WebEx:

    1. Controlla i log di Stackdriver per la Cloud Function per determinare se la funzione è stata richiamata. Se non viene richiamato, assicurati che le notifiche siano configurate correttamente.

    2. Se la Cloud Function viene richiamata, potrebbe avere un arresto anomalo. Verifica l'eventuale presenza di errori in Cloud Functions utilizzando Error Reporting della console Google Cloud.

Eseguire la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Eliminazione di singole risorse

  1. Elimina la configurazione delle notifiche:

    gcloud scc notifications delete organizations/ORG_ID/notificationConfigs/scc-critical-and-high-severity-findings-notify
    

    Sostituisci ORG_ID con l'ID della tua organizzazione.

    Per mantenere la configurazione e mettere temporaneamente in pausa le notifiche, commenta le chiamate send o post nella funzione Cloud Function.

  2. Elimina la Cloud Function:

    1. Vai a Cloud Functions.
      Vai a Cloud Functions
    2. Fai clic sulla casella di controllo accanto alla funzione da eliminare.
    3. Fai clic su Elimina .
  3. Elimina l'account di servizio:

    1. Vai alla pagina Account di servizio.
      Vai alla pagina Account di servizio
    2. Seleziona un progetto.
    3. Seleziona l'account di servizio che vuoi eliminare, quindi fai clic su Elimina .

Passaggi successivi