Netzwerk-Tags hinzufügen

Ein Tag ist einfach ein Zeichenstring, der einem tags-Feld in einer Ressource wie Compute Engine-VM-Instanzen oder Instanzvorlagen hinzugefügt wird. Da ein Tag keine separate Ressource ist, können Sie es auch nicht separat erstellen. Alle Ressourcen mit diesem String haben dieses Tag. Damit können Firewallregeln und Routen auf bestimmte VM-Instanzen angewendet werden.

Netzwerk-Tags lassen sich bei der Erstellung neuen VMs zuweisen. Sie können zugewiesene Tags aber auch später nachträglich bearbeiten. Zum Bearbeiten von Netzwerk-Tags muss eine VM nicht angehalten werden.

Spezifikationen

Die Netzwerk-Tags, die Sie einer Instanz zuweisen, gelten für alle Netzwerkschnittstellen der Instanz. Ein Netzwerk-Tag gilt nur für VPC-Netzwerke, die direkt mit den Netzwerkschnittstellen der Instanz verbunden sind. Dies trifft auch auf das VPC-Netzwerk-Peering zu, weil Peer-Netzwerke voneinander unabhängig sind. Daher haben die Netzwerk-Tags hier ebenfalls nur in dem Netzwerk eine Bedeutung, mit dem die Netzwerkschnittstelle der Instanz verbunden ist.

Netzwerk-Tags müssen mit einem Kleinbuchstaben beginnen und dürfen Kleinbuchstaben, Ziffern und Bindestriche enthalten. Am Ende des Tags muss ein Kleinbuchstabe oder eine Ziffer stehen.

Berechtigungen

Die folgenden IAM-Rollen sind für die auf dieser Seite beschriebenen Aufgaben erforderlich. Weitere Details finden Sie unter Compute Engine-IAM-Rollen.

Aufgabe Erforderliche Rolle
Ein Netzwerktag beim Erstellen einer neuen Instanz zuweisen Projektinhaber oder -bearbeiter oder Instanzadministrator
Netzwerk-Tags zu vorhandenen Instanzen hinzufügen oder daraus entfernen
Firewallregeln hinzufügen, entfernen oder bearbeiten Projektinhaber oder -bearbeiter oder Sicherheitsadministrator

Limits

Für Netzwerk-Tags gelten die folgenden Beschränkungen:

Limit Wert Beschreibung
Maximale Anzahl von Tags pro VM 64 Alle Tags für eine VM müssen eindeutig sein. Sie können bis zu 64 verschiedene Tags pro VM zuweisen.
Maximale Anzahl von Zeichen für jedes Tag 63
Zulässige Zeichen für Tags Kleinbuchstaben, Ziffern, Bindestriche Außerdem:
• Tags müssen mit einem Kleinbuchstaben beginnen.
• Am Ende des Tags muss ein Kleinbuchstabe oder eine Ziffer stehen.

Firewallregeln und Routen

Mit Netzwerk-Tags können Sie Firewallregeln und Routen auf eine bestimmte Instanz oder eine Gruppe von Instanzen anwenden:

  • Über Ziel- und Quell-Tags sorgen Sie dafür, dass eine Firewallregel auf bestimmte Instanzen anwendbar wird.

  • Über Tags werden Routen auf bestimmte Instanzen anwendbar.

Ziele für Firewallregeln

Jede Firewallregel in Google Cloud muss ein Ziel haben, das die Instanzen definiert, auf die sie angewendet wird. Das Standardziel sind alle Instanzen im Netzwerk, aber Sie können auch Instanzen mithilfe von Ziel-Tags oder Zieldienstkonten als Ziele festlegen.

Das Zieltag definiert die Google Cloud-VMs, für die die Regel gilt. Die Regel wird auf ein bestimmtes VPC-Netzwerk angewendet. Sie wird auf die primäre interne IP-Adresse angewendet, die mit der Netzwerkschnittstelle einer Instanz verknüpft ist, die mit diesem VPC-Netzwerk mit einem übereinstimmenden Netzwerk-Tag verbunden ist.

Sowohl Firewallregeln für eingehenden als auch für ausgehenden Traffic haben Ziele:

  • Eingangsregeln gelten für in das VPC-Netzwerk eingehenden Traffic. Hierfür sind die Ziele Ziel-VMs in Google Cloud.

  • Ausgangsregeln gelten für aus dem VPC-Netzwerk ausgehenden Traffic. Die Ziele dafür sind Quell-VMs in Google Cloud.

Beispiel: Die Eingangsregel lässt Traffic über den TCP-Port 80 von einer beliebigen Quelle aus zu. Die Regel hat das Ziel-Tag http-server. Diese Regel gilt nur für Instanzen, die das Netzwerk-Tag http-server haben, was bedeutet, dass eingehender Traffic über Port 80 zu diesen Instanzen zugelassen wird.

Quellfilter für Firewallregeln für eingehenden Traffic

Beim Erstellen von Firewallregeln für eingehenden Traffic müssen Sie eine Quelle angeben. Diese können Sie definieren, indem Sie interne oder externe IP-Adressbereiche verwenden oder indem Sie auf bestimmte Instanzen verweisen. Instanzen geben Sie über Quell-Tags oder Quelldienstkonten an.

Das Quelltag für eine auf ein VPC-Netzwerk angewendete Firewallregel für eingehenden Traffic definiert die Quelle des Traffics aus der primären internen IP-Adresse, die mit der Netzwerkschnittstelle verknüpft ist. Diese Netzwerkschnittstelle ist mit dem VPC-Netzwerk für jede Instanz verbunden, die ein übereinstimmendes Netzwerk-Tag hat.

Sie können IP-Bereiche und Quelltags oder IP-Bereiche und Quelldienstkonten miteinander kombinieren. Netzwerk-Tags und Dienstkonten können jedoch nicht in derselben Regel verwendet werden. Weitere Informationen zu Quell-Tags und -dienstkonten finden Sie unter Nach Dienstkonto oder Netzwerk-Tag filtern.

Hinweise

Wenn Sie eine Firewallregel für eingehenden Traffic mit Quell-Tags verwenden, kann es zu einer Übertragungsverzögerung kommen. Diese Verzögerung dauert in der Regel nur wenige Sekunden, kann jedoch in seltenen Fällen auch einige Minuten betragen. Nach den folgenden Änderungen kann es einige Zeit dauern, bis die Firewallregel für eingehenden Traffic auf eine verknüpfte Instanz angewendet oder von ihr entfernt wird:

  • Instanz mit einem Tag starten oder anhalten, das mit dem Quell-Tag einer Regel verknüpft ist
  • Instanz mit einem Tag starten, das mit dem Ziel-Tag einer Regel verknüpft ist
  • Tags zu einer Instanz hinzufügen oder entfernen, wenn die Tags in den Quell- oder Zielfeldern einer Regel verwendet werden
  • Quell- oder Ziel-Tags zu einer Regel hinzufügen oder entfernen

Diese Übertragungsverzögerung betrifft nur Regeln für eingehenden Traffic, die Quell-Tags verwenden. Alle anderen Firewallregeln für eine Instanz werden sofort wirksam. So weist beispielsweise eine Regel für eingehenden Traffic, die einen Quell-IP-Adressbereich und Ziel-Tags verwendet, keine Übertragungsverzögerung auf.

Interaktion mit statischen Routen

Wenn Sie eine statische Route erstellen, geben Sie ein VPC-Netzwerk an. Sie können dann Tags angeben, sodass die Route nur für Traffic gilt, der von VMs mit übereinstimmenden Netzwerktags im angegebenen VPC-Netzwerk gesendet wird.

Tags hinzufügen, anzeigen und entfernen

Sie können Netzwerk-Tags beim Erstellen einer VM-Instanz angeben. Sie können einer bestehenden VM auch Tags hinzufügen und Tags daraus entfernen.

Tags beim Erstellen einer VM hinzufügen

Console

  1. Gehen Sie zur Seite der VM-Instanzen.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf Instanz erstellen.
  3. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten, um diesen Abschnitt zu öffnen.
  4. Klicken Sie auf den Tab Netzwerk.
  5. Geben Sie im Feld Netzwerk-Tags eines oder mehrere Tags an, die durch Kommas getrennt sind.
  6. Füllen Sie die anderen Felder für die VM aus.
  7. Klicken Sie auf Erstellen.

gcloud

Verwenden Sie den folgenden Befehl gcloud, um einer Instanz neue Tags zuzuweisen.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS \
    ...other parameters as needed.

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: Die Zone der Instanz.
  • TAGS: eine durch Kommas getrennte Liste von Tags.

Weitere Informationen finden Sie in der Dokumentation zu gcloud.

Terraform

Sie können die Terraform-Ressource verwenden, um eine VM-Instanz mit Netzwerk-Tags zu erstellen.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  tags = ["health-check", "ssh"]
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Tags zu einer bestehenden VM hinzufügen

Console

  1. Gehen Sie zur Seite der VM-Instanzen.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf den Namen einer Instanz.
  3. Klicken Sie auf der Seite VM-Instanzdetails auf Bearbeiten.
  4. Geben Sie im Abschnitt Netzwerk-Tags eines oder mehrere Tags an, die durch Kommas getrennt sind.
  5. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den folgenden Befehl gcloud, um einer Instanz neue Tags zuzuweisen.

gcloud compute instances add-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: Die Zone der Instanz.
  • TAGS: eine durch Kommas getrennte Liste von Tags.

Weitere Informationen finden Sie in der Dokumentation zu gcloud.

Tags aufrufen

Console

  1. Gehen Sie zur Seite der VM-Instanzen.
    Zur Seite „VM-Instanzen”
  2. Sehen Sie sich die Tags in der Spalte Netzwerk-Tags an.

    Klicken Sie bei Bedarf auf Spaltenanzeigeoptionen, um die Spalte Netzwerk-Tags hinzuzufügen.

  3. Um Instanzen anzeigen zu lassen, die mit einem bestimmten Tag getaggt sind, wählen Sie im Filter das Attribut Netzwerk-Tags aus und geben Sie die Tags ein, nach denen Sie filtern möchten.

gcloud

Führen Sie folgenden Befehl aus, um Instanzen mit ihren Tags aufzulisten:

gcloud compute instances list --format='table(name,status,tags.list())'

Führen Sie den folgenden Befehl aus, um Instanzen aufzulisten, die mit einem bestimmten Tag getaggt sind:

gcloud compute instances list --filter='tags:TAG_EXPRESSION'

Dabei gilt:

  • TAG_EXPRESSION: der Ausdruck, den Sie filtern möchten. Beispiel: tag1,tag1 OR tag2, tag1 AND tag2. Weitere Informationen zum Filtern der Ausgabe finden Sie unter gcloud Themenfilter.

Tags entfernen

Console

  1. Gehen Sie zur Seite der VM-Instanzen.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf den Namen einer Instanz.
  3. Klicken Sie auf der Seite VM-Instanzdetails auf Bearbeiten.
  4. Entfernen Sie die gewünschten Tags im Abschnitt Netzwerk-Tags. Klicken Sie dazu auf „Entfernen” (X).
  5. Klicken Sie auf Speichern.

gcloud

Verwenden Sie zum Entfernen von Tags aus einer Instanz den folgenden Befehl gcloud.

gcloud compute instances remove-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Dabei gilt:

  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: Die Zone der Instanz.
  • TAGS: eine durch Kommas getrennte Liste von Tags.

Weitere Informationen finden Sie in der Dokumentation zu gcloud.

Direkte API-Anfragen

Die mit einer Instanz verknüpften Netzwerk-Tags können Sie über eine direkte API-Anfrage festlegen. Anders als mit der Google Cloud Console oder mit Befehlen von gcloud werden vorhandene Tags beim Aktualisieren mit direkten API-Anfragen nicht beibehalten. Daher müssen Sie den vollständigen Satz von Tags angeben, die einer Instanz zugeordnet werden sollen, wenn Sie Tags auf diese Weise aktualisieren.

So aktualisieren Sie Tags über eine direkte API-Anfrage:

  1. Ermitteln Sie den neuesten mit den Tags verknüpften Fingerabdruck. Der Fingerabdruck dient dazu, Kollisionen aufgrund gleichzeitiger API-Anfragen zu verhindern. Das Aktualisieren von Netzwerk-Tags für eine Instanz ähnelt dem Aktualisieren von Instanzmetadaten.

    Führen Sie eine GET-Anfrage an die Instanz aus. Beispiel:

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
    

    Identifizieren Sie in der Antwort das Attribut tags.fingerprint:

    200 OK
    {
    ...
    "tags": {
     "items": [
     "http-server",
     "db-client"
     ],
     "fingerprint": "MW8EqhxILtc="
    },
    ...
    }
    

    Sie können auch den Befehl gcloud verwenden, um fingerprint zu erhalten. Dies wird im folgenden Beispiel gezeigt:

    gcloud compute instances describe INSTANCE_NAME \
       --zone ZONE \
       --format="get(tags.fingerprint)"
  2. Stellen Sie eine POST-Anfrage an die Methode instance().setTags. Der Anfragetext muss alle Tags, die mit der Instanz verknüpft sein sollten, sowie den fingerprint-Wert enthalten.

    Beispielanfrage:

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setTags
    {
     "items": [
      "http-server",
      "db-client",
      "allow-internet-access"
      ],
     "fingerprint": "MW8EqhxILtc="
    }
    

    Beispielantwort:

    200 OK
    {
          "kind": "compute#operation",
          "id": "9251830049681941507",
          "name": "operation-1442414898862-51fde63aa57b1-422323e0-c439fb04",
          "zone": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
          "operationType": "setTags",
          "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance",
          "targetId": "4392196237934605253",
          "status": "PENDING",
          "user": "user@example.com",
          "progress": 0,
    ...
    }
    

Nächste Schritte