VPC-Firewallregeln verwenden

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 Cloudverwendeten 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 VPC-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 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

  1. Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen.

  3. Geben Sie einen Namen für die Firewallregel ein.

    Dieser Name muss für das Projekt eindeutig sein.

  4. (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.
  5. Geben Sie das Netzwerk für die Firewallregel an.

  6. Legen Sie die Priorität der Regel fest.

    Je niedriger die Zahl, desto höher die Priorität.

  7. Wählen Sie unter Trafficrichtung die Option "Eingehend" oder "Ausgehend".

  8. Wählen Sie unter Aktion bei Übereinstimmung die Option "Zulassen" oder "Ablehnen".

  9. 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.
  10. 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.
    • 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.
    • 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.

    Weitere Informationen zur Verwendung eines Dienstkontos und eines Netzwerk-Tags finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.

  11. 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.

  12. 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.

    Weitere Informationen finden Sie unter Ziel für Regeln für ausgehenden Traffic.

  13. 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.

  14. 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 beispielsweise icmp oder die Protokollnummer 1 für IPv4 ICMP. Verwenden Sie die Protokollnummer 58 für IPv6 ICMP.

    Weitere Informationen finden Sie unter Protokolle und Zielports.

  15. (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.

  16. 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 Netzwerk default 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, entweder INGRESS oder EGRESS.
  • --action Die Aktion bei Übereinstimmung, entweder allow oder deny. Muss mit dem Flag --rules verwendet werden.
  • Sie haben folgende 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.
    • Mit dem Flag --target-tags können Sie Ziele nach Netzwerk-Tags definieren.
    • Mit dem Flag --target-service-accounts können Sie Ziele nach verknüpften Dienstkonten definieren.
  • 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 Sie all, 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.
  • --enable-logging | --no-enable-logging Sie können beim Erstellen oder Aktualisieren einer Regel das Logging von Firewallregeln aktivieren. Mit dem Logging von Regeln in VPC-Firewalls können Sie die Auswirkungen Ihrer Firewallregeln überwachen, prüfen und analysieren. Weitere Informationen finden Sie unter Logging von VPC-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 VPC-Firewallregeln verwenden.

Terraform

Zum Erstellen einer Firewallregel können Sie eine google_compute_firewall-Ressource verwenden.

resource "google_compute_firewall" "rules" {
  name        = "my-firewall-rule"
  network     = "default"
  description = "Creates firewall rule targeting tagged instances"

  allow {
    protocol = "tcp"
    ports    = ["80", "443"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["web"]
}

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 oder