Tags für Firewalls verwenden

Erstellen Sie Tags, bevor Sie versuchen, sie an Ressourcen zu binden, oder verwenden Sie sie in Netzwerk-Firewallrichtlinien. Zur Steuerung des Netzwerkzugriffs sind Tags nur effektiv, wenn sie an VM-Instanzen gebunden sind.

Eine Übersicht finden Sie unter Tags für Firewalls.

Berechtigungen für Tags erteilen

Mit der tagAdmin-Rolle können Sie Tags erstellen, aktualisieren und löschen. Ein Organisationsadministrator kann diese Rolle auf Organisationsebene und ein Projektinhaber ihm auf Projektebene zuweisen.

gcloud

  1. Weisen Sie dem Nutzer die Rolle tagAdmin zu:

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagAdmin
    

    Ersetzen Sie dabei Folgendes:

    • ORGANIZATION_ID: die ID Ihrer Organisation
    • EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers
  2. Weisen Sie dem Nutzer die Rolle tagUser zu:

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ersetzen Sie dabei Folgendes:

    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers

Benutzerdefinierte Rollen zum Verwalten von Tags

Mit der tagAdmin-Rolle können Sie folgende Aktionen ausführen: Tags erstellen, aktualisieren und löschen. Wenn Sie einige dieser Funktionen benötigen, können Sie eine benutzerdefinierte IAM-Rolle mit den entsprechenden Berechtigungen erstellen und die neue Rolle dann dem Zielnutzer zuweisen. Eine Liste der relevanten Berechtigungen finden Sie unter IAM-Berechtigungen.

In Firewallrichtlinien verwendete Tags müssen mit dem Zweck GCE_FIREWALL angegeben werden. Der Zweck GCE_FIREWALL ist für die Verwendung des Tags in Netzwerkfunktionen erforderlich. Sie können das Tag aber auch für andere Aktionen verwenden.

In Richtlinien für Netzwerkfirewalls verwendete Tags müssen einen Bereich haben, der auf eine einzige VPC beschränkt ist.

Tag-Schlüssel und -Werte erstellen

Bevor Sie Tags mit den Richtlinien für Netzwerkfirewalls verknüpfen, müssen Sie die Tag-Schlüssel und -Werte erstellen.

gcloud

  1. Nachdem Sie die erforderlichen Berechtigungen erhalten haben, erstellen Sie den Tag-Schlüssel.

    gcloud resource-manager tags keys create TAG_KEY \
       --parent organizations/ORGANIZATION_ID \
       --purpose GCE_FIREWALL \
       --purpose-data network=PROJECT_ID/NETWORK
    

    Ersetzen Sie dabei Folgendes:

    • TAG_KEY: der Tag-Schlüssel
    • ORGANIZATION_ID: die ID Ihrer Organisation
    • PROJECT_ID: die Projekt-ID
    • NETWORK: der Name Ihres Netzwerks
  2. Fügen Sie die relevanten Tag-Werte zu den Tag-Schlüsseln hinzu. Führen Sie den Befehl mehrmals aus, um mehrere Werte hinzuzufügen. Achten Sie darauf, dass jeder dem Tag-Schlüssel hinzugefügte Tag-Wert eindeutig ist.

    gcloud resource-manager tags values create TAG_VALUE \
       --parent ORGANIZATION_ID/TAG_KEY
    

    Ersetzen Sie dabei Folgendes:

    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • TAG_VALUE: den Wert, der dem Tag-Schlüssel zugewiesen werden soll

Netzwerk-Firewallrichtlinie erstellen

Nachdem Sie ein Tag erstellt haben, können Sie es in Netzwerk-Firewallrichtlinien verwenden. Wenn Sie noch keine Netzwerk-Firewallrichtlinie haben, erstellen Sie eine neue.

gcloud

  1. Netzwerk-Firewallrichtlinie erstellen

    gcloud compute network-firewall-policies create \
       FIREWALL_POLICY_NAME \
       --global
    

    Ersetzen Sie dabei Folgendes:

    • FIREWALL_POLICY_NAME: Name der neuen Richtlinie für Netzwerkfirewalls für globale Netzwerke

Firewallrichtlinienregel mit Tags erstellen

Nachdem Sie ein Tag und eine Netzwerk-Firewallrichtlinie erstellt haben, können Sie eine Firewallregel für ein Netzwerk mit den spezifischen Quell-Tag-Werten und Ziel-Tag-Werten erstellen, um den gewünschten Traffic zwischen den VMs mit den Quell- und Ziel-Tags zuzulassen.

gcloud

  1. Erstellen Sie eine Netzwerk-Firewallregel mit den spezifischen Quell- und Zielschlüsseln und -werten.

    gcloud compute network-firewall-policies rules create 1 \
        --firewall-policy FIREWALL_POLICY_NAME \
        --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --direction DIRECTION \
        --action ACTION \
        --layer4-configs tcp:PORT \
        --global-firewall-policy
    

    Ersetzen Sie dabei Folgendes:

    • FIREWALL_POLICY_NAME: Name der neuen Richtlinie für Netzwerkfirewalls für globale Netzwerke
    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • TAG_VALUE: den Wert, der dem Tag-Schlüssel zugewiesen werden soll
    • DIRECTION: gibt an, ob die Regel eine ingress- oder egress-Regel ist
    • ACTION: eine der folgenden Aktionen:
      • allow: lässt Verbindungen zu, die der Regel entsprechen
      • deny: lehnt Verbindungen ab, die der Regel entsprechen
      • goto_next: leitet die Auswertung der Verbindung an die nächste Ebene in der Hierarchie weiter, entweder die Ordner- oder die Netzwerkebene
    • PORT: die Portnummer für den Zugriff auf die Ressource

Tags an VM-Instanzen binden

Tag-Administratoren können die Tags an einzelne VM-Instanzen binden.

Durch das Binden eines Tags an eine Ressource wird ein Tag-Wert an eine Ressource angehängt. Obwohl ein Tag mehrere Werte für einen bestimmten Schlüssel haben kann, können Sie nur einen einzigen Wert pro Tag-Schlüssel an eine Ressource binden. Beispiel: Sie können nicht sowohl die web-backend- als auch die mysql-Tag-Werte an dieselbe VM-Instanz binden, da sie zur selben Tag-Schlüssel-VM-Funktion gehören.

Beispiel: Sasha, eine Entwicklerin, möchte eine Anwendung einrichten, die aus einem API-Backend und einem Sicherungsdatenbankspeicher besteht. Um Traffic zwischen dem Backend und dem Datenbankserver zuzulassen, muss Sasha die web-backend- und die mysql-Tag-Werte an verschiedene VMs binden.

gcloud

  1. Weisen Sie die Rolle tagUser zu.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ersetzen Sie dabei Folgendes:

    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers

    Über diesen Befehl wird dem Nutzer die Verwendung aller aktuellen und zukünftigen Werte des Schlüssels gewährt. Sie können auch selektiv nur den Zugriff auf bestimmte Werte eines Tags gewähren:

    gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ersetzen Sie dabei Folgendes:

    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • TAG_VALUE: den Wert, der dem Tag-Schlüssel zugewiesen werden soll
    • EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers
  2. Gewähren Sie die Rolle tagUser für die Ressourcen, an die Sie die Tags binden möchten.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ersetzen Sie dabei Folgendes:

    • PROJECT_ID: Projekt-ID Ihres Projekts
    • EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers
  3. Rufen Sie den Wert von PARENT für das Tag-Schlüssel/Wert-Paar ab:

    1. Legen Sie das Präfix für den vollständigen Namen Ihres Projekts und Ihrer Zone fest:

      FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/
      
    2. Rufen Sie die VM-ID ab:

      VM_ID=$(gcloud compute instances describe VM_NAME --zone ZONE--format='value(id)')
      
    3. Verketten Sie die Werte von FULL_NAME_PREFIX und VM_ID:

      PARENT="$FULL_NAME_PREFIX$VM_ID"
      echo $PARENT
      

    Ersetzen Sie dabei Folgendes:

    • PROJECT_NUMBER: Die Nummer Ihres Projekts
    • ZONE: Zone, in der sich die VM befindet
    • VM_NAME: der Name der VM, an der Sie arbeiten
  4. Listen Sie die Bindungen auf.

    gcloud resource-manager tags bindings list \
       --location LOCATION_NAME \
       --parent PARENT
    

    Ersetzen Sie dabei Folgendes:

    • LOCATION_NAME: Der Standort, zu dem das Tag gehört, hier die Zone der VM-Instanz.
    • PARENT: der vollständige Ressourcenname, der an die Bindung angehängt ist, wie im vorherigen Befehl abgeleitet
  5. Löschen und erstellen Sie die Bindungen.

    gcloud resource-manager tags bindings delete \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    
    gcloud resource-manager tags bindings create \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    

    Ersetzen Sie dabei Folgendes:

    • LOCATION_NAME: der Standort, zu dem das Tag gehört
    • ORGANIZATION_ID: die ID Ihrer Organisation
    • TAG_KEY: der Tag-Schlüssel
    • TAG_VALUE: der Wert des Tag-Schlüssels
    • PARENT: der vollständige Ressourcenname der Ressource, die an den Tag-Wert angehängt werden soll

Tags in Peering-Netzwerken verwenden

Sie können Tags im Netzwerk-Peering verwenden. Führen Sie folgende Aufgaben in der angegebenen Reihenfolge aus, um Tags in zwei Peering-Netzwerken zu verwenden.

  1. Weisen Sie zwei Nutzern die tagAdmin-Rolle zu: einem pro Peering-Netzwerk. Ein Organisationsadministrator weist Nutzern auf Organisationsebene die Rollen tagAdmin zu und ein Projektinhaber kann sie auf Projektebene zuweisen.
  2. Der erste Netzwerknutzer muss im ersten Netzwerk Tag-Schlüssel und -Werte erstellen.
  3. Der zweite Netzwerknutzer muss im zweiten Netzwerk Tag-Schlüssel und -Werte erstellen.
  4. Gewähren Sie den beiden Nutzern die erforderlichen Berechtigungen, um Tags in beiden Netzwerken zu binden.
  5. Binden Sie Tags an Nutzer und Ressourcen im ersten Netzwerk.
  6. Binden Sie Tags an Nutzer und Ressourcen im zweiten Netzwerk.
  7. Gewähren Sie dem Nutzer aus dem zweiten Netzwerk tagUser-Berechtigungen im ersten Netzwerk.
  8. Weisen Sie dem Nutzer aus dem ersten Netzwerk tagUser-Berechtigungen im zweiten Netzwerk zu.
  9. Erstellen Sie eine Firewallrichtlinien-Regel im ersten Netzwerk.
  10. Erstellen Sie eine Firewallrichtlinien-Regel im zweiten Netzwerk.

Nächste Schritte