Visualizzazione dei log di rilevamento avanzato delle minacce di DNS Armor utilizzando metriche basate su log e dashboard personalizzata

1. Introduzione e panoramica

DNS Armor, basato su Infoblox, è un servizio completamente gestito che fornisce sicurezza a livello di DNS per i tuoi carichi di lavoro Google Cloud. Il suo rilevatore delle minacce avanzato è progettato per rilevare attività dannose al punto iniziale della catena di attacco, ovvero la query DNS, senza aggiungere complessità operativa o overhead delle prestazioni.

Questo codelab fornisce istruzioni passo passo per configurare e testare il servizio DNS Armor. Configurerai l'infrastruttura di rete necessaria, creerai il rilevatore di minacce, testerai il servizio simulando minacce DNS e, infine, visualizzerai e analizzerai i log delle minacce utilizzando una dashboard Cloud Monitoring personalizzata.

Cosa creerai

In questo codelab, eseguirai il provisioning delle seguenti risorse:

  • Una rete VPC (network-a) con subnet e macchine virtuali di cui è stato eseguito il provisioning nelle regioni us-east4 e us-central1.
  • Un rilevatore di minacce avanzato di DNS Armor configurato per ispezionare le query DNS.
  • Metriche basate su log basate sui log delle minacce DNS.
  • Una dashboard personalizzata per visualizzare i log delle minacce DNS.

cfe28f2c17ca2660.png

Cosa imparerai a fare

  • Come eseguire il provisioning delle risorse di rete necessarie, tra cui VPC e macchine virtuali.
  • Come eseguire il deployment di un rilevatore di minacce avanzate ed escludere reti specifiche.
  • Come convalidare la configurazione del rilevamento delle minacce utilizzando uno script di simulazione delle minacce.
  • Come visualizzare i log delle minacce DNS utilizzando metriche basate su log e dashboard personalizzata.

Che cosa ti serve

  • Un progetto Google Cloud.
  • Accesso allo strumento a riga di comando gcloud.

2. Prerequisiti

In questa sezione, eseguirai le seguenti attività:

  • Verifica che il tuo progetto Google Cloud soddisfi i vincoli dei criteri dell'organizzazione necessari.
  • Verifica che il tuo account utente disponga dei ruoli e delle autorizzazioni IAM richiesti.
  • Abilita le API Cloud di Google essenziali per questo codelab.
  • Assegna il ruolo IAM roles/logging.viewer al service account Compute Engine.

Vincoli dei criteri dell'organizzazione

Per completare correttamente questo codelab, verifica i vincoli dei criteri dell'organizzazione applicati al tuo progetto. Alcuni criteri potrebbero ostacolare il provisioning delle risorse necessarie. I seguenti vincoli potrebbero influire sulla configurazione di questo codelab:

  • constraints/gcp.resourceLocations: limita le regioni in cui puoi creare risorse; il codelab richiede us-east4 e us-central1.
  • constraints/compute.vmExternalIpAccess: impedisce la creazione di macchine virtuali con indirizzi IP pubblici, il che potrebbe interferire con la configurazione se non segui l'utilizzo del flag --no-address nel codelab .
  • constraints/compute.shieldedVm: impone la creazione di VM schermate, che i comandi di creazione delle VM del codelab non specificano, causando potenzialmente un errore.
  • constraints/gcp.restrictServiceUsage: limita le API Cloud Google che possono essere attivate e potrebbe bloccare il codelab se non consente compute.googleapis.com, networksecurity.googleapis.com, logging.googleapis.com e monitoring.googleapis.com.

Ruoli e autorizzazioni IAM

Per completare correttamente questo codelab, verifica i ruoli e le autorizzazioni IAM concessi al tuo utente. Per completare questo Codelab sono necessari i seguenti ruoli e autorizzazioni IAM.

  • Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin): per abilitare le API Google Cloud richieste per il codelab.
  • Amministratore di rete Compute (roles/compute.networkAdmin): per creare e gestire reti VPC, subnet e Cloud NAT.
  • Amministratore della sicurezza di Compute (roles/compute.securityAdmin): per configurare le regole firewall per l'accesso SSH alle macchine virtuali.
  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1): per creare e gestire le macchine virtuali necessarie per il lab.
  • Utente del tunnel con protezione IAP (roles/iap.tunnelResourceAccessor): per connettersi alle macchine virtuali utilizzando SSH tramite Identity-Aware Proxy (IAP).
  • Amministratore della sicurezza di rete (roles/networksecurity.admin): per creare e gestire il rilevatore di minacce DNS Armor.
  • Logs Viewer (roles/logging.viewer): per visualizzare e analizzare i log delle minacce in Esplora log.

API di Google Cloud

Assicurati che le API Cloud richieste siano abilitate nel tuo progetto.

1. Abilita le API necessarie, esegui i seguenti comandi gcloud in Cloud Shell.

gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com

2. Verifica che le API siano abilitate, esegui i seguenti comandi gcloud in Cloud Shell.

gcloud services list --enabled

Service account Compute Engine

Lo script di simulazione delle minacce richiede le autorizzazioni per leggere e generare report sui log delle minacce generati da Cloud Logging. Poiché lo script verrà eseguito da una VM che utilizza il service account Compute Engine predefinito, a questo service account deve essere assegnato il ruolo IAM roles/logging.viewer.

1. Imposta le variabili di ambiente, esegui i seguenti comandi in Cloud Shell.

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

2. Concedi il ruolo Visualizzatore log al service account Compute Engine. Esegui i seguenti comandi gcloud in Cloud Shell

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"

3. Provisioning di risorse di rete e di calcolo

In questa sezione, eseguirai le seguenti attività:

  • Crea la rete VPC network-a con subnet personalizzate.
  • Configura i router Cloud e Cloud NAT per l'uscita da internet in network-a.
  • Crea regole firewall per consentire l'accesso SSH alle VM dall'intervallo IP di IAP per network-a.
  • Esegui il provisioning di macchine virtuali Linux in network-a senza indirizzi IP pubblici.

Crea VPC e subnet

1. Crea network-a e le relative subnet nelle regioni us-east4 e us-central1. Esegui i seguenti comandi gcloud in Cloud Shell.

gcloud compute networks create network-a --subnet-mode=custom
gcloud compute networks subnets create subnet-a-use4 \
--network=network-a \
--range=10.10.0.0/24 \
--region=us-east4
gcloud compute networks subnets create subnet-a-usc1 \
--network=network-a \
--range=10.10.1.0/24 \
--region=us-central1

Configurare il traffico in uscita da internet

1. Crea Cloud Router e Cloud NAT per network-a per consentire l'uscita da internet per le VM senza IP pubblici.

gcloud compute routers create router-a-use4 \
--network=network-a \
--region=us-east4
gcloud compute routers nats create nat-a-use4 \
--router=router-a-use4 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-east4
gcloud compute routers create router-a-usc1 \
--network=network-a \
--region=us-central1
gcloud compute routers nats create nat-a-usc1 \
--router=router-a-usc1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-central1

Configura le regole firewall

1. Crea regole firewall per network-a per consentire l'accesso SSH dall'intervallo IP di IAP. Esegui i seguenti comandi gcloud in Cloud Shell.

gcloud compute firewall-rules create allow-ssh-iap-a \
--network=network-a \
--allow=tcp:22 \
--source-ranges=35.235.240.0/20

Creare macchine virtuali

1. Crea VM Linux in network-a.

gcloud compute instances create vm-a-use4 \
--zone=us-east4-c \
--network=network-a \
--subnet=subnet-a-use4 \
--no-address \
--scopes=cloud-platform
gcloud compute instances create vm-a-usc1 \
--zone=us-central1-a \
--network=network-a \
--subnet=subnet-a-usc1 \
--no-address \
--scopes=cloud-platform

4. Crea il rilevatore di minacce DNS

In questa sezione, eseguirai le seguenti attività:

  • Crea il rilevatore di minacce.
  • Elenca il rilevatore di minacce.

Ora che sono stati sottoposti a provisioning VPC, subnet e macchine virtuali, il passaggio successivo è creare il rilevatore di minacce DNS.

1. Crea il rilevatore di minacce utilizzando il comando gcloud beta network-security dns-threat-detectors create.

gcloud beta network-security dns-threat-detectors create my-dns-threat-detector \
--location=global \
--provider=infoblox

2. Elenca il rilevatore di minacce per confermare la creazione.

gcloud beta network-security dns-threat-detectors list --location=global

5. Crea le metriche basate su log

In questa sezione, eseguirai le seguenti attività:

  • Informazioni sulla voce di log.
  • Crea il file config.yaml.
  • Crea la metrica basata su log.

1. Comprendere la voce di log. Puoi esaminare una tabella di tutti i campi nei log di DNS Armor nella documentazione dei log delle minacce. Questa sezione si concentra sui campi specifici che verranno utilizzati per creare le metriche basate su log.

Per creare le metriche basate su log verranno utilizzati i seguenti campi:

  • vmInstanceId: nome dell'istanza VM di Compute Engine, applicabile solo alle query avviate dalle VM di Compute Engine.
  • queryName: il nome della query DNS.
  • severity: La gravità (alta, media, bassa o informazioni) associata alla minaccia rilevata. Per saperne di più, consulta la definizione del livello di gravità di Infoblox.
  • location: regione Google Cloud da cui è stata pubblicata la risposta.
  • threat: il nome della minaccia rilevata.
  • threatId: identificatore univoco della minaccia.

2. Crea il file config.yaml. Innanzitutto, crea un file config.yaml vuoto utilizzando il comando touch.

touch config.yaml

3. Compila il file config.yaml. Questo file definisce come creare una metrica basata su log per i log delle minacce di DNS Armor. Specifica quali voci di log filtrare, quali etichette estrarre da queste voci e le proprietà della metrica stessa.

Apri il file config.yaml in un editor di testo a tua scelta e incolla i seguenti contenuti.

filter: |
  resource.type="networksecurity.googleapis.com/DnsThreatDetector"
  jsonPayload.dnsQuery.projectNumber="PROJECT_NUMBER"
labelExtractors:
  InstanceId: EXTRACT(jsonPayload.dnsQuery.vmInstanceId)
  QueryName: EXTRACT(jsonPayload.dnsQuery.queryName)
  Severity: EXTRACT(jsonPayload.threatInfo.severity)
  region: EXTRACT(jsonPayload.dnsQuery.location)
  threat: EXTRACT(jsonPayload.threatInfo.threat)
  threatId: EXTRACT(jsonPayload.threatInfo.threatId)
metricDescriptor:
  labels:
  - key: InstanceId
  - key: threat
  - key: Severity
  - key: threatId
  - key: region
  - key: QueryName
  metricKind: DELTA
  unit: '1'
  valueType: INT64

4. Aggiorna il numero di progetto. Utilizza il seguente comando sed per sostituire il segnaposto PROJECT_NUMBER con il valore della variabile di ambiente.

sed -i "s/PROJECT_NUMBER/$PROJECT_NUMBER/g" config.yaml

5. Crea la metrica basata su log. Infine, esegui questo comando gcloud in Cloud Shell per creare la metrica.

gcloud logging metrics create dns-armor-log-based-metric --config-from-file=config.yaml

6. Crea la dashboard personalizzata

In questa sezione, eseguirai le seguenti attività:

  • Crea il file dashboard.json.
  • Crea la dashboard personalizzata

1. Crea il file dashboard.json. Innanzitutto, crea un file dashboard.json vuoto utilizzando il comando touch.

touch dashboard.json

2. Compila il file dashboard.json. Il file dashboard.json configura la dashboard di monitoraggio personalizzata, definendo i widget, le proprietà di visualizzazione e il modo in cui le metriche basate sui log vengono visualizzate, aggregate e filtrate.

Apri il file dashboard.json in un editor di testo a tua scelta e incolla i seguenti contenuti.

{
  "displayName": "DNS Armor - Custom Dashboard",
  "dashboardFilters": [],
  "description": "",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Threat Logs",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      },
      {
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Threat Logs per region",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"region\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      },
      {
        "yPos": 20,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Group by Threat",
          "id": "",
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "measures": [],
                "minAlignmentPeriod": "60s",
                "sliceNameTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"threat\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "showLabels": false,
            "showTotal": false,
            "sliceAggregatedThreshold": 0
          }
        }
      },
      {
        "yPos": 20,
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Top List - ThreatID",
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "threatId",
                "visible": true
              },
              {
                "column": "threat",
                "visible": true
              },
              {
                "column": "project_id",
                "visible": false
              },
              {
                "column": "value",
                "visible": true
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"threatId\"",
                        "metric.label.\"threat\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
                    "pickTimeSeriesFilter": {
                      "direction": "TOP",
                      "numTimeSeries": 30,
                      "rankingMethod": "METHOD_MEAN"
                    }
                  }
                }
              }
            ],
            "metricVisualization": "BAR"
          }
        }
      },
      {
        "yPos": 40,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Group by Severity",
          "id": "",
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "measures": [],
                "minAlignmentPeriod": "60s",
                "sliceNameTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"Severity\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "showLabels": false,
            "showTotal": false,
            "sliceAggregatedThreshold": 0
          }
        }
      },
      {
        "yPos": 40,
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Top List - Source",
          "id": "",
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "InstanceId",
                "visible": true
              },
              {
                "column": "region",
                "visible": true
              },
              {
                "column": "project_id",
                "visible": true
              },
              {
                "column": "value",
                "visible": true
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "tableTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"InstanceId\"",
                        "metric.label.\"region\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
                    "pickTimeSeriesFilter": {
                      "direction": "TOP",
                      "numTimeSeries": 30,
                      "rankingMethod": "METHOD_MEAN"
                    }
                  },
                  "unitOverride": ""
                }
              }
            ],
            "displayColumnType": false,
            "metricVisualization": "BAR"
          }
        }
      },
      {
        "yPos": 60,
        "height": 20,
        "width": 48,
        "widget": {
          "title": "Group by Domains",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"QueryName\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  }
}

2. Crea la dashboard personalizzata. Esegui i seguenti comandi gcloud in Cloud Shell.

gcloud monitoring dashboards create --config-from-file=dashboard.json

7. Generazione di query DNS dannose emulate

In questa sezione, eseguirai le seguenti attività:

  • Accedi alle VM tramite SSH.
  • Installa Git sulle VM.
  • Clona il repository del simulatore di rilevamento delle minacce Infoblox.
  • Esegui lo script e analizza l'output generato.

Convalida la configurazione generando query DNS dannose emulate dalle tue VM.

1. Accedi tramite SSH a vm-a-use4. Esegui i seguenti comandi gcloud in Cloud Shell.

gcloud compute ssh vm-a-use4 --zone=us-east4-c

2. Installa Git sulla VM.

sudo apt-get install git -y

3. Clona il repository del simulatore di rilevamento delle minacce di Infoblox.

git clone https://github.com/infobloxopen/ib-threat-detection-simulator

4. Cambia directory impostandola su quella del simulatore.

cd ib-threat-detection-simulator/threat_detection_simulator/

5. Esegui lo script e analizza l'output generato.

Rendi eseguibile lo script.

chmod +x run.sh

Esegui lo script.

./run.sh info basic

6. Esempio di output

L'immagine seguente mostra una parte dell'output dello script visualizzato su una VM in network-a. Questo output descrive in dettaglio i tassi di rilevamento per i diversi tipi di minacce DNS emulati dallo script per il test.

2ed3402eed85ff0a.png

7. Torna a Cloud Shell uscendo dalla sessione SSH.

exit

8. Visualizzare la dashboard personalizzata

Visualizza la dashboard

1. Digita Dashboard nel campo di ricerca nella parte superiore della console Google Cloud, quindi fai clic su Dashboard nei risultati principali.

b28134f84c44d872.png

2. Cerca DNS Armor - Custom Dashboard nel campo di ricerca e poi fai clic su DNS Armor - Custom Dashboard per aprire la dashboard.

490ec7642ef95ffc.png

3. Visualizza la dashboard.

4ff503f457f67399.png

Widget nella dashboard

Questa sezione descrive i vari widget disponibili nella dashboard personalizzata, fornendo una panoramica delle loro funzionalità e dei dati che rappresentano.

  • Log delle minacce:un grafico a barre in pila che mostra i log delle minacce generati per tutte le reti incluse in un progetto in un periodo di tempo specificato.
  • Log delle minacce per regione:un grafico a barre in pila che illustra i log delle minacce, raggruppati per regione, in un periodo di tempo definito.
  • Raggruppa per minaccia:un grafico a torta che classifica i log delle minacce in base al tipo di minaccia in un determinato periodo di tempo.
  • Elenco principale - ThreatID: un elenco che mostra i 30 ID minaccia principali in un periodo di tempo specificato.
  • Raggruppa per gravità:un grafico a torta che raggruppa i log delle minacce in base al livello di gravità in un periodo di tempo definito.
  • Elenco principale - Origine:un elenco che mostra i primi 30 ID istanza (VM di origine) in un periodo di tempo specificato.
  • Raggruppa per domini:un grafico a barre in pila che raggruppa i log delle minacce in base ai nomi di dominio trovati nelle query.

9. Esegui la pulizia

Per evitare addebiti futuri, elimina le risorse create in questo codelab. Assicurati di uscire dalla shell della VM e tornare a Cloud Shell quando esegui i comandi di pulizia.

1. Elimina la dashboard personalizzata.

Poiché l'ID dashboard viene generato dinamicamente al momento della creazione, devi prima recuperare il nome della risorsa utilizzando il nome visualizzato.

DASHBOARD_NAME=$(gcloud monitoring dashboards list --filter="displayName='DNS Armor - Custom Dashboard'" --format='value(name)')
gcloud monitoring dashboards delete $DASHBOARD_NAME --quiet

2. Elimina la metrica basata su log.

gcloud logging metrics delete dns-armor-log-based-metric --quiet

3. Elimina le VM.

gcloud compute instances delete vm-a-use4 --zone=us-east4-c --quiet
gcloud compute instances delete vm-a-usc1 --zone=us-central1-a --quiet

4. Elimina le regole firewall.

gcloud compute firewall-rules delete allow-ssh-iap-a --quiet

5. Elimina i gateway Cloud NAT.

gcloud compute routers nats delete nat-a-use4 --router=router-a-use4 --region=us-east4 --quiet
gcloud compute routers nats delete nat-a-usc1 --router=router-a-usc1 --region=us-central1 --quiet

6. Elimina i router Cloud.

gcloud compute routers delete router-a-use4 --region=us-east4 --quiet
gcloud compute routers delete router-a-usc1 --region=us-central1 --quiet

7. Elimina le subnet.

gcloud compute networks subnets delete subnet-a-use4 --region=us-east4 --quiet
gcloud compute networks subnets delete subnet-a-usc1 --region=us-central1 --quiet

8. Elimina il rilevatore di minacce DNS.

gcloud beta network-security dns-threat-detectors delete my-dns-threat-detector --location=global --quiet

9. Elimina i VPC.

gcloud compute networks delete network-a --quiet

10. Complimenti

Complimenti! Hai configurato, eseguito il deployment e visualizzato correttamente i log di rilevamento delle minacce di DNS Armor . Hai acquisito esperienza pratica nella protezione del tuo ambiente Google Cloud dalle minacce basate sul DNS e nella creazione di una soluzione di monitoraggio personalizzata per gli approfondimenti sulla sicurezza.

In questo codelab hai:

  • È stato eseguito il provisioning di un ambiente di rete con VPC, subnet e macchine virtuali.
  • Configurato l'accesso a internet in uscita per le VM private utilizzando Cloud NAT.
  • È stato implementato un rilevatore di minacce DNS Armor.
  • Minacce DNS simulate e configurazione del rilevamento delle minacce convalidata.
  • È stata creata una metrica personalizzata basata su log dai log delle minacce DNS.
  • È stata creata una dashboard Cloud Monitoring personalizzata per visualizzare e analizzare le minacce DNS.

Passaggi successivi

Documentazione di riferimento