1. Einführung
Mit benannten IP-Adresslisten in Google Cloud Armor können Sie auf IP-Adresslisten und IP-Bereiche verweisen, die von Drittanbietern verwaltet werden. Sie können benannte IP-Adresslisten innerhalb einer Sicherheitsrichtlinie konfigurieren. Sie müssen nicht jede IP-Adresse oder jeden IP-Bereich einzeln manuell angeben.
Lerninhalte
- Vorteile von benannten IP-Adresslisten in Cloud Armor
- Cloud Armor-Sicherheitsrichtlinie erstellen
- Benannte IP-Adressliste in Cloud Armor bereitstellen
- Globalen Load Balancer erstellen
- Verwaltete Instanzgruppe mit Beispieltestanwendung erstellen
Voraussetzungen
- Erfahrung mit Sicherheitsrichtlinien und Load Balancern
2. Traffic nur von zulässigen Drittanbietern zulassen
Ein typischer Anwendungsfall ist die Erstellung einer Zulassungsliste mit den IP-Adressen eines zugelassenen Drittanbieters, damit nur Traffic von diesem Partner auf den Load-Balancer und die Back-Ends zugreifen kann.
CDN-Anbieter müssen beispielsweise regelmäßig Inhalte von Ursprungsservern abrufen, um sie an ihre eigenen Caches zu verteilen. Eine Partnerschaft mit Google bietet eine direkte Verbindung zwischen CDN-Anbietern und dem Edge-Netzwerk von Google. CDN-Nutzer in Google Cloud können diese direkte Verbindung bei Ursprungs-Pull-Vorgängen nutzen. In diesem Fall möchte der CDN-Nutzer vielleicht eine Sicherheitsrichtlinie erstellen, die nur Traffic von diesem bestimmten CDN-Anbieter zulässt.
In diesem Beispiel veröffentlicht ein CDN-Anbieter seine IP-Adressliste 23.235.32.0/20, 43.249.72.0/22, ⋯. Ein CDN-Nutzer konfiguriert eine Sicherheitsregel, die nur Traffic von diesen IP-Adressen zulässt. Daher sind zwei Zugangspunkte für CDN-Anbieter zulässig (23.235.32.10 und 43.249.72.10) und ihr Traffic ist somit auch zulässig. Der Traffic vom nicht autorisierten Zugangspunkt 198.51.100.1 wird blockiert.

Benannte IP-Adresse in Google Cloud Armor
3. Konfiguration und Verwaltung durch vorkonfigurierte Regeln vereinfachen
CDN-Anbieter verwenden häufig bekannte IP-Adressen, die von vielen CDN-Nutzern verwendet werden müssen. Diese Listen ändern sich im Laufe der Zeit, wenn Anbieter IP-Adressen hinzufügen, entfernen und aktualisieren.
Die Verwendung einer benannten IP-Adressliste in einer Sicherheitsrichtlinie vereinfacht den Vorgang der Konfiguration und Verwaltung der IP-Adresse, da Google Cloud Armor automatisch die Informationen von CDN-Anbietern täglich synchronisiert. Dadurch entfällt die zeitaufwendige und fehleranfällige manuelle Verwaltung einer großen IP-Adressliste.
Anbieter von IP-Adresslisten
Die in der folgenden Tabelle aufgeführten Anbieter von IP-Adressenlisten werden bei Google Cloud Armor unterstützt. Dies sind CDN-Provider, die eine Partnerschaft mit Google eingegangen sind. Die IP-Adresslisten werden über einzelne öffentliche URLs veröffentlicht.
Diese Partner stellen separate Listen mit IPv4- und IPv6-Adressen bereit. Google Cloud Armor verwendet die bereitgestellten URLs zum Abrufen von Listen und konvertiert die Listen dann in benannte IP-Adresslisten. Auf die Listen verweisen Sie nach den Namen in der Tabelle.

Alternativ können Sie Cloud Shell verwenden, um eine Liste der vorkonfigurierten benannten IP-Adresslisten abzurufen.
Melden Sie sich in Cloud Shell an und legen Sie Ihre Projekt-ID fest.
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
Über Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
Dadurch wird Folgendes zurückgegeben:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
4. Codelab-Topologie

5. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird später in diesem Codelab als PROJECT_ID bezeichnet.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Google Cloud-Ressourcen verwenden zu können.
Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Folgen Sie bitte der Anleitung im Abschnitt „Bereinigen“, in der Sie erfahren, wie Sie Ressourcen herunterfahren können, damit nach Abschluss dieser Anleitung keine Gebühren anfallen. Neue Nutzer von Google Cloud kommen für das Programm für kostenlose Testversionen mit einem Guthaben von 300$ infrage.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Für dieses Lab benötigen Sie lediglich einen Browser.
6. VPC-Netzwerk erstellen
VPC-Netzwerk
Über Cloud Shell
gcloud compute networks create
named-list-vpc
--subnet-mode custom
Subnetz erstellen
Über Cloud Shell
gcloud compute networks subnets create named-ip-subnet \
--network
named-list-vpc
--range 10.0.0.0/24 --region us-east1
Firewallregeln erstellen
Über Cloud Shell
gcloud compute --project=$projectid firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0
gcloud compute --project=$projectid firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16
Load-Balancer erstellen
Instanzvorlage erstellen
Über Cloud Shell
gcloud beta compute --project=$projectid instance-templates create us-east1-template --machine-type=e2-medium --subnet=projects/$projectid/regions/us-east1/subnetworks/named-ip-subnet --network-tier=PREMIUM --metadata=startup-script-url=gs://cloud-training/gcpnet/httplb/startup.sh --maintenance-policy=MIGRATE --image=debian-10-buster-v20210217 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=us-east1-template --no-shielded-secure-boot --no-shielded-vtpm --no-shielded-integrity-monitoring --reservation-affinity=any
Verwaltete Instanzgruppe erstellen
Über Cloud Shell
gcloud compute --project=$projectid instance-groups managed create us-east1-mig --base-instance-name=us-east1-mig --template=us-east1-template --size=1 --zone=us-east1-b
7. Backends prüfen
Prüfen Sie, ob VM-Instanzen in beiden Regionen erstellt werden und auf ihre HTTP-Websites zugreifen.
- Klicken Sie in Compute Engine im Menü auf der linken Seite auf „VM-Instanzen“.
- Achten Sie auf die Instanzen, die mit „us-east1-mig“ beginnen. Diese Instanzen sind Teil der verwalteten Instanzgruppen.
- Klicken Sie auf die externe IP-Adresse einer Instanz von us-east1-mig. Es sollten dann die Client-IP (Ihre IP-Adresse) und der Hostname (beginnt mit us-east1-mig) angezeigt werden.
HTTP Load Balancer konfigurieren
- Klicken Sie in der Cloud Console auf das Navigationsmenü (
) > „Netzwerkdienste“ > „Load-Balancing“ und dann auf „Load-Balancer erstellen“. - Klicken Sie unter „HTTP(S) Load Balancing“ auf „Konfiguration starten“.

- Wählen Sie „Vom Internet zu meinen VMs“ aus und klicken Sie auf „Weiter“.
- Legen Sie als Name „http-lb“ fest.
Backend konfigurieren
Backend-Dienste leiten eingehenden Traffic an ein oder mehrere verknüpfte Backends weiter. Jedes Backend besteht aus einer Instanzgruppe und zusätzlichen Metadaten zur Kapazität.
- Klicken Sie auf „Backend-Konfiguration“.
- Klicken Sie unter „Back-End-Dienste und Back-End-Buckets“ auf „Back-End-Dienste und Back-End-Buckets erstellen oder auswählen“, dann auf „Back-End-Dienste“ und schließlich auf „Back-End-Dienst erstellen“.
- Der Back-End-Typ ist „Instanzgruppe“.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen Werte die Standardeinstellung:

- Klicken Sie auf "Fertig".
- Wählen Sie für die Systemdiagnose die Option „Systemdiagnose erstellen“ aus.

- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen Werte die Standardeinstellung:

- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen Werte die Standardeinstellung:
- Klicken Sie auf „Speichern und fortfahren“.
- Klicken Sie auf „Erstellen“, um den Backend-Dienst zu erstellen.

Frontend konfigurieren
Host- und Pfadregeln bestimmen, wohin Ihr Traffic weitergeleitet wird. Sie könnten beispielsweise Traffic, der durch Videos entsteht, an ein Back-End weiterleiten und Traffic, der aus statischen Daten entsteht, an ein anderes Back-End. Allerdings konfigurieren wir in diesem Lab keine Host- und Pfadregeln.
- Klicken Sie auf „Frontend-Konfiguration“.
- http-front-end
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen die Standardeinstellungen:

- Klicken Sie auf "Fertig".
8. HTTP Load Balancer prüfen und erstellen
- Klicken Sie auf „Prüfen und abschließen“.

- Prüfen Sie die Backend-Dienste und das Frontend.

- Klicken Sie auf „Erstellen“.
- Warten Sie einige Minuten, bis der Load-Balancer erstellt ist.
- Klicken Sie auf den Namen des Load-Balancers (http-lb).
- Notieren Sie sich die IPv4-Adresse des Load Balancers für die nächste Aufgabe. Sie wird als „http-lb“ bezeichnet.
9. Erfolgreichen unbefugten Zugriff bestätigen
Bevor Sie die Richtlinie für benannte IP-Adressen implementieren, sollten Sie prüfen, ob unbefugter Zugriff auf den Lab-Balancer und die nachfolgende Webanwendung möglich ist. Hinweis: Sobald die Richtlinie für benannte IP-Adressen implementiert ist, ist der Zugriff auf die Webanwendung auf die bereitgestellte Ausdrucksgruppe beschränkt.
- Suchen Sie die im vorherigen Schritt erstellte IP-Adresse des Load-Balancers (http-lb) und fügen Sie sie in Ihren Webbrowser ein. Die Ausgabe sollte in etwa so aussehen:
HINWEIS: Dieser Schritt dauert einige Minuten. Sobald die Webseite generiert wurde, stammt die Client-IP vom Google Front End und nicht von der IP-Adresse Ihres Arbeitsplatzes.

Führen Sie auf Ihrer Workstation eine ähnliche Validierung wie unten beschrieben durch.
bash-3.2$ curl <load-balancer-IP>
10. Beispielausgabe
bash-3.2$ curl <load-balancer-ip> <h1>HTTP Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 35.191.0.151<h2>Hostname</h2>Server Hostname: us-east1-mig-8nqq<h2>Server Location</h2>Region and Zone: us-east1-b
11. Benannte IP-Liste konfigurieren
Neue Cloud Armor-Richtlinie für benannte IP-Liste erstellen
Über Cloud Shell
gcloud compute --project=$projectid security-policies create ca-policy
Über Cloud Shell
gcloud compute --project=$projectid security-policies rules update 2147483647 --action=deny-403 --security-policy=ca-policy --description="Default rule, higher priority overrides it" --src-ip-ranges=\*
Verfügbare Adressen für benannte CDN-IP-Listen ermitteln.
Über Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
Dadurch wird Folgendes zurückgegeben:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Benannte IP-Adressliste in Cloud Shell basierend auf dem für Ihr CDN verfügbaren Ausdruckssatz konfigurieren
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('expression_set')" \
--action "allow"
Beispiel mit Cloudflare
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
--action "allow"
12. CA-Sicherheitsrichtlinie anwenden
CA-Sicherheitsrichtlinie anwenden und einige Minuten warten, bis die globale Richtlinie übernommen wird
gcloud compute backend-services update http-backend --security-policy ca-policy --global
13. Validierung benannter IP-Adressen
- Da die Sicherheitsrichtlinie implementiert ist, ist der Zugriff auf den Load Balancer von Ihrem Arbeitsplatz aus nicht autorisiert.
- Öffnen Sie zum Validieren ein Terminalfenster auf Ihrer Workstation und führen Sie einen curl-Befehl für die IP-Adresse des Load-Balancers aus. Die Ausgabe des curl-Befehls führt zu einem „403“-Fehler (Forbidden), da Ihre Workstation jetzt nicht autorisiert ist.
Von Ihrer Workstation aus
bash-3.2$ curl <load-balancer-IP> <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden
Bereinigen
gcloud -q compute backend-services update http-backend --security-policy "" --global gcloud -q compute --project=$projectid security-policies delete ca-policy gcloud -q compute forwarding-rules delete http-front-end --global gcloud -q compute target-http-proxies delete http-lb-target-proxy gcloud -q compute url-maps delete http-lb gcloud -q compute backend-services delete http-backend --global gcloud -q compute health-checks delete http-health-check gcloud -q compute --project=$projectid instance-groups managed delete us-east1-mig --zone=us-east1-b gcloud -q beta compute --project=$projectid instance-templates delete us-east1-template gcloud -q compute --project=$projectid firewall-rules delete default-allow-http gcloud -q compute --project=$projectid firewall-rules delete default-allow-health-check gcloud -q compute networks subnets delete named-ip-subnet --region us-east1 gcloud -q compute networks delete named-list-vpc
14. Glückwunsch!
Herzlichen Glückwunsch zum Abschluss des Codelabs.
Behandelte Themen
- Vorteile von benannten IP-Adresslisten in Cloud Armor
- Globalen Load Balancer erstellen
- Verwaltete Instanzgruppe mit Beispieltestanwendung erstellen
- Cloud Armor-Sicherheitsrichtlinie erstellen
- Benannte IP-Adressliste in Cloud Armor bereitstellen
- Benannte IP-Cloud Armor-Richtlinie validieren