Auf dieser Seite werden die Befehle für die Arbeit mit VPC-Firewallregeln (Virtual Private Cloud) und einige Beispiele für ihre Verwendung beschrieben. Mit VPC-Firewallregeln können Sie den Traffic zu oder von VM-Instanzen in einem VPC-Netzwerk (Virtual Private Cloud) anhand einer Portnummer, eines Tags oder eines Protokolls zulassen oder ablehnen.
Vorbereitung
Weitere Informationen zu VPC-Firewallregeln, wie z. B. implizierte Regeln und automatisch generierte Regeln für Standardnetzwerke, finden Sie unter VPC-Firewallregeln.
Sehen Sie sich vor dem Konfigurieren von Firewallregeln die Komponenten von Firewallregeln gründlich an, damit Sie sich mit den in Google Cloud verwendeten Firewallkomponenten vertraut machen.
VPC-Firewallregeln erstellen
VPC-Firewallregeln werden auf Netzwerkebene definiert und gelten nur für das Netzwerk, in dem sie erstellt werden. Der Name für jede Regel muss jedoch für das Projekt eindeutig sein.
Eine Firewallregel kann entweder IPv4- oder IPv6-Bereiche enthalten, aber nicht beides.
Wenn Sie eine Firewallregel erstellen, können Sie das Logging von Firewallregeln aktivieren. Wenn Sie das Logging aktivieren, können Sie Metadatenfelder ausschließen, um Speicherkosten zu sparen. Weitere Informationen finden Sie unter Logging von Firewallregeln verwenden.
Wenn Sie mehrere Dienstkonten für das Ziel- oder Quelldienstkontofeld angeben möchten, verwenden Sie die Google Cloud CLI, die API oder die Clientbibliotheken.
Das Standardnetzwerk bietet automatische Firewallregeln bei der Erstellung. Mit benutzerdefinierten und automatischen Netzwerken können Sie während der Netzwerkerstellung ähnliche Firewalls erstellen, wenn Sie die Google Cloud Console verwenden. Wenn Sie die gcloud CLI oder die API verwenden und ähnliche Firewallregeln erstellen möchten, die vom Standardnetzwerk bereitgestellt werden, finden Sie weitere Informationen unter Firewallregeln für gängige Anwendungsfälle konfigurieren.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf Firewallregel erstellen.
Geben Sie einen Namen für die Firewallregel ein.
Dieser Name muss für das Projekt eindeutig sein.
(Optional) So aktivieren Sie das Logging von Firewallregeln:
- Klicken Sie auf Logs > Ein.
- Wenn Sie Metadaten weglassen möchten, maximieren Sie Logdetails ansehen und entfernen Sie dann das Häkchen aus dem Kästchen Metadaten einschließen.
Geben Sie das Netzwerk für die Firewallregel an.
Legen Sie die Priorität der Regel fest.
Je niedriger die Zahl, desto höher die Priorität.
Wählen Sie unter Traffic-Richtung die Option "Eingehend" oder "Ausgehend".
Wählen Sie unter Aktion bei Übereinstimmung die Option "Zulassen" oder "Ablehnen".
Geben Sie die Ziele der Regel an.
- Wenn diese Regel für alle Instanzen im Netzwerk gelten soll, wählen Sie All instances in the network aus.
- Wenn Sie die Regel auf bestimmte Instanzen nach Netzwerktag (Ziel) anwenden möchten, wählen Sie Angegebene Zieltags aus und geben Sie im Feld Zieltags die Tags ein, auf die Sie die Regel anwenden möchten.
- Wenn Sie die Regel auf bestimmte Instanzen nach verknüpftem Dienstkonto anwenden möchten, wählen Sie Angegebenes Dienstkonto aus und geben Sie unter Umfang des Dienstkontos an, ob sich das Dienstkonto im aktuellen oder in einem anderen Projekt befindet. Wählen Sie dann im Feld Zieldienstkonto den Namen des Dienstkontos aus oder geben Sie ihn ein.
Geben Sie für Eingangsregeln den Quellfilter an:
- Wenn Sie eingehenden Traffic nach IPv4-Quellbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie dann die CIDR-Blöcke in das Feld IPv4-Quellbereiche ein. Verwenden Sie
0.0.0.0/0
für jede IPv4-Quelle. - Wenn Sie eingehenden Traffic nach IPv6-Quellbereichen filtern möchten, wählen Sie IPv6-Bereiche aus und geben Sie dann die CIDR-Blöcke in das Feld IPv6-Quellbereiche ein. Verwenden Sie
::/0
für jede IPv6-Quelle. - Wenn Sie eingehenden Traffic nach Netzwerk-Tag filtern möchten, wählen Sie Quell-Tags aus und geben Sie dann die Netzwerk-Tags in das Feld Quell-Tags ein. Das Limit für die Anzahl der Quelltags finden Sie unter Limits pro Netzwerk. Das Filtern nach Quell-Tag ist nur verfügbar, wenn das Ziel nicht nach Dienstkonto angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.
- Wenn Sie eingehenden Traffic nach Dienstkonto filtern möchten, wählen Sie Dienstkonto aus und geben Sie unter Umfang des Dienstkontos an, ob sich das Dienstkonto im aktuellen oder in einem anderen Projekt befindet. Danach geben Sie das Dienstkonto im Feld Quelldienstkonto an. Das Filtern nach Quelldienstkonto ist nur verfügbar, wenn das Ziel nicht durch das Netzwerk-Tag angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.
- Geben Sie ggf. einen zweiten Quellfilter an. Sekundäre Quellfilter können nicht die gleichen Filterkriterien wie primäre Quellfilter verwenden. Quell-IP-Bereiche können in Kombination mit Quelltags oder einem Quelldienstkonto verwendet werden. Das effektive Source-Set ist die Vereinigung der Quellbereichs-IP-Adressen und der durch Netzwerktags oder Dienstkonten identifizierten Instanzen. Das heißt, wenn entweder der Quell-IP-Bereich oder die Quelltags (oder Quelldienstkonten) den Filterkriterien entsprechen, wird die Quelle in das effektive Source-Set aufgenommen.
- Quelltags und Quelldienstkonto können nicht zusammen verwendet werden.
- Wenn Sie eingehenden Traffic nach IPv4-Quellbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie dann die CIDR-Blöcke in das Feld IPv4-Quellbereiche ein. Verwenden Sie
Geben Sie den Quellfilter für eine Regel für eingehenden Traffic an:
- Wenn Sie eingehenden Traffic nach IPv4-Zielbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Zielbereiche ein. Verwenden Sie
0.0.0.0/0
für jedes IPv4-Ziel. - Wenn Sie eingehenden Traffic nach IPv6-Zielbereichen filtern möchten, wählen Sie IPv6-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv6-Zielbereiche ein. Verwenden Sie
::/0
für jedes IPv6-Ziel. Weitere Informationen finden Sie unter Ziel für Regeln für eingehenden Traffic.
- Wenn Sie eingehenden Traffic nach IPv4-Zielbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Zielbereiche ein. Verwenden Sie
Geben Sie für Ausgangsregeln den Zielfilter an:
- Wenn Sie ausgehenden Traffic nach IPv4-Zielbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Zielbereiche ein. Verwenden Sie
0.0.0.0/0
für jedes IPv4-Ziel. - Wenn Sie ausgehenden Traffic nach IPv6-Zielbereichen filtern möchten, wählen Sie IPv6-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv6-Zielbereiche ein. Verwenden Sie
::/0
für jedes IPv6-Ziel.
- Wenn Sie ausgehenden Traffic nach IPv4-Zielbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Zielbereiche ein. Verwenden Sie
Geben Sie den Zielfilter für eine Regel für ausgehenden Traffic an:
- Wenn Sie ausgehenden Traffic nach IPv4-Quellbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Quellbereiche ein. Verwenden Sie
0.0.0.0/0
für jede IPv4-Quelle. - Wenn Sie ausgehenden Traffic nach IPv6-Quellbereichen filtern möchten, wählen Sie IPv6-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv6-Quellbereiche ein. Verwenden Sie
::/0
für jedes IPv6-Ziel. Weitere Informationen finden Sie unter Quelle für Regeln für ausgehenden Traffic.
- Wenn Sie ausgehenden Traffic nach IPv4-Quellbereichen filtern möchten, wählen Sie IPv4-Bereiche aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Quellbereiche ein. Verwenden Sie
Definieren Sie die Protokolle und Ports, auf die Sie die Regel anwenden möchten:
- Wenn die Regel auf alle Protokolle und Zielports angewendet werden soll, wählen Sie je nach Aktion Alle zulassen oder Alle ablehnen aus.
Wählen Sie Angegebene Protokolle und Ports aus, um bestimmte Protokolle und Ports zu definieren:
- Wählen Sie TCP aus, um das TCP-Protokoll und die entsprechenden Zielports einzuschließen. Geben Sie
all
oder eine durch Kommas getrennte Liste von Ziel-Ports ein, z. B.20-22, 80, 8080
. - Wählen Sie UDP aus, um das UDP-Protokoll und die entsprechenden Zielports einzuschließen. Geben Sie
all
oder eine durch Kommas getrennte Liste von Ziel-Ports ein, z. B.67-69, 123
. Wählen Sie Sonstige aus, um Protokolle wie
icmp
,sctp
oder eine Protokollnummer einzuschließen. Verwenden Sie beispielsweiseicmp
oder die Protokollnummer1
für IPv4 ICMP. Verwenden Sie die Protokollnummer58
für IPv6 ICMP.Weitere Informationen finden Sie unter Protokolle und Zielports.
- Wählen Sie TCP aus, um das TCP-Protokoll und die entsprechenden Zielports einzuschließen. Geben Sie
(Optional) Wenn Sie den Erzwingungsstatus auf Deaktiviert setzen, wird die Firewallregel zwar erstellt, jedoch nicht erzwungen. Klicken Sie auf Regel deaktivieren und wählen Sie Deaktiviert aus.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie zum Erstellen einer VPC-Firewallregel den Befehl gcloud compute firewall-rules create
:
gcloud compute firewall-rules create RULE_NAME \ [--network NETWORK; default="default"] \ [--priority PRIORITY;default=1000] \ [--direction (ingress|egress|in|out); default="ingress"] \ [--action (deny | allow )] \ [--target-tags TAG[,TAG,...]] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--source-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--source-tags TAG,TAG,] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--destination-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--rules (PROTOCOL[:PORT[-PORT]],[PROTOCOL[:PORT[-PORT]],...]] | all ) \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging] \ [--logging-metadata LOGGING_METADATA]
Verwenden Sie die unten aufgeführten Parameter. Weitere Informationen zu den einzelnen Parametern finden Sie unter SDK-Referenzdokumentation.
--network
Das Netzwerk für die Regel. Bei Auslassung wird die Regel im Netzwerkdefault
erstellt. Verwenden Sie dieses Feld, wenn Sie kein Standardnetzwerk haben oder die Regel in einem bestimmten Netzwerk erstellen möchten.--priority
Ein numerischer Wert, der die Priorität für die Regel angibt. Je niedriger die Zahl, desto höher die Priorität.--direction
Die Richtung des Traffics, entwederingress
oderegress
.--action
Die Aktion bei Übereinstimmung, entwederallow
oderdeny
. Muss mit dem Flag--rules
verwendet werden.- Sie haben folgende Möglichkeiten, ein Ziel anzugeben:
Verwenden Sie für die Regel für eingehenden Traffic
--destination-ranges
, um IPv4- oder IPv6-Adressbereiche im CIDR-Format anzugeben. Wenn--destination-ranges
weggelassen wird, ist das Ziel für eingehenden Traffic eine beliebige IPv4-Adresse,0.0.0.0/0
. Weitere Informationen finden Sie unter Ziele für Regeln für eingehenden Traffic und Ziel- und IP-Adressen für Regeln für eingehenden Traffic.Geben Sie für Eingangsregeln eine Quelle an:
--source-ranges
Verwenden Sie dieses Flag, um Bereiche der IPv4- oder IPv6-Quelladressen im CIDR-Format anzugeben.- Wenn
--source-ranges
,source-tags
und--source-service-accounts
weggelassen werden, ist die Quelle für eingehenden Traffic eine beliebige IPv4-Adresse,0.0.0.0/0
. --source-tags
Verwenden Sie dieses Flag, um Quellinstanzen nach Netzwerktags anzugeben. Das Filtern nach Quell-Tag ist nur verfügbar, wenn das Ziel nicht nach Dienstkonto angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.--source-ranges
und--source-tags
können zusammen verwendet werden. Wenn beide angegeben sind, ist der effektive Quellsatz die Vereinigung der Quellbereich-IP-Adressen und der durch Netzwerktags identifizierten Instanzen, auch wenn die getaggten Instanzen keine IPs in den Quellbereichen haben.--source-service-accounts
Verwenden Sie dieses Flag, um Quellinstanzen nach verwendetem Dienstkonto anzugeben. Das Filtern nach Quelldienstkonto ist nur verfügbar, wenn das Ziel nicht nach Netzwerk-Tag angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.--source-ranges
und--source-service-accounts
können zusammen verwendet werden. Wenn beide angegeben sind, ist der effektive Quellsatz die Vereinigung der Quellbereich-IP-Adressen und der durch Quelldienstkonten identifizierten Instanzen, auch wenn die durch Quelldienstkonten identifizierten Instanzen keine IPs in den Quellbereichen haben.
Verwenden Sie Folgendes, um die Quelle zu optimieren:
--source-ranges
. Geben Sie IPv4- oder IPv6-Adressbereiche im CIDR-Format an. Wenn--source-ranges
weggelassen wird, ist die Quelle für ausgehenden Traffic eine beliebige IPv4-Adresse,0.0.0.0/0
. Weitere Informationen finden Sie unter Quellen für Regeln für ausgehenden Traffic und Ziel- und IP-Adressen für Regeln für ausgehenden Traffic.Geben Sie für Ausgangsregeln ein Ziel an:
--destination-ranges
Verwenden Sie dieses Flag, um Bereiche der IPv4- oder IPv6-Zieladressen im CIDR-Format anzugeben.- Wenn
--destination-ranges
weggelassen wird, ist das Ziel für ausgehenden Traffic eine beliebige IPv4-Adresse,0.0.0.0/0
.
--rules
Eine Liste der Protokolle und Zielports, auf die die Regel angewendet wird. Verwenden Sieall
, um die Regel auf alle Protokolle und Ports anzuwenden. Erfordert das Flag--action
.Standardmäßig werden Firewallregeln automatisch erstellt und erzwungen. Sie können dieses Verhalten jedoch ändern.
- Bei Auslassung von sowohl
--disabled
als auch--no-disabled
wird die Firewallregel erstellt und erzwungen. --disabled
Fügen Sie dieses Flag hinzu, um die Firewallregel zu erstellen, jedoch nicht zu erzwingen. Die Firewallregel bleibt deaktiviert, bis Sie die Firewallregel aktualisieren, um sie zu aktivieren.--no-disabled
Fügen Sie dieses Flag hinzu, damit die Firewallregel erzwungen wird.
- Bei Auslassung von sowohl
--enable-logging | --no-enable-logging
Sie können beim Erstellen oder Aktualisieren einer Regel das Logging von Firewallregeln aktivieren. Mit dem Logging von Firewallregeln können Sie die Auswirkungen Ihrer Firewallregeln überwachen, prüfen und analysieren. Weitere Informationen finden Sie unter Logging von Firewallregeln.--logging-metadata
Wenn Sie das Logging aktivieren, sind in den Logs standardmäßig Basis- und Metadatenfelder enthalten. Sie können Metadatenfelder ausschließen, um Speicherkosten zu sparen. Weitere Informationen finden Sie unter Logging von Firewallregeln verwenden.
Terraform
Zum Erstellen einer Firewallregel können Sie eine google_compute_firewall
-Ressource verwenden.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
API
Erstellen Sie eine VPC-Firewallregel.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "RULE_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.RULE_NAME
: der Name der Firewallregel.Geben Sie für eine Firewallregel für eingehenden Traffic die Quelle und das Ziel für eingehenden Traffic an:
Verwenden Sie das Feld
sourceRanges
,sourceTags
odersourceServiceAccounts
, um die Quelle für eingehenden Traffic anzugeben.sourceRanges
können entweder IPv4- oder IPv6-Bereiche sein, aber keine Kombination aus beidem. Wenn Sie den Bereich0.0.0.0/0
verwenden möchten, geben Sie kein Feld an.Sie können die Felder
sourceTags
undsourceServiceAccounts
nicht zusammen verwenden. Sie können jedochsourceRanges
mitsourceTags
odersourceServiceAccounts
verwenden. In diesem Fall muss die Verbindung nur mit einem der beiden übereinstimmen, damit die Firewallregel angewendet wird.Wenn Sie das Feld
sourceTags
für die Zielfelder verwenden, können Sie das FeldtargetServiceAccounts
nicht verwenden. Sie müssen das FeldtargetTags
oder kein Zielfeld verwenden. Wenn Sie das FeldsourceServiceAccounts
verwenden, können Sie das FeldtargetTags
nicht verwenden. Wenn Sie kein Zielfeld angeben, gilt die Regel für alle Ziele im Netzwerk.Verwenden Sie das Feld
destinationRanges
, um das Ziel für eingehenden Traffic anzugeben.destinationRanges
können entweder IPv4- oder IPv6-Bereiche sein, aber keine Kombination aus beidem.
Wenn Sie kein Ziel angeben, verwendet Google Cloud0.0.0.0/0
. Weitere Informationen finden Sie unter Ziele für Regeln für eingehenden Traffic und Ziel- und IP-Adressen für Regeln für eingehenden Traffic.
Geben Sie für eine Firewallregel für ausgehenden Traffic die Quelle und das Ziel für ausgehenden Traffic an:
Verwenden Sie das Feld
sourceRanges
, um die Quelle für ausgehenden Traffic anzugeben.sourceRange
können entweder IPv4- oder IPv6-Bereiche sein, aber keine Kombination aus beidem.
Wenn Sie kein Ziel angeben, verwendet Google Cloud0.0.0.0/0
. Weitere Informationen finden Sie unter Quellen für Regeln für ausgehenden Traffic und Ziel- und IP-Adressen für Regeln für ausgehenden Traffic.Verwenden Sie das Feld
destinationRanges
, um das Ziel anzugeben.destinationRanges
können entweder IPv4- oder IPv6-Bereiche sein, aber keine Kombination aus beidem.
Wenn Sie kein Ziel angeben, verwendet Google Cloud0.0.0.0/0
. Verwenden Sie das FeldtargetTags
odertargetServiceAccounts
, um anzugeben, auf welche Ziele die Regel angewendet wird. Wenn Sie kein Zielfeld angeben, gilt die Regel für alle Ziele im Netzwerk.
Weitere Informationen und Beschreibungen für die einzelnen Felder finden Sie in der Methode firewalls.insert
.
C#
Go
Java
Node.js
PHP
Python
Ruby
VPC-Firewallregeln aktualisieren
Sie können einige Komponenten einer VPC-Firewallregel ändern, z. B. die angegebenen Protokolle und Zielports für die Übereinstimmungsbedingung. Den Namen einer Firewallregel, das Netzwerk, die Aktion bei Übereinstimmung und die Richtung des Traffics können Sie nicht ändern.
Wenn Sie die Komponente „Name“, „Netzwerk“, „Aktion“ oder „Richtung“ ändern möchten, müssen Sie die Regel löschen und dann eine neue Regel erstellen.
Wenn Sie mehrere Dienstkonten hinzufügen oder entfernen möchten, verwenden Sie die gcloud CLI, die API oder die Clientbibliotheken. In der Google Cloud Console können Sie nicht mehrere Zieldienstkonten oder Quelldienstkonten angeben.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf die Firewallregel, die Sie ändern möchten.
Klicken Sie auf Bearbeiten.
Sie können jede der bearbeitbaren Komponenten entsprechend Ihren Anforderungen ändern.
Klicken Sie auf Speichern.
gcloud
Verwenden Sie zum Aktualisieren von VPC-Firewallregeln den Befehl gcloud compute firewall-rules update
:
gcloud compute firewall-rules update RULE_NAME \ [--priority=PRIORITY] \ [--description=DESCRIPTION] \ [--target-tags=TAG,...] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--source-ranges=CIDR_RANGE,...] \ [--source-tags=TAG,...] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--destination-ranges=CIDR_RANGE,...] \ [--rules=[PROTOCOL[:PORT[-PORT]],…]] \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging]
Die Beschreibungen der einzelnen Flags stimmen mit den Beschreibungen überein, die unter Firewallregeln erstellen aufgeführt sind. Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
API
Verwenden Sie PATCH, um die folgenden Felder zu aktualisieren: allowed
, description
, sourceRanges
, sourceTags
oder targetTags
. Verwenden Sie PUT oder POST für alle anderen Felder.
(PATCH|(POST|PUT)) https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME { "name": "RULE_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
: der Name des VPC-Netzwerks, in dem sich die Firewallregel befindet.RULE_NAME
der Name der zu aktualisierenden Firewallregel.
Weitere Informationen und Beschreibungen für die einzelnen Felder finden Sie in der Methode firewalls.patch
oder firewalls.update
.
C#
Go
Java
Node.js
PHP
Python
Ruby
VPC-Firewallregeln für ein VPC-Netzwerk auflisten
Sie können alle VPC-Firewallregeln für Ihr Projekt oder für ein bestimmtes VPC-Netzwerk auflisten. Für jede Firewallregel zeigt Google Cloud Details wie den Typ, die Ziele und die Filter der Regel an.
Wenn Sie das Logging von Firewallregeln aktivieren, erhalten Sie in Firewall Insights Informationen zu Ihren Firewallregeln, damit Sie deren Konfigurationen besser verstehen und sicher optimieren können. Sie können beispielsweise nachsehen, welche allow
-Regeln in den letzten sechs Wochen nicht verwendet wurden.
Weitere Informationen finden Sie in der Firewall Insights-Dokumentation unter Bildschirm mit Details zu Firewallregeln verwenden.
Console
So rufen Sie alle VPC-Firewallregeln für alle Netzwerke in Ihrem Projekt auf:
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
So rufen Sie VPC-Firewallregeln in einem bestimmten Netzwerk auf:
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf den Namen eines VPC-Netzwerks, um zu dessen Detailseite zu wechseln.
Klicken Sie auf der Detailseite für das Netzwerk auf den Tab Firewalls.
Maximieren Sie vpc-firewall-rules.
gcloud
Verwenden Sie den Befehl gcloud compute firewall-rules list
, um eine sortierte Liste von VPC-Firewallregeln für ein bestimmtes Netzwerk zu erstellen:
gcloud compute firewall-rules list --filter network=NETWORK \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, targetTags.list():label=TARGET_TAGS )"
Ersetzen Sie NETWORK
durch den Namen des Netzwerks, in dem Firewallregeln aufgelistet werden sollen.
API
Listen Sie alle VPC-Firewallregeln für ein bestimmtes Netzwerk auf.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/?filter=network="NETWORK
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
: der Name des VPC-Netzwerks, das die aufzulistenden Firewallregeln enthält.
Weitere Informationen finden Sie in der Methode firewalls.list
.
C#
Go
Java
Node.js
PHP
Python
Ruby
VPC-Firewallregeln für die Netzwerkschnittstelle einer VM-Instanz auflisten
Für jede Netzwerkschnittstelle listet die Google Cloud Console alle für die Schnittstelle geltenden VPC-Firewallregeln und die Regeln auf, die tatsächlich von der Schnittstelle verwendet werden. Firewallregeln können andere Regeln maskieren. Daher werden möglicherweise nicht alle Regeln, die für eine Schnittstelle gelten, von der Schnittstelle tatsächlich verwendet.
Firewallregeln werden durch den Zielparameter einer Regel mit VM-Instanzen verknüpft und auf diese angewendet. Wenn Sie alle angewendeten Regeln aufrufen, können Sie überprüfen, ob eine bestimmte Regel auf eine Schnittstelle angewendet wird.
Wenn Sie das Logging von Firewallregeln aktivieren, erhalten Sie in Firewall Insights Informationen zu Ihren Firewallregeln, damit Sie deren Konfigurationen besser verstehen und sicher optimieren können. Sie können beispielsweise sehen, welche Regeln während der letzten sechs Wochen in einer Benutzeroberfläche angewendet wurden. Weitere Informationen finden Sie in der Firewall Insights-Dokumentation unter Bildschirm mit Details zur VM-Netzwerkschnittstelle verwenden.
Console
So zeigen Sie die VPC-Regeln an, die für eine bestimmte Netzwerkschnittstelle einer VM-Instanz gelten:
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Suchen Sie die Instanz, die Sie ansehen möchten.
Wählen Sie im Dreipunkt-Menü (
) der Instanz die Option Netzwerkdetails anzeigen aus.Wenn eine Instanz mehrere Netzwerkschnittstellen hat, wählen Sie im Feld Ausgewählte Netzwerkschnittstelle die Netzwerkschnittstelle aus, die Sie ansehen möchten.
Wählen Sie im Abschnitt Firewall- und Routendetails den Tab Firewalls aus.
Maximieren Sie vpc-firewall-rules.
Anhand der Tabelle können Sie feststellen, ob Traffic von oder zu einer bestimmten IP-Adresse zulässig ist.
Details zur VPC-Firewallregel ansehen
Sie können eine VPC-Firewallregel untersuchen, um deren Name, zutreffendes Netzwerk und Komponenten anzuzeigen und zu sehen, ob die Regel aktiviert oder deaktiviert ist.
Console
- Zeigen Sie die Firewallregeln in einer Liste an. Sie können die Liste nach einem bestimmten Netzwerk filtern oder alle Regeln aufrufen.
- Klicken Sie auf die Regel, die Sie anzeigen möchten.
gcloud
Der folgende Befehl beschreibt eine einzelne VPC-Firewallregel. Da Namen für Firewallregeln nur für ein bestimmtes Projekt gelten, müssen Sie kein Netzwerk angeben, wenn Sie eine bestehende Firewallregel beschreiben.
gcloud compute firewall-rules describe RULE_NAME
Ersetzen Sie RULE_NAME
durch den Namen der Firewallregel.
API
Beschreiben Sie eine bestimmte VPC-Firewallregel.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
: die ID des Projekts, in dem sich die Firewallregel befindet.RULE_NAME
: der Name der zu beschreibenden Firewallregel.
Weitere Informationen finden Sie in der Methode firewalls.get
.
VPC-Firewallregeln löschen
Console
- Listen Sie die VPC-Firewallregeln auf. Sie können die Liste nach einem bestimmten Netzwerk filtern oder alle Regeln aufrufen.
- Klicken Sie auf die Regel, die Sie löschen möchten.
- Klicken Sie auf Löschen.
- Klicken Sie zur Bestätigung noch einmal auf Löschen.
gcloud
Verwenden Sie zum Löschen einer VPC-Firewallregel den Befehl gcloud compute firewall-rules delete
:
gcloud compute firewall-rules delete RULE_NAME
Ersetzen Sie RULE_NAME
durch den Namen der zu löschenden Regel.
API
Löschen Sie eine VPC-Firewallregel.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich die Firewallregel befindet.RULE_NAME
: der Name der zu löschenden Firewallregel.
Weitere Informationen finden Sie in der Methode firewalls.delete
.
C#
Go
Java
Node.js
PHP
Python
Ruby
VPC-Firewallregeln überwachen
Wenn Sie das VPC-Firewallregel-Logging aktivieren, können Sie sehen, welche Regel welche Art von Traffic zulässt oder blockiert. Weitere Informationen finden Sie unter Firewallregel-Logging verwenden.
VPC-Firewallregeln für gängige Anwendungsfälle konfigurieren
In den folgenden Abschnitten finden Sie Beispiele dafür, wie Sie mit der gcloud CLI und der API die vordefinierten VPC-Firewallregeln für Standardnetzwerke neu erstellen. Sie können anhand der Beispiele ähnliche Regeln für Ihre Netzwerke im benutzerdefinierten und automatischen Modus erstellen. Jede Firewallregel kann entweder IPv4- oder IPv6-Adressbereiche enthalten, aber nicht beides.
Interne eingehende Verbindungen zwischen VMs zulassen
Die folgenden Beispiele erstellen eine Firewallregel, die interne TCP-, UDP- und ICMP-Verbindungen zu Ihren VM-Instanzen zulässt, ähnlich der Regel allow-internal
für Standardnetzwerke.
gcloud
Führen Sie den Befehl gcloud compute firewall-rules create
aus:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:0-65535,udp:0-65535,ICMP_PROTOCOL \ --source-ranges=SUBNET_RANGES
Ersetzen Sie dabei Folgendes:
RULE_NAME
: der Name für diese Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.ICMP_PROTOCOL
: der ICMP-Protokolltyp. Geben Sie ICMPv4 mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben Sie die ICMPv6-Methode mit der Protokollnummer58
an.SUBNET_RANGES
: ein oder mehrere IP-Adressbereiche. Wenn Sie einen IP-Adressbereich einbeziehen, kann der Traffic aus diesem Bereich jedes VM-Ziel im VPC-Netzwerk erreichen. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben.IPv4-Subnetzbereiche:
- VPC-Netzwerke im automatischen Modus verwenden IP-Adressbereiche innerhalb von
10.128.0.0/9
. - Netzwerke im benutzerdefinierten Modus können beliebige gültige IPv4-Bereiche verwenden. Wenn Sie keine zusammenhängenden Bereiche für die Subnetze in Ihrem VPC-Netzwerk verwenden, müssen Sie möglicherweise mehrere Bereiche angeben.
- Sie können
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
verwenden, um Traffic aus allen privaten IPv4-Adressbereichen (RFC 1918-Bereichen) zu erlauben.
IPv6-Subnetzbereiche:
Wenn Sie Ihrem VPC-Netzwerk einen internen IPv6-Adressbereich zugewiesen haben, können Sie diesen Bereich als Quellbereich verwenden. Wenn Sie den internen IPv6-Bereich des VPC-Netzwerks verwenden, enthält die Firewallregel alle aktuellen und zukünftigen internen IPv6-Subnetzbereiche. Sie können den internen IPv6-Bereich des VPC-Netzwerks mit dem folgenden Befehl ermitteln:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
Sie können auch bestimmte interne IPv6-Subnetzbereiche angeben.
Wenn Sie Traffic aus den externen IPv6-Subnetzbereichen von Dual-Stack-Subnetzen zulassen möchten, müssen Sie den IPv6-Adressbereich jedes gewünschten Subnetzes angeben, das Sie einbeziehen möchten.
- VPC-Netzwerke im automatischen Modus verwenden IP-Adressbereiche innerhalb von
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "0-65535" ] }, { "IPProtocol": "udp", "ports": [ "0-65535" ] }, { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "SUBNET_RANGES" ] }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.RULE_NAME
: der Name der Firewallregel.NETWORK
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird. Der Standardwert istdefault
.ICMP_PROTOCOL
: der ICMP-Protokolltyp. Geben Sie ICMPv4 mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben Sie die ICMPv6-Methode mit der Protokollnummer58
an.INTERNAL_SOURCE_RANGES
: ein oder mehrere IP-Bereiche. Geben Sie die IP-Adressbereiche an, die in Ihrem VPC-Netzwerk verwendet werden, um internen Traffic innerhalb aller Subnetze in Ihren VPC-Netzwerken zuzulassen. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben.IPv4-Subnetzbereiche:
- VPC-Netzwerke im automatischen Modus verwenden IP-Adressbereiche innerhalb von
10.128.0.0/9
. - Netzwerke im benutzerdefinierten Modus können beliebige gültige IPv4-Bereiche verwenden. Wenn Sie keine zusammenhängenden Bereiche für die Subnetze in Ihrem VPC-Netzwerk verwenden, müssen Sie möglicherweise mehrere Bereiche angeben.
- Sie können
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
verwenden, um Traffic aus allen privaten IPv4-Adressbereichen (RFC 1918-Bereichen) zu erlauben.
IPv6-Subnetzbereiche:
Wenn Sie Ihrem VPC-Netzwerk einen internen IPv6-Adressbereich zugewiesen haben, können Sie diesen Bereich als Quellbereich verwenden. Wenn Sie den internen IPv6-Bereich des VPC-Netzwerks verwenden, enthält die Firewallregel alle aktuellen und zukünftigen internen IPv6-Subnetzbereiche. Sie können den internen IPv6-Bereich des VPC-Netzwerks mit dem folgenden Befehl ermitteln:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
Sie können auch bestimmte interne IPv6-Subnetzbereiche angeben.
Wenn Sie Traffic aus den externen IPv6-Subnetzbereichen von Dual-Stack-Subnetzen zulassen möchten, müssen Sie den IPv6-Adressbereich jedes gewünschten Subnetzes angeben, das Sie einbeziehen möchten.
- VPC-Netzwerke im automatischen Modus verwenden IP-Adressbereiche innerhalb von
Eingehende SSH-Verbindungen zu VMs zulassen
Die folgenden Beispiele erstellen eine Firewallregel, die SSH-Verbindungen zu Ihren VM-Instanzen zulässt, ähnlich der Regel allow-ssh
für Standardnetzwerke.
gcloud
Führen Sie den Befehl gcloud compute firewall-rules create
aus:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:22 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Ersetzen Sie dabei Folgendes:
RULE_NAME
: der Name für diese Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
35.235.240.0/20
in die Quellbereiche aufnehmen, sind SSH-Verbindungen mit der TCP-Weiterleitung von Identity-Aware Proxy (IAP) möglich, wenn alle anderen Voraussetzungen erfüllt sind. Weitere Informationen finden Sie unter IAP für TCP-Weiterleitung verwenden. - Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.RULE_NAME
: der Name der Firewallregel.NETWORK
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
35.235.240.0/20
in die Quellbereiche aufnehmen, sind SSH-Verbindungen mit der TCP-Weiterleitung von Identity-Aware Proxy (IAP) möglich, wenn alle anderen Voraussetzungen erfüllt sind. Weitere Informationen finden Sie unter IAP für TCP-Weiterleitung verwenden. - Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
Eingehende RDP-Verbindungen zu VMs zulassen
Die folgenden Beispiele erstellen eine Firewallregel, die RDP-Verbindungen von Microsoft (Remote Desktop Protocol) zu Ihren VM-Instanzen zulässt, ähnlich der Regel allow-rdp
für Standardnetzwerke.
gcloud
Führen Sie den Befehl gcloud compute firewall-rules create
aus:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:3389 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Ersetzen Sie dabei Folgendes:
RULE_NAME
: der Name für diese Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
35.235.240.0/20
in die Quellbereiche aufnehmen, sind RDP-Verbindungen mit der TCP-Weiterleitung von Identity-Aware Proxy (IAP) möglich, wenn alle anderen Voraussetzungen erfüllt sind. Weitere Informationen finden Sie unter IAP für TCP-Weiterleitung verwenden. - Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "allowed": [ { "IPProtocol": "tcp", "ports": [ "3389" ] } ], "sourceRanges": [ "EXTERNAL_SOURCE_RANGES" ] }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.RULE_NAME
: der Name der Firewallregel.NETWORK
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
35.235.240.0/20
in die Quellbereiche aufnehmen, sind RDP-Verbindungen mit der TCP-Weiterleitung von Identity-Aware Proxy (IAP) möglich, wenn alle anderen Voraussetzungen erfüllt sind. Weitere Informationen finden Sie unter IAP für TCP-Weiterleitung verwenden. - Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
Eingehende ICMP-Verbindungen zu VMs zulassen
Die folgenden Beispiele erstellen eine Firewallregel, die ICMP-Verbindungen zu Ihren VM-Instanzen zulässt, ähnlich der Regel allow-icmp
für Standardnetzwerke.
gcloud
Führen Sie den Befehl gcloud compute firewall-rules create
aus:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=ICMP_PROTOCOL \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Ersetzen Sie dabei Folgendes:
RULE_NAME
: der Name der Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.ICMP_PROTOCOL
: der ICMP-Protokolltyp. Geben Sie ICMPv4 mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben Sie die ICMPv6-Methode mit der Protokollnummer58
an.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: die ID des Projekts, in dem sich das VPC-Netzwerk befindet.RULE_NAME
: der Name der Firewallregel.NETWORK
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.ICMP_PROTOCOL
: der Typ des ICMP-Protokolls, das verwendet werden soll. Geben Sie ICMPv4 mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben Sie die ICMPv6-Methode mit der Protokollnummer58
an.RANGES_OUTSIDE_VPC_NETWORK
: ein oder mehrere IP-Adressbereiche. Sie können in einer bestimmten Firewallregel entweder IPv4- oder IPv6-Bereiche angeben. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten.- Wenn Sie
0.0.0.0/0
als Quellbereich verwenden, wird Traffic von allen IPv4-Quellen zugelassen, einschließlich Quellen außerhalb von Google Cloud. - Wenn Sie
::/0
als Quellbereich verwenden, können Sie Traffic von allen IPv6-Quellen zulassen, einschließlich von Quellen außerhalb von Google Cloud.
- Wenn Sie
Weitere Konfigurationsbeispiele
Abbildung 1 beschreibt eine Beispielkonfiguration für ein VPC-Netzwerk mit dem Namen my-network
. Das Netzwerk enthält Folgendes:
- Ein Subnetz mit dem Namen
subnet1
und dem IP-Bereich10.240.10.0/24
und einer einzelnen Instanz - Ein Subnetz mit dem Namen
subnet2
und dem IP-Bereich192.168.1.0/24
- Eine Instanz mit dem Namen
vm1
insubnet2
mit dem Tagwebserver
und der internen IP-Adresse192.168.1.2
- Eine Instanz mit dem Namen
vm2
insubnet2
mit dem Tagdatabase
und der internen IP-Adresse192.168.1.3
Beispiel 1: Alle eingehenden TCP-Verbindungen mit Ausnahme von Port 80 aus subnet1 ablehnen
In diesem Beispiel werden mehrere VPC-Firewallregeln erstellt, die alle eingehenden TCP-Verbindungen außer denen mit dem Zielport 80
von subnet1
blockieren.
gcloud
Erstellen Sie eine Firewallregel, die den gesamten eingehenden TCP-Traffic zu Instanzen mit dem Tag
webserver
ablehnt.gcloud compute firewall-rules create deny-subnet1-webserver-access \ --network NETWORK_NAME \ --action deny \ --direction ingress \ --rules tcp \ --source-ranges 0.0.0.0/0 \ --priority 1000 \ --target-tags webserver
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.Erstellen Sie eine Firewallregel, die allen IP-Adressen in
subnet1
(10.240.10.0/24
) den Zugriff auf TCP-Port80
auf Instanzen mit dem Tagwebserver
gewährt.gcloud compute firewall-rules create vm1-allow-ingress-tcp-port80-from-subnet1 \ --network NETWORK_NAME \ --action allow \ --direction ingress \ --rules tcp:80 \ --source-ranges 10.240.10.0/24 \ --priority 50 \ --target-tags webserver
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.
Beispiel 2: Alle ausgehenden TCP-Verbindungen mit Ausnahme von Port 80 von vm1 ablehnen
gcloud
Erstellen Sie eine Firewallregel, die den gesamten ausgehenden TCP-Traffic ablehnt.
gcloud compute firewall-rules create deny-all-access \ --network NETWORK_NAME \ --action deny \ --direction egress \ --rules tcp \ --destination-ranges 0.0.0.0/0 \ --priority 1000
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.Erstellen Sie eine Firewallregel, die den TCP-Traffic an
vm1
mit dem Port80
zulässt.gcloud compute firewall-rules create vm1-allow-egress-tcp-port80-to-vm1 \ --network NETWORK_NAME \ --action allow \ --direction egress \ --rules tcp:80 \ --destination-ranges 192.168.1.2/32 \ --priority 60
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.
Beispiel 3: Ausgehende TCP-Verbindungen an Port 443 eines externen Hosts zulassen
Erstellen Sie eine Firewallregel, die für Instanzen mit dem Tag webserver
ausgehenden TCP-Traffic an Port 443
für die externe Beispiel-IP-Adresse 192.0.2.5
zulässt.
gcloud
gcloud compute firewall-rules create vm1-allow-egress-tcp-port443-to-192-0-2-5 \ --network NETWORK_NAME \ --action allow \ --direction egress \ --rules tcp:443 \ --destination-ranges 192.0.2.5/32 \ --priority 70 \ --target-tags webserver
Ersetzen Sie NETWORK_NAME
durch den Namen des Netzwerks.
Beispiel 4: SSH-Verbindungen von vm2 zu vm1 zulassen
Erstellen Sie eine Firewallregel, die SSH-Traffic von Instanzen mit dem Tag database
(vm2
) zu Instanzen mit dem Tag webserver
(vm1
) zulässt.
gcloud
gcloud compute firewall-rules create vm1-allow-ingress-tcp-ssh-from-vm2 \ --network NETWORK_NAME \ --action allow \ --direction ingress \ --rules tcp:22 \ --source-tags database \ --priority 80 \ --target-tags webserver
Ersetzen Sie NETWORK_NAME
durch den Namen des Netzwerks.
Beispiel 5: TCP:1443 vom Webserver zur Datenbank über Dienstkonten zulassen
Weitere Informationen zu Dienstkonten und Rollen finden Sie unter Rollen für Dienstkonten zuweisen.
Betrachten Sie das Szenario in Abbildung 2, in dem zwei Anwendungen automatisch über Vorlagen skaliert werden: eine Webserveranwendung, die mit einem my-sa-webserver
-Dienstkonto verknüpft ist, und eine Datenbankanwendung, die mit einem my-sa-database
-Dienstkonto verknüpft ist. Ein Sicherheitsadministrator möchte TCP-Traffic von VMs mit dem Dienstkonto my-sa-webserver
zum Zielport 1443
von VMs mit dem Dienstkonto my-sa-database
zulassen.
Weiter unten finden Sie die Konfigurationsschritte, einschließlich derer für das Erstellen der Dienstkonten.
gcloud
Ein Projektbearbeiter oder Projektinhaber erstellt die Dienstkonten
my-sa-webserver
undmy-sa-database
.gcloud iam service-accounts create my-sa-webserver \ --display-name "webserver service account"
gcloud iam service-accounts create my-sa-database \ --display-name "database service account"
Ein Projektinhaber weist dem Webserverentwickler web-dev@example.com die Rolle serviceAccountUser für das Dienstkonto
my-sa-webserver
zu. Dazu wird eine IAM-Richtlinie (Identity and Access Management) festgelegt.gcloud iam service-accounts add-iam-policy-binding \ my-sa-webserver@my-project.iam.gserviceaccount.com \ --member='user:web-dev@example.com' \ --role='roles/iam.serviceAccountUser'
Ein Projektinhaber weist dem Datenbankentwickler
db-dev@example.com
die Rolle serviceAccountUser für das Dienstkontomy-sa-database
zu und richtet dafür eine IAM-Richtlinie ein.gcloud iam service-accounts add-iam-policy-binding \ my-sa-database@my-project.iam.gserviceaccount.com \ --member='user:db-dev@example.com' \ --role='roles/iam.serviceAccountUser'
Der Entwickler
web-dev@example.com
, der die Rolle "Instanzadministrator" hat, erstellt die Vorlage für Webserverinstanzen und autorisiert die Ausführung von Instanzen über das Dienstkontomy-sa-webserver
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-webserver@my-project-123.iam.gserviceaccount.com
Der Entwickler
db-dev@example.com
, der die Rolle "Instanzadministrator" hat, erstellt die Vorlage für Datenbankinstanzen und autorisiert die Ausführung von Instanzen über das Dienstkontomy-sa-database
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-database@my-project-123.iam.gserviceaccount.com
Der Sicherheitsadministrator erstellt eine Firewallregel, die TCP-Traffic von VMs mit dem Dienstkonto
my-sa-webserver
zulässt, um Port 1443 von VMs mit dem Dienstkontomy-sa-database
zu erreichen.gcloud compute firewall-rules create RULE_NAME \ --network network_a \ --allow TCP:1443 \ --source-service-accounts my-sa-webserver@my-project.iam.gserviceaccount.com \ --target-service-accounts my-sa-database@my-project.iam.gserviceaccount.com
Fehlerbehebung
Fehlermeldungen beim Erstellen oder Aktualisieren einer VPC-Firewallregel
Möglicherweise wird eine der folgenden Fehlermeldungen angezeigt:
Should not specify destination range for ingress direction.
Zielbereiche sind keine gültigen Parameter für Firewallregeln für den eingehenden Traffic. Es wird davon ausgegangen, dass die Firewallregeln den eingehenden Traffic betreffen, es sei denn,
egress
wäre als spezifische Richtung angegeben. Wenn Sie eine Regel erstellen, die keine Richtung angibt, wird sie als Regel für eingehenden Traffic erstellt. Dann sind Zielbereiche nicht zulässig. Gleichermaßen sind Quellbereiche keine gültigen Parameter für Ausgangsregeln.Firewall direction cannot be changed once created.
Sie können die Richtung einer vorhandenen Firewallregel nicht ändern. Sie müssen eine neue Regel mit den korrekten Parametern erstellen und dann die alte Regel löschen.
Firewall traffic control action cannot be changed once created.
Sie können die Aktion einer bestehenden Firewallregel nicht ändern. Sie müssen eine neue Regel mit den korrekten Parametern erstellen und dann die alte Regel löschen.
Service accounts must be valid RFC 822 email addresses.
Das in der Firewallregel angegebene Dienstkonto muss eine gemäß RFC 822 formatierte E-Mail-Adresse sein.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts invalid-email
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – Invalid value for field 'resource.sourceServiceAccounts[0]': 'invalid-email'. Service accounts must be valid RFC 822 email addresses.
ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
Sie können nicht sowohl Dienstkonten als auch Tags in derselben Regel angeben.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts test@google.com --target-tags target
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
Fehler bezüglich nicht gefundener Ressource
Wenn Sie ein VPC-Netzwerk oder eine Firewallregel löschen, wird möglicherweise eine Meldung wie diese angezeigt: The resource "aet-uscentral1-subnet--1-egrfw" was not found.
Durch diesen Fehler wird möglicherweise verhindert, dass Sie eine implizierte Firewallregel löschen oder ihre Details aufrufen können. Außerdem verhindert eine Firewallregel mit diesem Status möglicherweise, dass ein VPC-Netzwerk gelöscht werden kann.
Wenn Sie eine Firewallregel oder ein Netzwerk löschen möchten, das auf diese Weise blockiert ist, löschen Sie zuerst den zugehörigen Connector für serverlosen VPC-Zugriff und versuchen Sie es dann noch einmal. Weitere Informationen zum Löschen eines Connectors für serverlosen VPC-Zugriff finden Sie unter Connector löschen.
Fehler bei zu vielen großen Firewalls
Möglicherweise wird die folgende Fehlermeldung angezeigt: Google Compute Engine: The network contains too many large firewalls.
Für eine angemessene Sicherheit und Leistung ist die Komplexität und Anzahl der Firewallregeln, die in einem VPC-Netzwerk implementiert werden können, begrenzt. Wenn dieser Fehler angezeigt wird, bitten Sie Ihr Account-Management-Team, Ihre Firewallregeln zu vereinfachen oder zu konsolidieren.
Keine Verbindung zur VM-Instanz möglich
Wenn Sie keine Verbindung zu einer VM-Instanz herstellen können, überprüfen Sie Ihre Firewallregeln.
gcloud
Wenn Sie die Verbindung von einer anderen VM-Instanz aus initiieren, listen Sie die ausgehenden Firewallregeln für diese Instanz auf.
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter EGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.Überprüfen Sie, ob die Ziel-IP von ausgehenden Regeln blockiert wird. Die Regel mit der höchsten Priorität (niedrigste Prioritätsnummer) überschreibt Regeln mit niedrigerer Priorität. Bei Regeln mit derselben Priorität hat die "deny"-Regel Vorrang.
Prüfen Sie die eingehende Firewallregel für das Netzwerk, das die Ziel-VM-Instanz enthält.
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter INGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
Ersetzen Sie
NETWORK_NAME
durch den Namen des Netzwerks.Beispielausgabe. Die Ausgabe hängt von Ihrer Liste der Firewallregeln ab.
NAME NETWORK DIRECTION PRIORITY SRC_RANGES DEST_RANGES ALLOW DENY SRC_TAGS SRC_SVC_ACCT TARGET_TAGS TARGET_SVC_ACCT default-allow-icmp default INGRESS 65534 0.0.0.0/0 icmp default-allow-internal default INGRESS 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp default-allow-rdp default INGRESS 65534 0.0.0.0/0 tcp:3389 default-allow-ssh default INGRESS 65534 0.0.0.0/0 tcp:22 firewall-with-sa default INGRESS 1000 tcp:10000 test1@google.com target@google.com
Sie können auch Verbindungstests zu oder von VM-Instanzen in einem VPC-Netzwerk mit einem anderen VPC-Netzwerk oder Nicht-Google Cloud-Netzwerk durchführen, um festzustellen, ob der Traffic durch Firewallregeln für eingehenden oder ausgehenden Traffic verloren geht. Weitere Informationen zur Fehlerbehebung in verschiedenen Szenarien mithilfe von Konnektivitätstests finden Sie unter Konnektivitätstests ausführen.
Ist meine VPC-Firewallregel aktiviert oder deaktiviert?
Unter Details zu Firewallregeln können Sie sehen, ob eine Firewallregel aktiviert oder deaktiviert ist.
Suchen Sie in der Google Cloud Console im Bereich Erzwingung nach Aktiviert oder Deaktiviert.
Suchen Sie in der Ausgabe der gcloud CLI nach dem Feld disabled
.
Bei disabled:false
ist die Regel aktiviert und wird erzwungen. Bei disabled: true
ist die Regel deaktiviert.
Welche Regel wird auf eine VM-Instanz angewendet?
Nachdem Sie eine Regel erstellt haben, können Sie prüfen, ob sie für eine bestimmte Instanz korrekt angewendet wird. Weitere Informationen finden Sie unter Firewallregeln für eine Netzwerkschnittstelle einer VM-Instanz auflisten.
VPC-Firewallregeln mit Quelltags werden nicht sofort wirksam
Firewallregeln für eingehenden Traffic, die Quelltags verwenden, benötigen etwas Zeit, bis sie wirksam werden. Weitere Informationen finden Sie in den Hinweisen zu Quelltags bei Firewallregeln für eingehenden Traffic.
Nächste Schritte
- Eine Einführung in Firewallregeln finden Sie unter VPC-Firewallregeln.