Beispiele für hierarchische Firewallrichtlinien

Diese Seite enthält Beispiele für die Umsetzung hierarchischer Firewallrichtlinien. Dabei wird davon ausgegangen, dass Sie mit den Konzepten vertraut sind, die in der Übersicht über hierarchische Firewallrichtlinien beschrieben sind.

Beispiel 1: Prober den Zugriff auf alle VMs gestatten

In diesem Anwendungsfall müssen alle VM-Instanzen in einer Organisation gescannt und mit Tests von einer bestimmten IP-Adresse (10.100.0.1) an einem bestimmten Port (123) erfasst werden. Der Sicherheitsadministrator der Organisation sorgt dafür, dass kein Netzwerkadministrator oder andere Sicherheitsadministratoren diesen Port in einer VM-Instanz in der Organisation blockieren können.

In diesem Beispiel wird davon ausgegangen, dass keine Sicherheitsrichtlinien auf Ordnerebene bereitgestellt wurden.

Die Konfiguration für diesen Anwendungsfall ist im folgenden Diagramm beschrieben.

Prober den Zugriff auf alle VMs gestatten
Prober den Zugriff auf alle VMs gestatten

Auf VMs angewendete geltende Richtlinie

In diesem Beispiel sieht die wirksame VM-Firewallrichtlinie nach Auswertung der Regeln in der Hierarchie wie unten dargestellt aus.

Eingehende Verbindungen

  • Eingehende Verbindungen mit der Quell-IP 10.100.0.1 und dem Zielport 123 sind zulässig, wie in der Richtlinie definiert. Bei einer Übereinstimmung in der Organisationsrichtlinie sind die Testverbindungen zulässig und es werden keine weiteren Regeln in der Hierarchie ausgewertet.

  • Für sämtliche eingehenden Verbindungen außer der Quell-IP 10.100.0.1 und dem Zielport 123 besteht keine Übereinstimmung. Daher gilt die Standardregel für eingehenden Traffic in VPC-Firewallregeln, mit der die Verbindung abgelehnt wird.

Ausgehende Verbindung

  • Bei den hierarchisch definierten Regeln besteht keine Übereinstimmung. Daher gilt die Standardregel für ausgehenden Traffic in VPC-Firewallregeln, die ausgehende Verbindungen zulässt.

Konfiguration

  1. Erstellen Sie eine Sicherheitsrichtlinie, die die Regel enthalten soll:

    gcloud beta compute org-security-policies create \
         --organization 123456789012 \
         --display-name "example-security-policy" \
         --description "rules that apply to all VMs in the organization"
    
  2. Fügen Sie die Regel der Sicherheitsrichtlinie hinzu:

    gcloud beta compute org-security-policies rules create 1000 \
        --action allow \
        --description "allow-scan-probe" \
        --layer4-configs tcp:123 \
        --security-policy example-security-policy \
        --organization 123456789012 \
        --src-ip-ranges 10.100.0.1/32
  3. Verknüpfen Sie die Sicherheitsrichtlinie mit dem Organisationsknoten:

    gcloud beta compute org-security-policies associations create \
        --security-policy example-security-policy \
        --organization 123456789012

Beispiel 2: Alle externen Verbindungen mit Ausnahme bestimmter Ports ablehnen

In diesem Anwendungsfall blockiert eine Firewallrichtlinie alle Verbindungen von externen Internetquellen mit Ausnahme der Verbindungen an den Ports 80, 443 und 22. Eine eingehende Internetverbindung an jedem Port, der nicht 80, 443 und 22 ist, wird unabhängig von den Firewallregeln auf VPC-Netzwerkebene blockiert. Bei Verbindungen an Port 80, 443 oder 22 delegiert die Richtlinie das Verhalten, das im jeweiligen VPC-Netzwerk für diese Ports erzwungen werden soll, an den VPC-Sicherheitsadministrator.

Die Konfiguration für diesen Anwendungsfall ist im folgenden Diagramm beschrieben.

Alle externen Verbindungen mit Ausnahme bestimmter Ports ablehnen
Alle externen Verbindungen außer bestimmten Ports ablehnen

Auf VMs angewendete geltende Richtlinie

In diesem Beispiel sieht die wirksame VM-Firewallrichtlinie nach Auswertung der Regeln in der Hierarchie wie unten dargestellt aus.

Eingehende Verbindungen

  • Alle eingehenden Verbindungen von 10.0.0.0/8 entsprechen der Regel mit der höchsten Priorität auf Organisationsebene delegate-internal-traffic und umgehen die restlichen Regeln aus der Organisationsrichtlinie, die anhand der Firewallregeln ausgewertet werden, die auf VPC-Netzwerkebene konfiguriert sind. Gemäß der VPC-Firewallregel sind Verbindungen von 10.2.0.0/16 zulässig und der Rest der Verbindungen wird anhand der implizierten Eingangsregel deny ausgewertet.

  • Eingehende Verbindungen mit einem Quell-IP-Bereich, der für die Ports 22, 80 und 443 nicht 10.0.0.0/8 ist, werden an die nächste Ebene delegiert. Dort sind die Ports 80 und 443 zulässig, 22 jedoch nicht.

  • Alle anderen Verbindungen werden blockiert.

Ausgehende Verbindungen

  • Bei den hierarchisch definierten Regeln besteht keine Übereinstimmung. Daher gilt die Standardregel für ausgehenden Traffic in VPC-Firewallregeln, die ausgehende Verbindungen zulässt.

Konfiguration

  1. Erstellen Sie eine Sicherheitsrichtlinie, die die Regel enthalten soll:

    gcloud beta compute org-security-policies create \
        --organization 123456789012 \
        --display-name "example-security-policy" \
        --description "rules that apply to all VMs in the organization"
    
  2. Fügen Sie eine Regel hinzu, um interne Verbindungen an den Projektinhaber zu delegieren:

    gcloud beta compute org-security-policies rules create 1000 \
        --action goto_next \
        --description "delegate-internal-traffic" \
        --organization 123456789012 \
        --security-policy "example-security-policy" \
        --src-ip-ranges 10.0.0.0/8
    
  3. Fügen Sie eine Regel hinzu, um die Verbindungsregeln für den externen Port 80/443/22 an den Projektinhaber zu delegieren:

    gcloud beta compute org-security-policies rules create 2000 \
        --action goto_next \
        --description "delegate-external-traffic-spec-ports" \
        --layer4-configs tcp:80,tcp:443,tcp:22 \
        --organization 123456789012 \
        --security-policy "example-security-policy"
  4. Fügen Sie eine Regel hinzu, um alle anderen externen Verbindungen abzulehnen:

    gcloud beta compute org-security-policies rules create 3000 \
        --action deny \
        --description "block-other-external-traffic-spec-ports" \
        --organization 123456789012 \
        --security-policy "example-security-policy" \
        --src-ip-ranges 0.0.0.0/0
    
  5. Verknüpfen Sie die Sicherheitsrichtlinie mit dem Organisationsknoten:

    gcloud beta compute org-security-policies associations create \
        --organization 123456789012 \
        --security-policy "example-security-policy"
  6. Fügen Sie im Projekt eine Firewallregel hinzu, um interne Verbindungen aus dem angegebenen Subnetz zuzulassen:

    gcloud beta compute firewall-rules create allow-internal-traffic \
        --action allow \
        --priority 1000 \
        --source-ranges 10.2.0.0/16
    
  7. Fügen Sie im Projekt eine Firewallregel hinzu, um externe TCP-80/443-Verbindungen zuzulassen:

    gcloud beta compute firewall-rules create allow-external-traffic \
        --action allow \
        --priority 1000 \
        --rules tcp:80,tcp:443
    

Beispiel 3: Ausgehende Verbindungen mit Ausnahme eines bestimmten VPC-Netzwerks ablehnen

In diesem Anwendungsfall lässt der Sicherheitsadministrator der Organisation in keinem VPC-Netzwerk ausgehende Verbindungen zu, mit Ausnahme von Verbindungen, die aus dem VPC-Netzwerk myvpc stammen. Der Administrator delegiert die Entscheidung, ausgehenden Traffic zum öffentlichen Server 203.0.113.1 zu öffnen, an den myvpc-Sicherheitsadministrator.

In diesem Beispiel wird davon ausgegangen, dass keine Sicherheitsrichtlinien auf Ordnerebene bereitgestellt wurden. Die Konfiguration für diesen Anwendungsfall ist im folgenden Diagramm beschrieben.

Ausgehende Verbindungen mit Ausnahme eines bestimmten Netzwerks ablehnen
Ausgehende Verbindungen mit Ausnahme eines bestimmten Netzwerks ablehnen

Auf VMs angewendete geltende Richtlinie

In diesem Beispiel sieht die wirksame VM-Firewallrichtlinie nach Auswertung der Regeln in der Hierarchie wie unten dargestellt aus.

Eingehende Verbindungen

  • Bei den hierarchisch definierten Regeln besteht keine Übereinstimmung. Daher gilt bei VPC-Firewallregeln die Standardregel für eingehenden Traffic, die ausgehende Verbindungen ablehnt.

Ausgehende Verbindungen

  • Alle an 203.0.113.1 gerichteten ausgehenden Verbindungen sind zulässig; die übrigen Verbindungen werden abgelehnt. Alle an 203.0.113.1 gerichteten ausgehenden Verbindungen entsprechen der Regel delegate-egress-my-vpc und umgehen die restlichen Regeln aus der Organisationsrichtlinie.

  • Die ausgehenden Verbindungen werden dann anhand der in myvpc konfigurierten Firewallregeln ausgewertet. Die Standardregel lässt ausgehende Verbindungen zu. Die Regel block-egress-traffic-sepc-ports aus der Richtlinie auf Organisationsebene lehnt die übrigen Verbindungen ab.

Konfiguration

  1. Erstellen Sie eine Sicherheitsrichtlinie, die die Regel enthalten soll:

    gcloud beta compute org-security-policies create \
        --organization 123456789012 \
        --display-name "example-security-policy" \
        --description "rules that apply to all VMs in the organization"
    
  2. Fügen Sie eine Regel hinzu, um bestimmte ausgehende Verbindungen zu delegieren:

    gcloud beta compute org-security-policies rules create 1000 \
        --action goto_next \
        --description "delegate-egress-myvpc" \
        --dest-ip-ranges 203.0.113.1/32
        --direction egress
        --organization 123456789012 \
        --display-name "example-security-policy" \
        --target-resources projects/PROJECT_ID/networks/myvpc
    
  3. Fügen Sie eine Regel hinzu, um alle anderen ausgehenden Verbindungen abzulehnen:

    gcloud beta compute org-security-policies rules create 2000 \
        --action deny \
        --description "block-egress-external-traffic-spec-ports" \
        --direction egress \
        --dest-ip-ranges 0.0.0.0/0 \
        --organization 123456789012 \
        --display-name "example-security-policy"
  4. Verknüpfen Sie die Sicherheitsrichtlinie mit dem Organisationsknoten:

    gcloud beta compute org-security-policies associations create \
        --organization 123456789012 \
        --display-name "example-security-policy"

Beispiel 4: Organisationsweite und ordnerspezifische Regeln konfigurieren

In diesem Anwendungsfall lässt ein Sicherheitsadministrator keine eingehenden Verbindungen zu VMs in der Organisation zu, mit Ausnahme der Verbindungen aus dem Bereich 203.0.113.0/24 aus der Zulassungsliste. Der Administrator delegiert weitere Entscheidungen darüber, was mit Verbindungen von 203.0.113.0/24 geschieht, auf Ordnerebene an Sicherheitsadministratoren.

Es gibt zwei verschiedene Ordner:

  • Folder1, bei dem die Richtlinie nur die Ports 80 und 443 auf den Back-End-VMs zulässt und die restlichen Ports blockiert werden.
  • Folder2, bei dem durch die Richtlinie erzwungen wird, dass keine VM in Folder2 einen Port für die IP-Adresse 203.0.113.1 blockieren kann. Der Sicherheitsadministrator von Folder2 delegiert weitere Entscheidungen an den VPC-Netzwerkadministrator, der die Ports 80, 443 und 22 öffnet und den Rest der Ports ablehnt.

Die Konfiguration für diesen Anwendungsfall ist im folgenden Diagramm beschrieben.

Organisationsweite und ordnerspezifische Regeln
Organisationsweite und ordnerspezifische Regeln

Auf VMs angewendete geltende Richtlinie

In diesem Beispiel sieht die wirksame VM-Firewallrichtlinie nach Auswertung der Regeln in der Hierarchie wie unten dargestellt aus.

Für VMs, die zu my-vpc gehören

  • Alle eingehenden Verbindungen von 203.0.113.0/24 mit den TCP-Ports 80 und 443 sind zulässig. Alle anderen eingehenden Verbindungen werden abgelehnt.

  • Alle ausgehenden Verbindungen werden gemäß der angewendeten VPC-Firewallregel akzeptiert, da es in den übergeordneten Sicherheitsrichtlinien keine Übereinstimmung gibt.

Für VMs, die zu vpc2 gehören

  • Alle eingehenden Verbindungen von 203.0.113.1 sind zulässig. Eingehende Verbindungen von anderen 203.0.113.0/24-Quellen mit Ausnahme von 203.0.113.1 sind nur für die Ports 80, 443 und 22 zulässig. Alle anderen eingehenden Verbindungen werden abgelehnt.

  • Alle ausgehenden Verbindungen werden gemäß der angewendeten VPC-Firewallregel akzeptiert, da es in den übergeordneten Sicherheitsrichtlinien keine Übereinstimmung gibt.

Konfiguration

  1. Erstellen Sie eine Sicherheitsrichtlinie, die die Regeln für Org_A enthalten soll:

    gcloud beta compute org-security-policies create \
        --organization 100000000000 \
        --display-name "example-security-policy-org-a" \
        --description "rules that apply to all VMs in the organization"
    
  2. Fügen Sie eine Regel hinzu, um eingehenden Traffic von 203.0.113.0/24 an den Projektinhaber zu delegieren:

    gcloud beta compute org-security-policies rules create 1000 \
        --action goto_next \
        --description "delegate-ingress" \
        --organization 100000000000 \
        --display-name "example-security-policy-org-a" \
        --src-ip-ranges 203.0.113.0/24
    
  3. Fügen Sie eine Regel hinzu, um alle anderen externen Verbindungen abzulehnen:

    gcloud beta compute org-security-policies rules create 2000 \
        --action deny
        --description "block-ingress-external-traffic"
        --organization 100000000000 \
        --display-name "example-security-policy-org-a" \
        --src-ip-ranges 0.0.0.0/0
    
  4. Verknüpfen Sie die Sicherheitsrichtlinie mit dem Organisationsknoten:

    gcloud beta compute org-security-policies associations create \
        --organization 100000000000 \
        --display-name "example-security-policy-org-a"
  5. Erstellen Sie eine Sicherheitsrichtlinie, die die Regeln für Folder1 enthält:

    gcloud beta compute org-security-policies create \
        --organization 100000000000 \
        --display-name "example-security-policy-folder1" \
        --description "rules that apply to all VMs under Folder1"
    
  6. Fügen Sie eine Regel hinzu, die den gesamten eingehenden HTTP(S)-Traffic zulässt:

    gcloud beta compute org-security-policies rules create 1000 \
        --action allow \
        --description "allow-http-s-ingress" \
        --layer4-configs tcp:80,tcp:443 \
        --organization 100000000000 \
        --display-name "example-security-policy-folder1"
  7. Fügen Sie eine Regel hinzu, um eingehenden Traffic auf allen anderen Ports/Protokollen abzulehnen:

    gcloud beta compute org-security-policies rules create 2000 \
        --action deny \
        --description "block-ingress-external-traffic" \
        --organization 100000000000 \
        --display-name "example-security-policy-folder1" \
        --src-ip-ranges 0.0.0.0/0
  8. Ordnen Sie die Sicherheitsrichtlinie Folder1 zu:

    gcloud beta compute org-security-policies associations create \
        --organization 100000000000 \
        --display-name "example-security-policy-folder1" \
        --folder 200000000000
  9. Erstellen Sie eine Sicherheitsrichtlinie, die die Regeln für Folder2 enthalten soll:

    gcloud beta compute org-security-policies create \
        --organization 100000000000 \
        --display-name "example-security-policy-folder2" \
        --description "rules that apply to all VMs under Folder2"
  10. Fügen Sie eine Regel hinzu, um eingehenden Traffic von 203.0.113.1 zuzulassen:

    gcloud beta compute org-security-policies rules create 1000 \
        --action allow \
        --description "allow-vul-scan-ingress" \
        --organization 100000000000 \
        --display-name "example-security-policy-folder2" \
        --src-ip-ranges 203.0.113.1/32
  11. Ordnen Sie die Sicherheitsrichtlinie Folder2 zu:

    gcloud beta compute org-security-policies associations create \
        --organization 100000000000 \
        --display-name "example-security-policy-folder2" \
        --folder 300000000000
  12. Fügen Sie eine Firewallregel hinzu, um eingehende HTTP(S)-Verbindungen zuzulassen:

    gcloud beta compute firewall-rules create allow-internal-traffic \
        --action allow \
        --rules tcp:80,tcp:443,tcp:22
    

Weitere Informationen