GCP - VPC & Networking
GCP Compute Networking in Kürze
VPCs enthalten Firewall-Regeln, um eingehenden Verkehr zur VPC zuzulassen. VPCs enthalten auch Subnetze, in denen virtuelle Maschinen verbunden werden. Im Vergleich zu AWS wäre Firewall das nächste zu AWS Security Groups und NACLs, aber in diesem Fall sind diese in der VPC und nicht in jeder Instanz definiert.
VPC, Subnetze & Firewalls in GCP
Compute Instances sind mit Subnetzen verbunden, die Teil von VPCs (Virtual Private Clouds) sind. In GCP gibt es keine Security Groups, es gibt VPC Firewalls mit Regeln, die auf dieser Netzwerkebene definiert, aber auf jede VM-Instanz angewendet werden.
Subnetze
Eine VPC kann mehrere Subnetze haben. Jedes Subnetz befindet sich in einer Region.
Firewalls
Standardmäßig hat jedes Netzwerk zwei implizite Firewall-Regeln: allow outbound und deny inbound.
Wenn ein GCP-Projekt erstellt wird, wird eine VPC namens default
ebenfalls erstellt, mit den folgenden Firewall-Regeln:
default-allow-internal: Erlaubt allen Verkehr von anderen Instanzen im
default
Netzwerkdefault-allow-ssh: Erlaubt 22 von überall
default-allow-rdp: Erlaubt 3389 von überall
default-allow-icmp: Erlaubt Ping von überall
Wie Sie sehen können, neigen Firewall-Regeln dazu, internen IP-Adressen gegenüber permissiver zu sein. Die Standard-VPC erlaubt allen Verkehr zwischen Compute Instances.
Weitere Firewall-Regeln können für die Standard-VPC oder für neue VPCs erstellt werden. Firewall-Regeln können auf Instanzen über die folgenden Methoden angewendet werden:
Alle Instanzen innerhalb einer VPC
Leider gibt es keinen einfachen gcloud
-Befehl, um alle Compute Instances mit offenen Ports im Internet auszugeben. Sie müssen die Punkte zwischen Firewall-Regeln, Netzwerk-Tags, Servicekonten und Instanzen verbinden.
Dieser Prozess wurde mit diesem Python-Skript automatisiert, das Folgendes exportiert:
CSV-Datei, die Instanz, öffentliche IP, erlaubtes TCP, erlaubtes UDP zeigt
nmap-Scan, um alle Instanzen auf Ports zu zielen, die vom öffentlichen Internet (0.0.0.0/0) aus zugelassen sind
masscan, um den gesamten TCP-Bereich dieser Instanzen zu zielen, die ALLE TCP-Ports vom öffentlichen Internet (0.0.0.0/0) aus zulassen
Hierarchische Firewall-Richtlinien
Hierarchische Firewall-Richtlinien ermöglichen es Ihnen, eine konsistente Firewall-Richtlinie in Ihrer Organisation zu erstellen und durchzusetzen. Sie können hierarchische Firewall-Richtlinien auf die gesamte Organisation oder auf einzelne Ordner anwenden. Diese Richtlinien enthalten Regeln, die Verbindungen explizit verweigern oder zulassen können.
Sie erstellen und wenden Firewall-Richtlinien in separaten Schritten an. Sie können Firewall-Richtlinien auf den Organisation- oder Ordnerebenen der Ressourcenhierarchie erstellen und anwenden. Eine Firewall-Richtlinienregel kann Verbindungen blockieren, Verbindungen zulassen oder die Firewall-Regelbewertung an untergeordnete Ordner oder in VPC-Netzwerken definierte VPC-Firewall-Regeln weiterleiten.
Standardmäßig gelten alle hierarchischen Firewall-Richtlinienregeln für alle VMs in allen Projekten unter der Organisation oder dem Ordner, dem die Richtlinie zugeordnet ist. Sie können jedoch einschränken, welche VMs eine bestimmte Regel erhalten, indem Sie Zielnetzwerke oder Zielservicekonten angeben.
Hier können Sie nachlesen, wie Sie eine hierarchische Firewall-Richtlinie erstellen.
Firewall-Regeln Bewertung
Org: Firewall-Richtlinien, die der Organisation zugewiesen sind
Ordner: Firewall-Richtlinien, die dem Ordner zugewiesen sind
VPC: Firewall-Regeln, die der VPC zugewiesen sind
Global: Eine andere Art von Firewall-Regeln, die VPCs zugewiesen werden können
Regional: Firewall-Regeln, die dem VPC-Netzwerk der VM-NIC und der Region der VM zugeordnet sind
VPC-Netzwerk-Peering
Ermöglicht die Verbindung von zwei Virtual Private Cloud (VPC)-Netzwerken, sodass Ressourcen in jedem Netzwerk miteinander kommunizieren können. Gekoppelte VPC-Netzwerke können sich im selben Projekt, in verschiedenen Projekten derselben Organisation oder in verschiedenen Projekten verschiedener Organisationen befinden.
Diese Berechtigungen sind erforderlich:
compute.networks.addPeering
compute.networks.updatePeering
compute.networks.removePeering
compute.networks.listPeeringRoutes
Referenzen
Last updated