Auf dieser Seite erfahren Sie, wie Sie Tags verwenden, um Ihre GKE-Cluster (Google Kubernetes Engine) zu verwalten und Richtlinien für die Identitäts- und Zugriffsverwaltung bedingt auf Knoten anzuwenden.
Übersicht
Tags sind Schlüssel/Wert-Paare, mit denen Sie Google Cloud-Ressourcen auf Organisations- oder Projektebene annotieren und verwalten können. Mit Tags können Sie Ihre Ressourcen organisieren und Richtlinien wie Firewalls oder IAM-Richtlinien bedingt anwenden. Tags unterstützen die IAM-Zugriffssteuerung, mit der Sie festlegen können, wer Tags anhängen, erstellen, aktualisieren oder löschen kann.
Anwendungsfälle für Tags in GKE
Sie können Tags in GKE für Situationen wie die folgenden verwenden:
- Netzwerk-Firewallrichtlinien bedingt auf bestimmte Knoten anwenden. Verweigern Sie beispielsweise eingehenden Traffic aus dem öffentlichen Internet zu allen Knoten eines Clusters in Staging- oder Testumgebungen. Eine Anleitung finden Sie unter Netzwerk-Firewallrichtlinien selektiv in GKE erzwingen.
- IAM-Rollen bedingt anhand von Tags zuweisen. Gewähren Sie Auftragnehmern beispielsweise automatisch Zugriff auf bestimmte Umgebungen, die normalerweise nur Vollzeitmitarbeitern zur Verfügung stehen. Eine Anleitung finden Sie im Rest dieses Dokuments.
- Audit-Informationen basierend auf angewendeten Tags auf Projekt- oder Organisationsebene prüfen und analysieren.
Funktionsweise
Insbesondere bei der Durchsetzung von Netzwerk-Firewallrichtlinien erstellen Sie ein Tag und legen das Tag explizit für die Firewall fest. In allen anderen Fällen erstellen Sie ein Tag ohne Festlegung einer Firewall.
Nachdem Sie das Tag erstellt haben, hängen Sie das Tag als Schlüssel/Wert-Paar an Ihre GKE-Ressourcen an. Für Netzwerk-Firewallrichtlinien verwenden Sie die GKE API. Für alle anderen Zwecke verwenden Sie die Tags API.
Für jeden Schlüssel können Sie einen Wert an eine Ressource anhängen. Wenn Sie beispielsweise env:dev
an einen GKE-Cluster angehängt haben, können Sie nicht env:prod
oder env:test
anhängen. Sie können jeder Ressource bis zu 50 Tags ohne Firewall und bis zu fünf Firewall-Tags hinzufügen.
Methoden zur Ressourcenannotation in GKE
In GKE gibt es mehrere Methoden, um Ihre Ressourcen mit Annotationen zu versehen, wie in der folgenden Tabelle dargestellt:
Anmerkungstyp | Beschreibung | Beispiel |
---|---|---|
Tags (keine Firewall) |
Weitere Informationen finden Sie unter Tags – Übersicht. |
IAM-Rollen bedingt gewähren, um den Zugriff auf Ressourcen mit bestimmten Tags zu steuern |
Tags (Firewall) |
Weitere Informationen finden Sie unter Netzwerk-Firewallrichtlinien selektiv in GKE anwenden. |
Eingehenden Traffic automatisch aus dem öffentlichen Internet in alle Staging- oder Testumgebungen ablehnen |
Netzwerk-Tags |
Weitere Informationen finden Sie unter Netzwerk-Tags verwenden, um Firewallregeln auf Knoten anzuwenden. |
Eingehenden Traffic automatisch aus dem öffentlichen Internet in alle Staging- oder Testumgebungen ablehnen |
GKE-Clusterlabels |
Weitere Informationen finden Sie unter Clusterlabels. |
Unterscheidung zwischen Clustern, die bestimmten Kostenstellen oder Teams in Ihrer Organisation gehören. |
Kubernetes-Labels |
Weitere Informationen finden Sie unter Labels und Selektoren von Kubernetes. |
Arbeitslasten müssen auf Knoten mit bestimmten Labels geplant werden. |
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Prüfen Sie, ob Sie die folgenden IAM-Rollen haben:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Informationen zu den durch diese Rollen gewährten Berechtigungen finden Sie unter Erforderliche Berechtigungen.
Tags an einen Cluster anhängen
Sie können Tags an einen vorhandenen Cluster anhängen, wenn Sie die entsprechenden Berechtigungen haben. Verwenden Sie dazu die Google Cloud CLI, die Google Cloud Console, die Tags API oder Terraform.
gcloud
Bevor Sie mit der gcloud CLI ein Tag an Ihre GKE-Ressourcen anhängen können, müssen Sie das Tag erstellen und seine Werte konfigurieren. Informationen zum Erstellen von Tag-Schlüsseln und -Werten finden Sie unter Tag erstellen und Tag-Werte hinzufügen.
Führen Sie den folgenden Befehl aus, um eine Tag-Bindung zum Anhängen eines Tags an einen Cluster zu erstellen:
gcloud alpha resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ersetzen Sie Folgendes:
TAG_VALUE_ID
: Die permanente ID oder der Namespace-Name des Tag-Werts, der angehängt werden soll. Beispiel:tagValues/4567890123
. Weitere Informationen zu Tag-IDs finden Sie unter Tag-Definitionen und Kennzeichnungen.CLUSTER_LOCATION
: der Compute Engine-Standort. Geben Sie für zonale Cluster die Compute-Zone an.RESOURCE_ID
: Der vollständige Ressourcenname Ihres Clusters, z. B.//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.In der Ressourcen-ID:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.CLUSTER_NAME
ist der Name Ihres Clusters.
Console
Bevor Sie mit der Google Cloud Console ein Tag an Ihre GKE-Ressourcen anhängen können, müssen Sie das Tag erstellen und seine Werte konfigurieren. Informationen zum Erstellen von Tag-Schlüsseln und -Werten finden Sie unter Tag erstellen und Tag-Werte hinzufügen.
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie im Bereich Metadaten neben Tags auf
Tags bearbeiten.Wenn Ihre Organisation nicht im Bereich Tags angezeigt wird, klicken Sie auf Bereich auswählen. Wählen Sie Ihre Organisation aus und klicken Sie auf Öffnen.
Wählen Sie im Bereich Tags die Option Tag hinzufügen aus.
Wählen Sie aus der Liste den Schlüssel für das Tag aus, das Sie anhängen möchten. Sie können die Liste filtern, indem Sie Suchbegriffe eingeben.
Wählen Sie den Wert für das Tag, das Sie anhängen möchten, aus der Liste aus. Sie können die Liste filtern, indem Sie Suchbegriffe eingeben.
Klicken Sie auf Speichern.
Klicken Sie im Dialogfeld Bestätigen auf Bestätigen, um das Tag anzuhängen.
Mit einer Benachrichtigung wird bestätigt, dass Ihre Tags aktualisiert wurden.
API
Wenn Sie ein Tag an eine Ressource anhängen möchten, müssen Sie zuerst eine JSON-Darstellung einer Tag-Bindung erstellen, die die permanenten IDs des Tag-Werts und der Ressource enthält. Weitere Informationen zum Format einer Tag-Bindung finden Sie in der Referenz zu TagBinding.
Verwenden Sie die Methode tagBindings.create
mit dem regionalen oder zonalen Endpunkt, in dem sich Ihr Cluster befindet.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Ersetzen Sie LOCATION
durch die Region oder Zone, in der sich der Cluster befindet.
JSON-Anfragetext:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Ersetzen Sie Folgendes:
RESOURCE_ID
: Der vollständige Ressourcenname Ihres Clusters, z. B.//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.In der Ressourcen-ID:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.CLUSTER_NAME
ist der Name Ihres Clusters.
TAG_VALUE_ID
: Die permanente ID oder der Namespace-Name des Tag-Werts, der angehängt werden soll. Beispiel:tagValues/4567890123
. Weitere Informationen zu Tag-IDs finden Sie unter Tag-Definitionen und Kennzeichnungen.
Die Ausgabe sieht in etwa so aus:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Terraform
Informationen zum Erstellen eines Tags, zum Konfigurieren seiner Werte und zum Anhängen eines Tags an eine Ressource mithilfe von Terraform finden Sie im folgenden Beispiel:
Weitere Informationen zur Verwendung von Terraform finden Sie unter Terraform-Unterstützung für GKE.
An einen Cluster angehängte Tags auflisten
Sie können die mit einem Cluster verknüpften Tags mithilfe der gcloud CLI, der Google Cloud Console oder der Tags API auflisten.
gcloud
Führen Sie den folgenden Befehl aus, um eine Liste der Tag-Bindungen abzurufen, die an einen Cluster angehängt sind:
gcloud alpha resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ersetzen Sie Folgendes:
CLUSTER_LOCATION
: Geben Sie für regionale Cluster die Computing-Region an. Geben Sie für zonale Cluster die Compute-Zone an.RESOURCE_ID
: Der vollständige Ressourcenname Ihres Clusters, z. B.//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.In der Ressourcen-ID:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.CLUSTER_NAME
ist der Name Ihres Clusters.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie anzeigen möchten.
Suchen Sie im Abschnitt Metadaten neben Tags nach den derzeit angehängten Tag-Werten.
API
Um eine Liste der Tag-Bindungen für einen Cluster zu erhalten, verwenden Sie die Methode tagBindings.list
mit dem regionalen oder zonalen Endpunkt, an dem sich Ihr Cluster befindet.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
JSON-Anfragetext:
{
"parent": RESOURCE_ID,
}
Ersetzen Sie Folgendes:
RESOURCE_ID
: Der vollständige Ressourcenname Ihres Clusters, z. B.//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.In der Ressourcen-ID:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.CLUSTER_NAME
ist der Name Ihres Clusters.
Die Ausgabe sieht in etwa so aus:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2LOCATION%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Tags von einem Cluster trennen
Sie können ein Tag von einem Cluster trennen. Löschen Sie dazu mit der gcloud CLI, der Google Cloud Console oder der Tags API die Tag-Bindungsressource, die mit dem Cluster verknüpft ist. Wenn Sie ein Tag löschen müssen, müssen Sie es zuerst von allen angehängten Ressourcen trennen.
gcloud
Führen Sie den folgenden Befehl aus, um eine mit einem Cluster verknüpfte Tag-Bindung zu trennen:
gcloud alpha resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ersetzen Sie Folgendes:
TAG_VALUE_ID
: Die permanente ID oder der Namespace-Name des Tag-Werts, der getrennt werden soll. Beispiel:tagValues/4567890123
. Weitere Informationen zu Tag-IDs finden Sie unter Tag-Definitionen und Kennzeichnungen.CLUSTER_LOCATION
: Geben Sie für regionale Cluster die Computing-Region an. Geben Sie für zonale Cluster die Compute-Zone an.RESOURCE_ID
: Der vollständige Ressourcenname Ihres Clusters, z. B.//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.In der Ressourcen-ID:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.CLUSTER_NAME
ist der Name Ihres Clusters.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie im Bereich Metadaten neben Tags auf
Tags bearbeiten.Klicken Sie im Bereich Tags neben dem Tag, das Sie trennen möchten, auf
Element löschen.Klicken Sie auf Speichern.
Klicken Sie im Dialogfeld Bestätigen auf Bestätigen, um das Tag zu trennen.
Mit einer Benachrichtigung wird bestätigt, dass Ihre Tags aktualisiert wurden.
API
Verwenden Sie zum Löschen von Tag-Bindungen für einen Cluster die Methode tagBindings.delete
mit dem regionalen oder zonalen Endpunkt, in dem sich Ihr Cluster befindet.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Ersetzen Sie TAG_BINDING_NAME
durch den vollständigen Ressourcennamen des tagBinding
-Objekts, das Sie trennen möchten. Beispiel: tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID
.
Tag-Schlüssel und Tag-Werte löschen
Achten Sie vor dem Löschen von Tag-Schlüsseln und -Werten darauf, dass die Tags von allen Ressourcen getrennt sind. Lesen Sie dann Tags löschen, um die Schlüssel und Werte zu löschen.
Bedingungen und Tags für Identity and Access Management
Mit Tags und IAM-Bedingungen können Sie Nutzern in Ihrer Projekthierarchie bedingte Rollenbindungen zuweisen. Wenn Sie das einem Cluster angehängte Tag ändern oder löschen, kann GKE den Nutzerzugriff auf diesen Cluster entfernen, wenn eine IAM-Zulassungsrichtlinie mit bedingten Rollenbindungen angewendet wurde.
Die Autorisierung zum Auflisten und Erstellen von GKE-Clustern wird auf Projektebene, nicht auf der Ebene einzelner Cluster, überprüft. Wenn Sie bedingte IAM-Rollenbindungen mit Tags auf Clusterebene verwenden, um den Zugriff auf bestimmte Cluster einzuschränken, können bei diesen Nutzern Fehler auftreten, wenn sie versuchen, Cluster im Projekt aufzulisten oder zu erstellen. Um diese Fehler zu vermeiden, hängen Sie ein Tag an das übergeordnete Projekt an und verwenden eine bedingte Rollenbindung, um die Liste zu gewähren oder Zugriff zu erstellen. Informationen zu Rollen und Berechtigungen finden Sie in der Referenz für IAM-Rollen.
Weitere Informationen zu bedingten Zugriffsberechtigungen in IAM finden Sie unter IAM-Bedingungen und -Tags.
Nächste Schritte
- Organisationsrichtlinie mit Tags festlegen
- Weitere Informationen zum Verwalten von Tags und Anhängen von Tags an Ressourcen
- Weitere Dienste ansehen, die Tags unterstützen.
- Tags mit IAM verwenden