Firewallregeln verwenden
Auf dieser Seite werden die Befehle für die Arbeit mit Firewallregeln beschrieben und einige Verwendungsbeispiele gegeben.
Hinweis
In der Übersicht über Firewallregeln finden Sie weitere Informationen zu Firewallregeln, wie z. B. implizierte Regeln und automatisch generierte Regeln für Standardnetzwerke.
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.
Firewallregeln erstellen
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 Konsole 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 „Firewallregeln“ auf.
Zur Seite "Firewall" - Klicken Sie auf Firewallregel erstellen.
- Geben Sie einen Namen für die Firewallregel ein.
Dieser Name muss für das Projekt eindeutig sein. - (Optional) Sie können auch das Logging von Firewallregeln aktivieren:
- Klicken Sie auf Logs > Ein.
- Wenn Sie Metadaten ausschließen möchten, maximieren Sie die Logdetails und deaktivieren Sie dann 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 Trafficrichtung 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 die 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
Specified target tags
aus. Geben Sie dann im Feld Zieltags die entsprechenden Tags ein, auf die die Regel angewendet werden soll. - Wenn Sie die Regel auf bestimmte Instanzen nach verknüpftem Dienstkonto anwenden möchten, wählen Sie
Specified service account
aus und geben Sie unter Bereich des Dienstkontos an, ob das Dienstkonto im aktuellen Projekt oder in einem anderen Projekt enthalten ist. Wählen Sie im Feld Zieldienstkonto den Namen des Dienstkontos aus oder geben Sie ihn ein.
- Wenn die Regel für alle Instanzen im Netzwerk gelten soll, wählen Sie
- Geben Sie den Quellfilter für eine Eingangsregel an:
- Um eingehenden Traffic nach IPv4-Quellbereichen zu filtern, wählen Sie
IPv4 ranges
aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Quellbereiche ein. Verwenden Sie0.0.0.0/0
für jede IPv4-Quelle. - Um eingehenden Traffic nach IPv6-Quellbereichen zu filtern, wählen Sie
IPv6 ranges
aus und geben Sie die CIDR-Blöcke in das Feld IPv6-Quellbereiche ein. Verwenden Sie::/0
für jede IPv6-Quelle. - Wenn Sie eingehenden Traffic nach Netzwerktag filtern möchten, wählen Sie
Source tags
aus und geben Sie dann die Netzwerktags in das Feld Quelltags ein. Das Limit für die Anzahl der Quelltags finden Sie unter Limits pro Netzwerk. Das Filtern nach Quelltag ist nur verfügbar, wenn das Ziel nicht nach Dienstkonto angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerktag filtern. - Wenn Sie eingehenden Traffic nach Dienstkonto filtern möchten, wählen Sie
Service account
aus. Geben Sie dann im Feld 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 ein Netzwerktag angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerktag 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.
- Um eingehenden Traffic nach IPv4-Quellbereichen zu filtern, wählen Sie
- Geben Sie den Zielfilter für eine Ausgangsregel an:
- Wenn Sie ausgehenden Traffic nach IPv4-Zielbereichen filtern möchten, wählen Sie
IPv4 ranges
aus und geben Sie die CIDR-Blöcke in das Feld IPv4-Zielbereiche ein. Verwenden Sie0.0.0.0/0
für jedes IPv4-Ziel. - Wenn Sie ausgehenden Traffic nach IPv6-Zielbereichen filtern möchten, wählen Sie
IPv6 ranges
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
Definieren Sie die Protokolle und Ports, auf die Sie die Regel anwenden möchten:
Wählen Sie abhängig von der Aktion die Option
Allow all
oderDeny all
aus, um die Regel auf alle Protokolle und Zielports anzuwenden.Definieren Sie die angegebenen Protokolle und Zielports:
- 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 Protokolle aus, um Protokolle wie
icmp
,sctp
oder eine Protokollnummer einzuschließen. Verwenden Sie das Protokoll58
für ICMPv6. 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
Der Befehl gcloud
zum Erstellen von Firewallregeln lautet:
gcloud compute firewall-rules create 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 drei Möglichkeiten, ein Ziel anzugeben:
- Lassen Sie
--target-tags
und--target-service-accounts
aus, wenn die Regel auf alle Ziele im Netzwerk angewendet werden soll. --target-tags
Verwenden Sie dieses Flag, um Ziele nach Netzwerktags zu definieren.--target-service-accounts
Verwenden Sie dieses Flag, um Ziele nach verknüpften Dienstkonten zu definieren.
- Lassen Sie
- Geben Sie eine Quelle für eine Eingangsregel 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 Quelltag ist nur verfügbar, wenn das Ziel nicht nach Dienstkonto angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerktag 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 Netzwerktag angegeben ist. Weitere Informationen finden Sie unter Nach Dienstkonto oder Netzwerktag 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.
- Geben Sie ein Ziel für eine Ausgangsregel 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.
API
Erstellen Sie eine Firewallregel.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "FIREWALL_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
ist der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.FIREWALL_NAME
ist ein Name für die Firewallregel.Verwenden Sie für eine Firewallregel für eingehenden Traffic die folgenden Felder, um die Eingangsquelle anzugeben:
sourceRanges
,sourceTags
odersourceServiceAccounts
.sourceRanges
können entweder IPv4- oder IPv6-Bereiche sein, aber keine Kombination aus beidem. Geben Sie kein Feld an, wenn Sie den Bereich0.0.0.0/0
verwenden möchten. Sie können die FeldersourceTags
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
bei einer Firewallregel für ausgehenden Traffic, 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
Terraform
Sie können eine Terraform-Ressource verwenden, um eine Firewallregel zu erstellen.
Firewallregeln aktualisieren
Sie können einige Komponenten einer Firewallregel ändern, z. B. die angegebenen Protokolle und Ports 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 Google Cloud CLI, die API oder die Clientbibliotheken. In der Konsole lassen sich nicht mehrere Zieldienstkonten oder Quelldienstkonten angeben.
Console
- Rufen Sie in der Google Cloud Console die Seite „Firewallregeln“ auf.
Zur Seite "Firewall" - 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.
Verwenden Sie im Feld Angegebene Protokolle und Ports eine durch Semikolons getrennte Liste, um mehrere Kombinationen von Protokollen und Zielports anzugeben. Geben Sie
icmp
oder die Protokollnummer1
an, um IPv4 ICMP anzugeben. Verwenden Sie die Protokollnummer58
, um IPv6 ICMP anzugeben. Weitere Informationen finden Sie unter Protokolle und Zielports.Klicken Sie auf Speichern.
gcloud
Der gcloud
-Befehl zum Aktualisieren von Firewallregeln lautet:
gcloud compute firewall-rules update 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/FIREWALL_NAME { "name": "FIREWALL_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
ist der Name des VPC-Netzwerks, in dem sich die Firewallregel befindet.FIREWALL_NAME
ist 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
Firewallregeln für ein VPC-Netzwerk auflisten
In der Cloud Console können Sie alle Firewallregeln für Ihr Projekt oder für ein bestimmtes VPC-Netzwerk auflisten. Für jede Firewallregel zeigt die Cloud Console 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 Firewallregeln für alle Netzwerke in Ihrem Projekt auf:
- Rufen Sie in der Google Cloud Console die Seite „Firewallregeln“ auf.
Zur Seite "Firewall"
So rufen Sie Firewallregeln in einem bestimmten Netzwerk auf:
- Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
Zur VPC-Netzwerkseite - 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 Firewallregeln.
gcloud
Mit dem folgenden Befehl wird eine sortierte Liste mit Firewallregeln für ein bestimmtes Netzwerk ([NETWORK-NAME]
) generiert.
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 )"
API
Listen Sie alle Firewallregeln für ein bestimmtes Netzwerk auf.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/?filter=network="NETWORK
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.NETWORK
ist 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
Firewallregeln für eine Netzwerkschnittstelle einer VM-Instanz auflisten
Für jede Netzwerkschnittstelle listet die Cloud Console alle für die Schnittstelle geltenden 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 einer VM-Instanz 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.
So zeigen Sie die Regeln an, die für eine bestimmte Netzwerkschnittstelle einer VM-Instanz gelten:
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf und suchen Sie nach der Instanz, die Sie sich ansehen möchten.
Zur Seite „VM-Instanzen” - Wählen Sie im Dreipunkt-Menü (
) der Instanz die Option Netzwerkdetails anzeigen aus.
- Wenn eine Instanz mehrere Netzwerkschnittstellen hat, wählen Sie im Abschnitt Details zur Netzwerkschnittstelle die Netzwerkschnittstelle aus, die Sie ansehen möchten.
- Klicken Sie im Abschnitt Firewall- und Routendetails auf den Tab Firewallregeln.
- Anhand der Tabelle können Sie feststellen, ob Traffic von oder zu einer bestimmten IP-Adresse zulässig ist.
Details zu Firewallregeln anzeigen
Sie können eine Firewallregel untersuchen, um deren Namen, 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 Firewallregel. Ersetzen Sie [FIREWALL-NAME]
durch den Namen der Firewallregel. Da 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 [FIREWALL-NAME]
API
Beschreiben Sie eine bestimmte Firewallregel.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/FIREWALL_NAME
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem sich die Firewallregel befindet.FIREWALL_NAME
ist der Name der zu beschreibenden Firewallregel.
Weitere Informationen finden Sie in der Methode firewalls.get
.
Firewallregeln löschen
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 löschen möchten.
- Klicken Sie auf Löschen.
- Klicken Sie zur Bestätigung noch einmal auf Löschen.
gcloud
Mit dem folgenden Befehl werden Firewallregeln gelöscht. Ersetzen Sie [FIREWALL-NAME]
durch den Namen Ihres Dienstes.
gcloud compute firewall-rules delete [FIREWALL-NAME]
API
Firewallregel löschen
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/FIREWALL_NAME
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem sich die Firewallregel befindet.FIREWALL_NAME
ist der Name der zu löschenden Firewallregel.
Weitere Informationen finden Sie in der Methode firewalls.delete
.
C#
Go
Java
Node.js
PHP
Python
Ruby
Firewallregeln beobachten
Wenn Sie das Firewallregel-Logging aktivieren, können Sie sehen, welche Regel welche Art von Traffic zulässt oder blockiert. Informationen zum Einrichten von Firewallregel-Logging finden Sie unter Firewallregel-Logging verwenden.
Firewallregeln für gängige Anwendungsfälle konfigurieren
In den folgenden Abschnitten finden Sie ein Beispiel für eine gcloud CLI und die API zum Neuerstellen der vordefinierten Firewallregeln, die für Standardnetzwerke erstellt wurden. 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
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:0-65535,udp:0-65535,ICMP_PROTOCOL \ --source-ranges=SUBNET_RANGES
Dabei gilt:
NAME
: der Name für diese Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.ICMP_PROTOCOL
: Geben SieICMPv4
mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben SieICMPv6
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": "FIREWALL_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" ] }
Dabei gilt:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.FIREWALL_NAME
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.NETWORK
: Ein Name für die Firewallregel. Regel gilt für. Der Standardwert istdefault
.ICMP_PROTOCOL
: Geben SieICMPv4
mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben SieICMPv6
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
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:22 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Dabei gilt:
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": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Dabei gilt:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.FIREWALL_NAME
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.NETWORK
ist ein Name für die Firewallregel.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
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:3389 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Dabei gilt:
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": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "allowed": [ { "IPProtocol": "tcp", "ports": [ "3389" ] } ], "sourceRanges": [ "EXTERNAL_SOURCE_RANGES" ] }
Dabei gilt:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.FIREWALL_NAME
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.NETWORK
ist ein Name für die Firewallregel.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
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=ICMP_PROTOCOL \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Dabei gilt:
NAME
: der Name für diese Firewallregel.NETWORK
: der Name des Netzwerks, für das diese Firewallregel gilt. Der Standardwert istdefault
.ICMP_PROTOCOL
: Geben SieICMPv4
mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben SieICMPv6
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": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Dabei gilt:
PROJECT_ID
ist die ID des Projekts, in dem sich das VPC-Netzwerk befindet.FIREWALL_NAME
: der Name des VPC-Netzwerks, in dem die Firewallregel erstellt wird.NETWORK
ist ein Name für die Firewallregel.ICMP_PROTOCOL
: Geben SieICMPv4
mit dem Protokollnamenicmp
oder der Protokollnummer1
an. Geben SieICMPv6
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
Das folgende Diagramm zeigt ein Beispiel für eine Firewallkonfiguration. Das Szenario umfasst my-network
mit folgenden Elementen:
- ein Subnetz
subnet1
mit IP-Bereich10.240.10.0/24
- ein Subnetz
subnet2
mit IP-Bereich192.168.1.0/24
- Instanz
vm1
insubnet2
mit dem Tagwebserver
und der internen IP-Adresse192.168.1.2
- Instanz
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 Firewallregeln erstellt, die alle eingehenden TCP-Verbindungen außer denen mit dem Zielport 80
von subnet1
blockieren.
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
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
Beispiel 2: Alle ausgehenden TCP-Verbindungen außer an Port 80
von vm1
ablehnen
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
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
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 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
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 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
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 im nachfolgenden Diagramm. Hier werden zwei Anwendungen mithilfe von Vorlagen automatisch skaliert: eine Webserveranwendung my-sa-web
und eine Datenbankanwendung „my-sa-db“. Ein Sicherheitsadministrator möchte TCP-Abläufe zum Zielport 1443
von my-sa-web
zu my-sa-db
zulassen.
Die Konfigurationsschritte, einschließlich derer für das Erstellen der Dienstkonten:
Ein Projektbearbeiter oder Projektinhaber erstellt die Dienstkonten
my-sa-web
undmy-sa-db
.gcloud iam service-accounts create my-sa-web \ --display-name "webserver service account"
gcloud iam service-accounts create my-sa-db \ --display-name "database service account"
Ein Projektinhaber weist dem Webserverentwickler
web-dev@example.com
für das Dienstkontomy-sa-web
die Rolle serviceAccountUser zu. Dazu wird eine IAM-Richtlinie (Identity and Access Management) festgelegt.gcloud iam service-accounts add-iam-policy-binding \ my-sa-web@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 Dienstkonto
my-sa-db
zu und richtet dafür eine IAM-Richtlinie ein.gcloud iam service-accounts add-iam-policy-binding \ my-sa-db@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-web
.gcloud compute instance-templates create [INSTANCE_TEMPLATE_NAME] \ --service-account my-sa-web@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-db
.gcloud compute instance-templates create [INSTANCE_TEMPLATE_NAME] \ --service-account my-sa-db@my-project-123.iam.gserviceaccount.com
Der Sicherheitsadministrator erstellt die Firewallregeln mithilfe von Dienstkonten und lässt Traffic
TCP:1443
vom Dienstkontomy-sa-web
zum Dienstkontomy-sa-db
zu.gcloud compute firewall-rules create FIREWALL_NAME \ --network network_a \ --allow TCP:1443 \ --source-service-accounts my-sa-web@my-project.iam.gserviceaccount.com \ --target-service-accounts my-sa-db@my-project.iam.gserviceaccount.com
Fehlerbehebung
Fehlermeldungen beim Erstellen oder Aktualisieren einer 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.
Keine Verbindung zur VM-Instanz möglich
Wenn Sie keine Verbindung zu einer VM-Instanz herstellen können, überprüfen Sie Ihre Firewallregeln.
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 )"
Ü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 )"
Hier eine Beispielausgabe. Ihre 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 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 unter Erzwingung nach Enabled
oder Disabled
.
Suchen Sie in der Ausgabe der Google Cloud 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.
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.
Weitere Informationen
- Eine Einführung zu Firewallregeln finden Sie unter Übersicht über Firewallregeln.