1. Einleitung und Übersicht
DNS Armor, basierend auf Infoblox, ist ein vollständig verwalteter Dienst, der Sicherheit auf DNS-Ebene für Ihre Google Cloud-Arbeitslasten bietet. Der erweiterte Bedrohungsdetektor wurde entwickelt, um schädliche Aktivitäten so früh wie möglich in der Angriffskette zu erkennen – bei der DNS-Abfrage – ohne die betriebliche Komplexität oder den Leistungsaufwand zu erhöhen.
Dieses Codelab enthält eine detaillierte Anleitung zum Konfigurieren und Testen des DNS Armor-Dienstes. Sie richten die erforderliche Netzwerkinfrastruktur ein, erstellen den Threat Detector, testen den Dienst, indem Sie DNS-Bedrohungen simulieren, und visualisieren und analysieren schließlich die Threat-Logs mithilfe eines benutzerdefinierten Cloud Monitoring-Dashboards.
Umfang
In diesem Codelab stellen Sie die folgenden Ressourcen bereit:
- Ein VPC-Netzwerk (
network-a) mit Subnetzen und virtuellen Maschinen, die in den Regionenus-east4undus-central1bereitgestellt werden. - Ein DNS Armor-Detektor für erweiterte Bedrohungen, der so konfiguriert ist, dass er DNS-Abfragen prüft.
- Logbasierte Messwerte, die auf den DNS-Bedrohungslogs basieren.
- Ein benutzerdefiniertes Dashboard zur Visualisierung der DNS-Bedrohungslogs.

Lerninhalte
- So stellen Sie die erforderlichen Netzwerkressourcen bereit, einschließlich VPCs und VMs.
- So stellen Sie einen erweiterten Bedrohungsdetektor bereit und schließen bestimmte Netzwerke aus.
- So validieren Sie die Konfiguration der Bedrohungserkennung mit einem Bedrohungssimulationsskript.
- So visualisieren Sie die DNS-Bedrohungslogs mithilfe von logbasierten Messwerten und einem benutzerdefinierten Dashboard.
Voraussetzungen
- Ein Google Cloud-Projekt.
- Zugriff auf das
gcloud-Befehlszeilentool
2. Vorbereitung
Aufgaben in diesem Abschnitt:
- Prüfen Sie, ob Ihr Google Cloud-Projekt die erforderlichen Einschränkungen für Organisationsrichtlinien erfüllt.
- Prüfen Sie, ob Ihr Nutzerkonto die erforderlichen IAM-Rollen und -Berechtigungen hat.
- Aktivieren Sie die Google Cloud APIs, die für dieses Codelab erforderlich sind.
- Weisen Sie dem Compute Engine-Dienstkonto die IAM-Rolle
roles/logging.viewerzu.
Einschränkungen für Organisationsrichtlinien
Damit Sie dieses Codelab erfolgreich durchlaufen können, müssen Sie die auf Ihr Projekt angewendeten Einschränkungen für Organisationsrichtlinien überprüfen. Bestimmte Richtlinien können die Bereitstellung erforderlicher Ressourcen verhindern. Die folgenden Einschränkungen können sich auf die Konfiguration dieses Codelabs auswirken:
constraints/gcp.resourceLocations: Beschränkt die Regionen, in denen Sie Ressourcen erstellen können. Für das Codelab sindus-east4undus-central1erforderlich.constraints/compute.vmExternalIpAccess: Verhindert die Erstellung von VMs mit öffentlichen IP-Adressen, die die Einrichtung beeinträchtigen könnten, wenn Sie die Verwendung des Flags--no-addressim Codelab nicht befolgen .constraints/compute.shieldedVm: Erzwingt die Erstellung von Shielded VMs, die in den Befehlen zum Erstellen von VMs im Codelab nicht angegeben sind, was möglicherweise zu einem Fehler führt.constraints/gcp.restrictServiceUsage: Beschränkt, welche Google Cloud APIs aktiviert werden können, und könnte das Codelab blockieren, wenncompute.googleapis.com,networksecurity.googleapis.com,logging.googleapis.comundmonitoring.googleapis.comnicht zulässig sind.
IAM-Rollen und -Berechtigungen
Damit Sie dieses Codelab erfolgreich durchlaufen können, müssen Sie die IAM-Rollen und -Berechtigungen überprüfen, die Ihrem Nutzer zugewiesen sind. Für dieses Codelab sind die folgenden IAM-Rollen und ‑Berechtigungen erforderlich.
- Administrator für Dienstnutzung (
roles/serviceusage.serviceUsageAdmin): Zum Aktivieren der erforderlichen Google Cloud APIs für das Codelab. - Compute Network Admin (
roles/compute.networkAdmin): Zum Erstellen und Verwalten von VPC-Netzwerken, Subnetzen und Cloud NAT. - Compute Security Admin (
roles/compute.securityAdmin): Zum Konfigurieren der Firewallregeln für den SSH-Zugriff auf die virtuellen Maschinen. - Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1): Zum Erstellen und Verwalten der für das Lab erforderlichen virtuellen Maschinen. - Nutzer IAP-gesicherter Tunnel (
roles/iap.tunnelResourceAccessor): Zum Herstellen einer Verbindung zu den virtuellen Maschinen über SSH über Identity-Aware Proxy (IAP). - Network Security Admin (
roles/networksecurity.admin): Zum Erstellen und Verwalten des DNS Armor-Bedrohungsdetektors. - Loganzeige (
roles/logging.viewer): Zum Aufrufen und Analysieren der Bedrohungslogs im Log-Explorer.
Google Cloud APIs
Achten Sie darauf, dass die erforderlichen Google Cloud-APIs in Ihrem Projekt aktiviert sind.
1. Aktivieren Sie die erforderlichen APIs, indem Sie die folgenden gcloud-Befehle in Cloud Shell ausführen.
gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com
2. Prüfen Sie, ob die APIs aktiviert sind, indem Sie die folgenden gcloud-Befehle in Cloud Shell ausführen.
gcloud services list --enabled
Compute Engine-Dienstkonto
Das Script für die Bedrohungssimulation benötigt Berechtigungen zum Lesen und Melden der generierten Bedrohungslogs aus Cloud Logging. Da das Skript von einer VM aus ausgeführt wird, die das Compute Engine-Standarddienstkonto verwendet, muss diesem Dienstkonto die IAM-Rolle roles/logging.viewer zugewiesen sein.
1. Legen Sie die Umgebungsvariablen fest, indem Sie die folgenden Befehle in Cloud Shell ausführen.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
2. Weisen Sie dem Compute Engine-Dienstkonto die Rolle „Logging Viewer“ zu. Führen Sie die folgenden gcloud-Befehle in Cloud Shell aus.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"
3. Netzwerk- und Rechenressourcen bereitstellen
Aufgaben in diesem Abschnitt:
- Erstellen Sie das VPC-Netzwerk
network-amit benutzerdefinierten Subnetzen. - Konfigurieren Sie Cloud Router und Cloud NAT für den Internet-Egress in
network-a. - Erstellen Sie Firewallregeln, um SSH-Zugriff auf VMs über den IAP-IP-Bereich für
network-azu ermöglichen. - Stellen Sie virtuelle Linux-Maschinen in
network-aohne öffentliche IP-Adressen bereit.
VPCs und Subnetze erstellen
1. Erstellen Sie Netzwerk-A und seine Subnetze in den Regionen us-east4 und us-central1. Führen Sie die folgenden gcloud-Befehle in Cloud Shell aus.
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
Ausgehenden Internettraffic konfigurieren
1. Erstellen Sie einen Cloud Router und Cloud NAT für network-a, um den Internet-Egress für VMs ohne öffentliche IP-Adressen zu ermöglichen.
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
Firewallregeln konfigurieren
1. Erstellen Sie Firewallregeln für network-a, um den SSH-Zugriff über den IP-Bereich von IAP zuzulassen. Führen Sie die folgenden gcloud-Befehle in Cloud Shell aus.
gcloud compute firewall-rules create allow-ssh-iap-a \
--network=network-a \
--allow=tcp:22 \
--source-ranges=35.235.240.0/20
Virtuelle Maschinen erstellen
1. Linux-VMs in network-a. erstellen
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. DNS-Bedrohungsdetektor erstellen
Aufgaben in diesem Abschnitt:
- Erstellen Sie den Bedrohungsdetektor.
- Listen Sie den Bedrohungsdetektor auf.
Nachdem die VPCs, Subnetze und VMs bereitgestellt wurden, erstellen Sie als Nächstes den DNS-Bedrohungsdetektor.
1. Erstellen Sie den Threat Detector mit dem Befehl 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. Rufen Sie eine Liste der Bedrohungsdetektoren auf, um die Erstellung zu bestätigen.
gcloud beta network-security dns-threat-detectors list --location=global
5. Logbasierte Messwerte erstellen
Aufgaben in diesem Abschnitt:
- Logeintrag verstehen
- Erstellen Sie die Datei
config.yaml. - Logbasierten Messwert erstellen
1. Informationen zum Logeintrag Eine Tabelle mit allen Feldern in den DNS Armor-Logs finden Sie in der Dokumentation zu Bedrohungslogs. In diesem Abschnitt geht es um die spezifischen Felder, die zum Erstellen der logbasierten Messwerte verwendet werden.
Die folgenden Felder werden zum Erstellen der logbasierten Messwerte verwendet:
- vmInstanceId:Name der VM-Instanz von Compute Engine; gilt nur für Abfragen, die von Compute Engine-VMs initiiert werden.
- queryName:Name der DNS-Abfrage.
- severity:Der Schweregrad (Hoch, Mittel, Niedrig oder Info), der mit der erkannten Bedrohung verknüpft ist. Weitere Informationen finden Sie in der Definition der Schweregradebenen von Infoblox.
- location:Google Cloud-Region, aus der die Antwort bereitgestellt wurde.
- threat:Der Name der erkannten Bedrohung.
- threatId:Eindeutige Kennung der Bedrohung.
2. Erstellen Sie die Datei config.yaml. Erstellen Sie zuerst mit dem Befehl touch eine leere Datei config.yaml.
touch config.yaml
3. Füllen Sie die Datei config.yaml aus. In dieser Datei wird definiert, wie ein logbasierter Messwert für DNS Armor-Bedrohungsprotokolle erstellt wird. Darin wird angegeben, welche Logeinträge gefiltert werden sollen, welche Labels aus diesen Einträgen extrahiert werden sollen und welche Eigenschaften der Messwert selbst hat.
Öffnen Sie die Datei config.yaml in einem Texteditor Ihrer Wahl und fügen Sie den folgenden Inhalt ein.
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. Aktualisieren Sie die Projektnummer. Verwenden Sie den folgenden sed-Befehl, um den Platzhalter PROJECT_NUMBER durch den Wert aus Ihrer Umgebungsvariable zu ersetzen.
sed -i "s/PROJECT_NUMBER/$PROJECT_NUMBER/g" config.yaml
5. Logbasierten Messwert erstellen Führen Sie schließlich den folgenden gcloud-Befehl in Cloud Shell aus, um die Messwert zu erstellen.
gcloud logging metrics create dns-armor-log-based-metric --config-from-file=config.yaml
6. Benutzerdefiniertes Dashboard erstellen
Aufgaben in diesem Abschnitt:
- Erstellen Sie die Datei
dashboard.json. - Benutzerdefiniertes Dashboard erstellen
1. Erstellen Sie die Datei dashboard.json. Erstellen Sie zuerst mit dem Befehl touch eine leere Datei dashboard.json.
touch dashboard.json
2. Füllen Sie die Datei dashboard.json aus. In der Datei dashboard.json wird das benutzerdefinierte Monitoring-Dashboard konfiguriert. Sie definiert Widgets, Anzeigeeigenschaften und wie logbasierte Messwerte visualisiert, aggregiert und gefiltert werden.
Öffnen Sie die Datei dashboard.json in einem Texteditor Ihrer Wahl und fügen Sie den folgenden Inhalt ein.
{
"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. Erstellen Sie das benutzerdefinierte Dashboard. Führen Sie die folgenden gcloud-Befehle in Cloud Shell aus.
gcloud monitoring dashboards create --config-from-file=dashboard.json
7. Emulierte schädliche DNS-Abfragen generieren
Aufgaben in diesem Abschnitt:
- Stellen Sie eine SSH-Verbindung zu den VMs her.
- Installieren Sie Git auf den VMs.
- Klonen Sie das Repository für den Infoblox-Simulator zur Bedrohungserkennung.
- Führen Sie das Skript aus und analysieren Sie die generierte Ausgabe.
Überprüfen Sie die Einrichtung, indem Sie emulierte schädliche DNS-Abfragen von Ihren VMs generieren.
1. Stellen Sie eine SSH-Verbindung zu vm-a-use4 her. Führen Sie die folgenden gcloud-Befehle in Cloud Shell aus.
gcloud compute ssh vm-a-use4 --zone=us-east4-c
2. Installieren Sie Git auf der VM.
sudo apt-get install git -y
3. Klonen Sie das Repository für den Infoblox-Simulator zur Erkennung von Sicherheitsrisiken.
git clone https://github.com/infobloxopen/ib-threat-detection-simulator
4. Wechseln Sie mit in das Verzeichnis des Simulators.
cd ib-threat-detection-simulator/threat_detection_simulator/
5. Führen Sie das Skript aus und analysieren Sie die generierte Ausgabe.
Machen Sie das Skript ausführbar.
chmod +x run.sh
Führen Sie das Skript aus.
./run.sh info basic
6. Beispielausgabe
Das folgende Bild zeigt einen Teil der Ausgabe des Skripts auf einer VM in network-a. In dieser Ausgabe werden die Erkennungsraten für die verschiedenen DNS-Bedrohungstypen aufgeführt, die vom Testskript emuliert wurden.

7. Kehren Sie zu Cloud Shell zurück, indem Sie die SSH-Sitzung beenden.
exit
8. Benutzerdefiniertes Dashboard aufrufen
Dashboard aufrufen
1. Geben Sie oben in der Google Cloud Console in das Suchfeld Dashboards ein und klicken Sie dann unter den Top-Ergebnissen auf Dashboards.

2. Suchen Sie im Suchfeld nach DNS Armor - Custom Dashboard und klicken Sie dann auf DNS Armor - Custom Dashboard, um das Dashboard zu öffnen.

3. Rufen Sie das Dashboard auf.

Widgets im Dashboard
In diesem Abschnitt werden die verschiedenen Widgets beschrieben, die im benutzerdefinierten Dashboard verfügbar sind. Außerdem erhalten Sie einen Überblick über ihre Funktionen und die Daten, die sie darstellen.
- Bedrohungslogs:Ein gestapeltes Balkendiagramm mit den Bedrohungslogs, die für alle enthaltenen Netzwerke in einem Projekt in einem bestimmten Zeitraum generiert wurden.
- Bedrohungslogs nach Region:Ein gestapeltes Balkendiagramm mit Bedrohungslogs, gruppiert nach Region, über einen definierten Zeitraum.
- Nach Bedrohung gruppieren:Ein Kreisdiagramm, in dem Bedrohungslogs innerhalb eines bestimmten Zeitrahmens nach Bedrohungstyp kategorisiert werden.
- Top-Liste – ThreatID: Eine Liste mit den 30 wichtigsten ThreatIDs innerhalb eines bestimmten Zeitraums.
- Nach Schweregrad gruppieren:Ein Kreisdiagramm, in dem Bedrohungslogs nach Schweregrad innerhalb eines definierten Zeitrahmens gruppiert werden.
- Top-Liste – Quelle:Eine Liste mit den 30 wichtigsten Instanz-IDs (Quell-VMs) innerhalb eines bestimmten Zeitraums.
- Nach Domains gruppieren:Ein gestapeltes Balkendiagramm, in dem Bedrohungslogs nach den in den Anfragen gefundenen Domainnamen gruppiert werden.
9. Bereinigen
Löschen Sie die in diesem Codelab erstellten Ressourcen, um zukünftige Gebühren zu vermeiden. Achten Sie darauf, die Shell der VM zu beenden und zu Cloud Shell zurückzukehren, wenn Sie die Bereinigungsbefehle ausführen.
1. Löschen Sie das benutzerdefinierte Dashboard.
Da die Dashboard-ID bei der Erstellung dynamisch generiert wird, müssen Sie zuerst den Ressourcennamen anhand des Anzeigenamens abrufen.
DASHBOARD_NAME=$(gcloud monitoring dashboards list --filter="displayName='DNS Armor - Custom Dashboard'" --format='value(name)')
gcloud monitoring dashboards delete $DASHBOARD_NAME --quiet
2. Löschen Sie den Log-basierten Messwert.
gcloud logging metrics delete dns-armor-log-based-metric --quiet
3. Löschen Sie die VMs.
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. Löschen Sie die Firewallregeln.
gcloud compute firewall-rules delete allow-ssh-iap-a --quiet
5. Löschen Sie die Cloud NAT-Gateways.
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. Löschen Sie die Cloud Router.
gcloud compute routers delete router-a-use4 --region=us-east4 --quiet
gcloud compute routers delete router-a-usc1 --region=us-central1 --quiet
7. Löschen Sie die Subnetze.
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. Löschen Sie den DNS-Bedrohungsdetektor.
gcloud beta network-security dns-threat-detectors delete my-dns-threat-detector --location=global --quiet
9. Löschen Sie die VPCs.
gcloud compute networks delete network-a --quiet
10. Glückwunsch
Glückwunsch! Sie haben die Logs zur Bedrohungserkennung von DNS Armor erfolgreich konfiguriert, bereitgestellt und visualisiert . Sie haben praktische Erfahrung im Schutz Ihrer Google Cloud-Umgebung vor DNS-basierten Bedrohungen und beim Erstellen einer benutzerdefinierten Monitoringlösung für Sicherheitsinformationen gesammelt.
In diesem Codelab haben Sie Folgendes getan:
- Sie haben eine Netzwerkumgebung mit VPC, Subnetzen und virtuellen Maschinen bereitgestellt.
- Ausgehender Internetzugriff für private VMs mit Cloud NAT konfiguriert.
- Sie haben einen DNS Armor-Bedrohungsdetektor bereitgestellt.
- Simulierte DNS-Bedrohungen und validierte die Konfiguration der Bedrohungserkennung.
- Sie haben einen benutzerdefinierten logbasierten Messwert aus DNS-Bedrohungslogs erstellt.
- Ein benutzerdefiniertes Cloud Monitoring-Dashboard erstellen, um DNS-Bedrohungen zu visualisieren und zu analysieren.