1. Introduction et présentation générale
DNS Armor, qui repose sur Infoblox, est un service entièrement géré qui assure la sécurité de la couche DNS pour vos charges de travail Google Cloud. Son détecteur de menaces avancé est conçu pour détecter les activités malveillantes au tout début de la chaîne d'attaque (la requête DNS), sans complexité opérationnelle ni impact sur les performances.
Cet atelier de programmation fournit des instructions détaillées pour configurer et tester le service DNS Armor. Vous allez configurer l'infrastructure réseau nécessaire, créer le détecteur de menaces, tester le service en simulant des menaces DNS, puis visualiser et analyser les journaux de menaces à l'aide d'un tableau de bord Cloud Monitoring personnalisé.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez provisionner les ressources suivantes :
- Un réseau VPC (
network-a) avec des sous-réseaux et des machines virtuelles provisionnés dans les régionsus-east4etus-central1. - Un détecteur de menaces avancées DNS Armor configuré pour inspecter les requêtes DNS.
- Métriques basées sur les journaux de menaces DNS.
- Un tableau de bord personnalisé pour visualiser les journaux de menaces DNS.

Points abordés
- Comment provisionner les ressources réseau nécessaires, y compris les VPC et les machines virtuelles.
- Découvrez comment déployer un détecteur de menaces avancées et exclure des réseaux spécifiques.
- Comment valider la configuration de la détection des menaces à l'aide d'un script de simulation des menaces.
- Découvrez comment visualiser les journaux des menaces DNS à l'aide de métriques basées sur les journaux et d'un tableau de bord personnalisé.
Prérequis
- Un projet Google Cloud.
- Accès à l'outil de ligne de commande
gcloud
2. Prérequis
Dans cette section, vous allez effectuer les tâches suivantes :
- Vérifiez que votre projet Google Cloud respecte les contraintes nécessaires des règles d'administration.
- Vérifiez que votre compte utilisateur dispose des rôles et autorisations IAM requis.
- Activez les API Google Cloud essentielles pour cet atelier de programmation.
- Attribuez le rôle IAM
roles/logging.viewerau compte de service Compute Engine.
Contraintes liées aux règles d'administration
Pour mener à bien cet atelier de programmation, veuillez vérifier les contraintes de règle d'administration appliquées à votre projet. Certaines règles peuvent entraver le provisionnement des ressources nécessaires. Les contraintes suivantes peuvent avoir un impact sur la configuration de cet atelier de programmation :
constraints/gcp.resourceLocations: limite les régions dans lesquelles vous pouvez créer des ressources. Cet atelier de programmation nécessiteus-east4etus-central1.constraints/compute.vmExternalIpAccess: empêche la création de machines virtuelles avec des adresses IP publiques, ce qui pourrait interférer avec la configuration si vous ne suivez pas l'utilisation de l'indicateur--no-addressdans l'atelier de programmation .constraints/compute.shieldedVm: force la création de VM protégées, que les commandes de création de VM du tutoriel ne spécifient pas, ce qui peut entraîner une erreur.constraints/gcp.restrictServiceUsage: limite les API Google Cloud qui peuvent être activées et peut bloquer l'atelier de programmation s'il n'autorise pascompute.googleapis.com,networksecurity.googleapis.com,logging.googleapis.cometmonitoring.googleapis.com.
Rôles et autorisations IAM
Pour réussir cet atelier de programmation, veuillez vérifier les rôles et autorisations IAM accordés à votre utilisateur. Les rôles et autorisations IAM suivants sont nécessaires pour effectuer cet atelier de programmation.
- Administrateur de l'utilisation des services (
roles/serviceusage.serviceUsageAdmin) : pour activer les API Google Cloud requises pour l'atelier de programmation. - Administrateur de réseaux Compute (
roles/compute.networkAdmin) : permet de créer et de gérer des réseaux VPC, des sous-réseaux et Cloud NAT. - Administrateur de sécurité Compute (
roles/compute.securityAdmin) : pour configurer les règles de pare-feu pour l'accès SSH aux machines virtuelles. - Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1) : pour créer et gérer les machines virtuelles requises pour l'atelier. - Utilisateur de tunnels sécurisés par IAP (
roles/iap.tunnelResourceAccessor) : pour se connecter aux machines virtuelles à l'aide de SSH via Identity-Aware Proxy (IAP). - Administrateur de la sécurité du réseau (
roles/networksecurity.admin) : pour créer et gérer le détecteur de menaces DNS Armor. - Lecteur de journaux (
roles/logging.viewer) : pour afficher et analyser les journaux des menaces dans l'explorateur de journaux.
API Google Cloud
Veuillez vous assurer que les API Google Cloud requises sont activées dans votre projet.
1. Activez les API nécessaires en exécutant les commandes gcloud suivantes dans Cloud Shell.
gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com
2. Vérifiez que les API sont activées en exécutant les commandes gcloud suivantes dans Cloud Shell.
gcloud services list --enabled
Compte de service Compute Engine
Le script de simulation de menaces nécessite des autorisations pour lire les journaux de menaces générés à partir de Cloud Logging et générer des rapports à leur sujet. Étant donné que le script sera exécuté à partir d'une VM utilisant le compte de service Compute Engine par défaut, le rôle IAM roles/logging.viewer doit être attribué à ce compte de service.
1. Définissez les variables d'environnement en exécutant les commandes suivantes dans Cloud Shell.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
2. Attribuez le rôle Lecteur de journaux au compte de service Compute Engine. Exécutez les commandes gcloud suivantes dans Cloud Shell.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"
3. Provisionner des ressources réseau et de calcul
Dans cette section, vous allez effectuer les tâches suivantes :
- Créez un réseau VPC
network-aavec des sous-réseaux personnalisés. - Configurez les routeurs Cloud Router et Cloud NAT pour la sortie Internet dans
network-a. - Créez des règles de pare-feu pour autoriser l'accès SSH aux VM à partir de la plage d'adresses IP d'IAP pour
network-a. - Provisionnez des machines virtuelles Linux dans
network-asans adresses IP publiques.
Créer des VPC et des sous-réseaux
1. Créez network-a et ses sous-réseaux dans les régions us-east4 et us-central1. Exécutez les commandes gcloud suivantes dans 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
Configurer la sortie Internet
1. Créez Cloud Router et Cloud NAT pour network-a afin d'autoriser le trafic Internet sortant pour les VM sans adresse IP publique.
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
Configurer les règles de pare-feu
1. Créez des règles de pare-feu pour network-a afin d'autoriser l'accès SSH depuis la plage d'adresses IP d'IAP. Exécutez les commandes gcloud suivantes dans Cloud Shell.
gcloud compute firewall-rules create allow-ssh-iap-a \
--network=network-a \
--allow=tcp:22 \
--source-ranges=35.235.240.0/20
Créer des machines virtuelles
1. Créer des VM Linux dans 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. Créer le détecteur de menaces DNS
Dans cette section, vous allez effectuer les tâches suivantes :
- Créez le détecteur de menaces.
- Listez le détecteur de menaces.
Maintenant que les VPC, les sous-réseaux et les machines virtuelles sont provisionnés, l'étape suivante consiste à créer le détecteur de menaces DNS.
1. Créez le détecteur de menaces à l'aide de la commande 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. Affichez la liste des détecteurs de menaces pour confirmer la création.
gcloud beta network-security dns-threat-detectors list --location=global
5. Créer des métriques basées sur les journaux
Dans cette section, vous allez effectuer les tâches suivantes :
- Comprendre l'entrée de journal
- Créez le fichier
config.yaml. - Créez la métrique basée sur les journaux.
1. Comprendre l'entrée de journal Vous trouverez un tableau de tous les champs des journaux DNS Armor dans la documentation sur les journaux des menaces. Cette section se concentre sur les champs spécifiques qui seront utilisés pour créer les métriques basées sur les journaux.
Les champs suivants seront utilisés pour créer les métriques basées sur les journaux :
- vmInstanceId : nom d'instance de la VM Compute Engine, applicable uniquement aux requêtes lancées par des VM Compute Engine.
- queryName : nom de la requête DNS.
- severity : niveau de gravité (élevée, moyenne, faible ou info) associé à la menace détectée. Pour en savoir plus, consultez Définition des niveaux de gravité (en anglais) sur le site d'Infoblox.
- location : région Google Cloud à partir de laquelle la réponse a été diffusée.
- threat : nom de la menace détectée.
- threatId : identifiant unique de la menace.
2. Créez le fichier config.yaml. Commencez par créer un fichier config.yaml vide à l'aide de la commande touch.
touch config.yaml
3. Remplissez le fichier config.yaml. Ce fichier définit comment créer une métrique basée sur les journaux pour les journaux de menaces DNS Armor. Il spécifie les entrées de journal à filtrer, les libellés à extraire de ces entrées et les propriétés de la métrique elle-même.
Ouvrez le fichier config.yaml dans l'éditeur de texte de votre choix et collez-y le contenu suivant.
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. Mettez à jour le numéro de projet. Utilisez la commande sed suivante pour remplacer l'espace réservé PROJECT_NUMBER par la valeur de votre variable d'environnement.
sed -i "s/PROJECT_NUMBER/$PROJECT_NUMBER/g" config.yaml
5. Créez la métrique basée sur les journaux. Enfin, exécutez la commande gcloud suivante dans Cloud Shell pour créer la métrique.
gcloud logging metrics create dns-armor-log-based-metric --config-from-file=config.yaml
6. Créer le tableau de bord personnalisé
Dans cette section, vous allez effectuer les tâches suivantes :
- Créez le fichier
dashboard.json. - Créer le tableau de bord personnalisé
1. Créez le fichier dashboard.json. Commencez par créer un fichier dashboard.json vide à l'aide de la commande touch.
touch dashboard.json
2. Remplissez le fichier dashboard.json. Le fichier dashboard.json configure un tableau de bord de surveillance personnalisé, en définissant les widgets, les propriétés d'affichage et la façon dont les métriques basées sur les journaux sont visualisées, agrégées et filtrées.
Ouvrez le fichier dashboard.json dans l'éditeur de texte de votre choix et collez-y le contenu suivant.
{
"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. créer le tableau de bord personnalisé ; Exécutez les commandes gcloud suivantes dans Cloud Shell.
gcloud monitoring dashboards create --config-from-file=dashboard.json
7. Générer des requêtes DNS malveillantes émulées
Dans cette section, vous allez effectuer les tâches suivantes :
- Connectez-vous en SSH aux VM.
- Installez Git sur les VM.
- Clonez le dépôt du simulateur de détection des menaces Infoblox.
- Exécutez le script et analysez le résultat généré.
Validez la configuration en générant des requêtes DNS malveillantes émulées à partir de vos VM.
1. Connectez-vous en SSH à vm-a-use4. Exécutez les commandes gcloud suivantes dans Cloud Shell.
gcloud compute ssh vm-a-use4 --zone=us-east4-c
2. Installez Git sur la VM.
sudo apt-get install git -y
3. Clonez le dépôt du simulateur de détection des menaces Infoblox.
git clone https://github.com/infobloxopen/ib-threat-detection-simulator
4. Remplacez le répertoire par celui du simulateur.
cd ib-threat-detection-simulator/threat_detection_simulator/
5. Exécutez le script et analysez le résultat généré.
Rendez le script exécutable.
chmod +x run.sh
Exécutez le script.
./run.sh info basic
6. Exemple de résultat
L'image suivante affiche une partie du résultat du script tel qu'il apparaît sur une VM dans network-a. Cette sortie détaille les taux de détection pour les différents types de menaces DNS que le script de test a émuler.

7. Revenez à Cloud Shell en quittant la session SSH.
exit
8. Afficher le tableau de bord personnalisé
Consulter le tableau de bord
1. Saisissez Tableaux de bord dans le champ de recherche en haut de la console Google Cloud, puis cliquez sur Tableaux de bord sous les principaux résultats.

2. Recherchez DNS Armor - Custom Dashboard dans le champ de recherche, puis cliquez sur DNS Armor - Custom Dashboard pour ouvrir le tableau de bord.

3. Consultez le tableau de bord.

Widgets du tableau de bord
Cette section décrit les différents widgets disponibles dans le tableau de bord personnalisé. Elle présente leurs fonctionnalités et les données qu'ils représentent.
- Journaux des menaces : graphique à barres empilées affichant les journaux des menaces générés pour tous les réseaux inclus dans un projet au cours d'une période spécifiée.
- Journaux des menaces par région : graphique à barres empilées illustrant les journaux des menaces, regroupés par région, sur une période définie.
- Regrouper par menace : graphique à secteurs qui classe les journaux des menaces en fonction du type de menace au cours d'une période donnée.
- Liste des principaux ID de menace : liste des 30 principaux ID de menace au cours d'une période donnée.
- Regrouper par gravité : graphique à secteurs regroupant les journaux des menaces par niveau de gravité au cours d'une période définie.
- Top 30 des ID d'instance (VM sources) : liste des 30 premiers ID d'instance (VM sources) au cours d'une période donnée.
- Regrouper par domaines : graphique à barres empilées regroupant les journaux des menaces par noms de domaine trouvés dans les requêtes.
9. Nettoyage
Pour éviter d'accumuler des frais, supprimez les ressources créées dans cet atelier de programmation. Veillez à quitter le shell de la VM et à revenir à Cloud Shell lorsque vous exécutez les commandes de nettoyage.
1. Supprimez le tableau de bord personnalisé.
Étant donné que l'ID du tableau de bord est généré de manière dynamique lors de la création, vous devez d'abord récupérer le nom de la ressource à l'aide de son nom à afficher.
DASHBOARD_NAME=$(gcloud monitoring dashboards list --filter="displayName='DNS Armor - Custom Dashboard'" --format='value(name)')
gcloud monitoring dashboards delete $DASHBOARD_NAME --quiet
2. Supprimez la métrique basée sur les journaux.
gcloud logging metrics delete dns-armor-log-based-metric --quiet
3. Supprimez les 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. Supprimez les règles de pare-feu.
gcloud compute firewall-rules delete allow-ssh-iap-a --quiet
5. Supprimez les passerelles 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. Supprimez les routeurs 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. Supprimez les sous-réseaux.
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. Supprimez le détecteur de menaces DNS.
gcloud beta network-security dns-threat-detectors delete my-dns-threat-detector --location=global --quiet
9. Supprimez les VPC.
gcloud compute networks delete network-a --quiet
10. Félicitations
Félicitations ! Vous avez configuré, déployé et visualisé les journaux de détection des menaces DNS Armor . Vous avez acquis une expérience pratique pour protéger votre environnement Google Cloud contre les menaces basées sur le DNS et pour créer une solution de surveillance personnalisée afin d'obtenir des informations sur la sécurité.
Dans cet atelier de programmation, vous avez :
- Provisionnement d'un environnement réseau avec un VPC, des sous-réseaux et des machines virtuelles.
- Sortie Internet configurée pour les VM privées à l'aide de Cloud NAT.
- Déploiement d'un détecteur de menaces DNS Armor.
- Simulé des menaces DNS et validé la configuration de détection des menaces.
- Créer des métriques personnalisées basées sur les journaux à partir des journaux des menaces DNS.
- Créez un tableau de bord Cloud Monitoring personnalisé pour visualiser et analyser les menaces DNS.