Netzwerksicherheit in der Google Cloud Platform (2)
Virtual Private Clouds erlauben in der Google Cloud Platform das schnelle und einfache Anlegen selbst komplexer Netzwerkinfrastrukturen. Doch wie jeder IT-Verantwortliche bestätigen wird, bedeutet schnell nicht immer auch richtig – und das ist in der Cloud insbesondere in Sachen Security ein Problem. In diesem Workshop zeigen wir daher, welche Bordmittel für Sicherheit sorgen. Im zweiten Teil geht es um den Unterschied zwischen den Firewalls Essentials und Standard. Außerdem zeigen wir, wie virtuelle Maschinen mit Cloud NAT sicher ins Internet kommen.
Firewall Essentials und Firewall Standard
Google hat im Herbst 2022 auf seiner Hausmesse Google Next eine Reihe von Ankündigungen in Sachen Netzwerksicherheit gemacht – dazu gehören auch die neuen Produkte "Cloud Firewall Essentials" und "Cloud Firewall Standard". Diese umfassen die bisherigen VPC-Firewallregeln und ergänzen diese.
Ein interessantes zusätzliches Feature ist die Tag-Integration. Bei diesen Tags handelt es sich aber nicht um die zuvor beschriebenen Netzwerk-Tags, die bei VPC-Firewallregeln zum Einsatz kommen, sondern um Resource-Manager-Tags. Diese haben den Vorteil, dass Sie diese über IAM berechtigen. So ist es beispielsweise möglich, ein Tag mit dem Schlüssel "vm-function" zu erstellen und dazu eine Liste möglicher Werte wie "database", "app-client" oder "app-server" anzulegen. Anschließend vergeben Sie Berechtigungen auf diese Tags. So ließe sich etwa Datenbank-Administratoren die Rolle "Tag User" für den Tag mit dem Wert "database" vergeben. Damit ist es dem entsprechenden Admin möglich, eine VM mit dem Tag zu starten und den Datenbankverkehr zu gestatten.
Standardmäßig sind Firewallregeln "stateful", das heißt, wenn die Verbindung in eine Richtung geöffnet ist, ist automatisch der Rück-Netzwerkverkehr erlaubt. Für das Troubleshooting ist an dieser Stelle interessant, ob dieser rückläufige Netzwerk-Traffic ankommt und ob er auch analysierbar ist. Dies ist generell mit den Firewall Logs möglich. Neu sind Adressengruppen, die helfen, wenn Sie eine Reihe von Hosts, IP-Adressen oder ganze Netzwerk-Ranges vielfach in Benutzung haben. In diesem Fall sollten Sie möglichst vermeiden, diese Elemente in jeder Regel aktuell halten zu müssen, falls es zu einer Änderung kommt. Mit Adressengruppen ist es möglich, die Gruppen einmalig zu pflegen und in Firewallregeln zu referenzieren.
Einige der genannten Features sind Cloud Firewall Standard vorenthalten, sodass hier zusätzliche Kosten anfallen können. So etwa bei der Nutzung des Threat-Intelligence-Modules, mit dem Sie Traffic basierend auf verschiedenen Kategorien blockieren. Dies sind zum Beispiel bekannte schädliche IP-Adressen und Domains. Des Weiteren gibt es jetzt einen erweiterten Schutz mit FQDN-Objekten. Diese ermöglichen das dynamische Updaten von Firewallregeln, auch wenn sich die zugrunde liegenden IP-Adressen ändern. Auch das Einbinden von Standortbestimmung für Firewallregeln ist nun möglich. Damit verwalten Sie den Netzwerkverkehr basierend auf dessen Ursprungsland. Ein derartiges Feature war bisher nur in einer Web Application Firewall integriert.
Sicher ins Internet mit Cloud NAT
Benötigt eine virtuelle Maschine Zugriff auf das Internet, müssen Sie (in der einfachsten Form) eine Reihe von Elementen und den Datenbankverkehr einrichten. Zunächst konfigurieren Sie eine Route auf das Internet-Gateway. Dies erledigen Sie, indem Sie eine Route auf die CIDR-Range "0.0.0.0/0" mit "Next Hop Internet Gateway" festlegen. Dann müssen Sie die virtuelle Maschine mit einer externen IP-Adresse ausstatten.
Diese Konfiguration führt dazu, dass virtuelle Maschinen direkt im Internet erreichbar sind und dies ist aus Sicherheitsgründen nicht immer erwünscht. Gestatten Sie ausgehende Internetzugriffe, bringen Sie NAT an den Start. Dies konfigurieren Sie entweder selbst oder greifen auf den Dienst "Cloud NAT" zurück. Dabei stellt Cloud NAT Internetkonnektivität für die folgenden Services bereit:
- Compute Engine
- Private Google Kubernetes Engine (GKE) Cluster
- Cloud Run über Serverless VPC Access
- Cloud Function über Serverless VPC Access
- App Engine über Serverless VPC Access
Cloud NAT ist dabei ein Managed Service und bietet als solcher eine Hochverfügbarkeit von mindestens 99,9 Prozent. Er ist zudem regional gegen den Ausfall einer Zone resilient. Bild 3 zeigt den Einsatz von Cloud NAT in einem weltweiten Setup mit den zwei Regionen "us-east1" und "europe-west1". Pro Region und VPC ist eine Cloud-NAT-Instanz eingerichtet. Dabei kann eine solche Instanz für die ganze VPC Internetkonnektivität bereitstellen (wie im Bild auf der rechten Seite dargestellt) oder nur für einzelne Subnetze (Subnet1 in der Region us-east1).

Um Cloud NAT einzurichten, müssen Sie die folgenden Schritte durchführen: Zuerst wechseln Sie links im Menü im Bereich "Networking" auf die Seite "Network services / Cloud NAT". Legen Sie zum ersten Mal im Projekt eine Cloud-NAT-Instanz an, klicken Sie auf den Link "Get Started". Sobald der Assistent gestartet ist, vergeben Sie einen Namen für Ihre Instanz.

Anschließend wählen Sie die VPC aus, zu der sich Cloud NAT verbinden soll. Nun konfigurieren Sie eine Region und legen dann den zu nutzenden Cloudrouter fest. Dabei integriert sich Cloud NAT in den Cloudrouter, um darüber Routen zu veröffentlichen. Schließlich definieren Sie, welche Subnets in den Genuss des NAT-Routers kommen. Es können einzelne Subnetze oder die ganze VPC sein. Zusätzlich können Sie festlegen, welche Secondary Ranges Cloud NAT nutzen dürfen. Secondary Ranges kommen beispielsweise zum Einsatz, wenn eine VM mehrere IP-Adressen in Beschlag nimmt – Beispiele sind hier VMs mit Docker oder Kubernetes-Cluster, bei denen jeder Pod eine IP-Adresse aus dem VPC erhält.
Mit VMs auf das Internet zugreifen
Mit dem Einsatz von Cloud NAT können Sie auf öffentliche IP-Adressen für den Internetzugriff verzichten. Sollen ausschließlich Google-Services erreicht werden, lässt sich auch auf Cloud NAT verzichten. Zwar haben viele Google-Dienste öffentliche IP-Adressen, es ist aber so, dass Google eine Technik mit dem Namen "Private Google Access" bereitstellt, um auf diese direkt aus einem VPC zuzugreifen. Dafür sind nur entsprechende DNS-Einträge und Routing notwendig.
Konkret gibt es DNS-Domänen, für die Sie private Zonen einrichten müssen. So enden die meisten Google-APIs mit der Domäne "googleapis.com". Entsprechend können Sie im "Cloud DNS" eine Zone für "googleapis.com" anlegen. In der Zone richten Sie anschließend einen A-Eintrag für die IP-Adressen "199.36.153.8", "199.36.153.9", "199.36.153.10" und "199.36.153.11" ein.
Zusätzlich benötigen Sie einen CNAME-Eintrag für "*.googleapis.com", der auf den erstellten A-Eintrag deutet. Nun fehlt nur noch das Routing. Dazu gehen Sie auf die Administrationsseite des VPCs, wechseln auf die Karteikarte "Routing" und fügen eine Route mit dem Ziel "0.0. 0.0/0" ein, dessen nächster Hop das Standard-Internetgateway ist.
ln/jp/Dr. Guido Söldner
Im dritten und letzten Teil der Workshopserie beschreiben wir, wie Sie Serverless Workloads schützen, Private Service Connect einsetzen und ein effizientes Monitoring und Logging betreiben. Im ersten Teil haben wir das Konzept der Shared VPCs erklärt und wie Sie Virtual Private Clouds mit Firewalls absichern.