Auf dieser Seite wird erläutert, wie Sie sich über die Google Cloud Console für Anthos-Kunden, die die anthos.googleapis.com API aktiviert haben, in registrierten Kubernetes-Clustern anmelden.
Übersicht
Sie können sich mit der Google Cloud Console bei registrierten Clustern anmelden. Viele Arten von Inhabertokens, die unter Kubernetes-Authentifizierung aufgelistet sind, werden unterstützt. Die einfachste Methode ist das Erstellen eines Kubernetes-Dienstkontos (KSA) im Cluster und das Anmelden mit seinem Inhabertoken.
Alle Konten, die sich in einem Cluster anmelden, müssen mindestens die folgenden RBAC-Rollen im Kubernetes-Cluster enthalten:
Hinweis
Sie müssen die folgenden Schritte einmal pro Cluster ausführen.
Cluster registrieren
Sie müssen Ihren Cluster bei Google Cloud registrieren, bevor Sie sich über die Cloud Console darin anmelden können. Durch die Registrierung eines Clusters wird der Connect-Agent bereitgestellt, eine Kubernetes-Deployment-Ressource, die eine langlebige Verbindung zwischen dem Cluster und Google Cloud herstellt. Der Connect-Agent ermöglicht die Anmeldung bei Clustern.
RBAC-Rolle (Role-based Access Control, rollenbasierte Zugriffssteuerung) cloud-console-reader
erstellen und anwenden
Nutzer, die die Ressourcen Ihres Clusters in der Konsole aufrufen möchten, benötigen die entsprechenden Berechtigungen. Zum Definieren dieser Berechtigungen erstellen Sie im Cluster die Ressource ClusterRole
RBAC cloud-console-reader
.
cloud-console-reader
gewährt ihren Nutzern die Berechtigungen get
, list
und watch
für die Knoten, nichtflüchtigen Volumes und Speicherklassen des Clusters, die ihnen Details zu diesen Ressourcen anzeigen können. Sie können diesen ClusterRole
dann wie im nächsten Abschnitt beschrieben an das Dienstkonto des Nutzers binden.
Erstellen Sie die ClusterRole "cloud-console-reader" und wenden Sie sie mit dem folgenden Befehl an:
cat <<EOF > cloud-console-reader.yaml kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cloud-console-reader rules: - apiGroups: [""] resources: ["nodes", "persistentvolumes"] verbs: ["get", "list", "watch"] - apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"] EOF kubectl apply -f cloud-console-reader.yaml
Einrichten
Sie oder Clusteradministratoren sollten für jeden Nutzer, der sich bei dem Cluster anmeldet, ein Dienstkonto erstellen. Die Verwendung eines Inhabertokens ist mit der Verwendung eines Passworts vergleichbar, sodass jeder Nutzer sein eigenes Token haben sollte. Wenn Sie sich mit dem Inhabertoken des KSA anmelden, werden alle Vorgänge im Namen des KSA ausgeführt. Sie sind durch die Berechtigungen der Rollen eingeschränkt, die dem KSA erteilt wurden.
Das KSA muss mindestens die folgenden RBAC-Rollen im Cluster enthalten:
KSA erstellen und autorisieren
Führen Sie die folgenden Schritte aus, um ein KSA zu erstellen und Berechtigungen für dieses zu binden:
Erstellen Sie die KSA- und
ClusterRoleBinding
-Ressourcen, um die Kubernetes RBAC-ClusterRolesview
undcloud-console-reader
an das KSA zu binden.KSA_NAME=[KSA_NAME] kubectl create serviceaccount ${KSA_NAME} kubectl create clusterrolebinding [VIEW_BINDING_NAME] \ --clusterrole view --serviceaccount default:${KSA_NAME} kubectl create clusterrolebinding [CLOUD_CONSOLE_READER_BINDING_NAME] \ --clusterrole cloud-console-reader --serviceaccount default:${KSA_NAME}
Dabei gilt:
- [KSA_NAME] ist der Name, den Sie für das KSA ausgewählt haben.
- [VIEW_BINDING_NAME] ist der Name, den Sie für die ClusterRoleBinding-Ressource
view
auswählen. Sie können ihm einen beliebigen Namen geben, den Namen nach dem KSA aber am besten nennen. - [CLOUD_CONSOLE_READER_BINDING_NAME] ist der Name, den Sie für die ClusterRoleBinding-Ressource
cloud-console-reader
auswählen. Sie können diesen Namen auch beliebig wählen.
Je nach dem Zugriff auf das Dienstkonto sollten Sie weitere Rollen an das KSA binden. Einige Optionen finden Sie unter Kubernetes-Standardrollen.
Wenn Sie beispielsweise eine Kubernetes-Anwendung aus Cloud Marketplace bereitstellen möchten, müssen Sie die Rolle
cluster-admin
an das KSA binden:kubectl create clusterrolebinding [BINDING_NAME] \ --clusterrole cluster-admin --serviceaccount default:[KSA_NAME]
Dabei ist [BINDING_NAME] der Name der Clusterrollenbindung für das Dienstkonto.
Andere Konten autorisieren
Für alle anderen Nutzer oder Dienstkonten, die Zugriff auf den Cluster erhalten, müssen Sie ClusterRoleBinding
-Ressourcen erstellen, um die Rollen view
und cloud-console-reader
an ihr Konto zu binden:
So binden Sie die ClusterRoles
view
undcloud-console-reader
:ACCOUNT_NAME=[ACCOUNT_NAME] kubectl create clusterrolebinding [VIEW_BINDING_NAME] \ --clusterrole view --serviceaccount default:${ACCOUNT_NAME} kubectl create clusterrolebinding [CLOUD_CONSOLE_READER_BINDING_NAME] \ --clusterrole cloud-console-reader --serviceaccount default:${ACCOUNT_NAME}
Dabei gilt:
- [VIEW_BINDING_NAME] ist der Name, den Sie für die ClusterRoleBinding-Ressource
view
auswählen. Sie können ihm einen beliebigen Namen geben, aber der Name sollte nach dem Nutzer oder Dienstkonto benannt werden. - [CLOUD_CONSOLE_READER_BINDING_NAME] ist der Name, den Sie für die ClusterRoleBinding-Ressource
view
auswählen. Sie können diesen Namen auch beliebig wählen. - [ACCOUNT_NAME] ist das Kubernetes-Dienstkonto.
- [VIEW_BINDING_NAME] ist der Name, den Sie für die ClusterRoleBinding-Ressource
Binden Sie zusätzliche Rollen, je nach dem, welchen Zugriff das Konto haben soll. Einige Optionen finden Sie unter Kubernetes-Standardrollen.
So binden Sie beispielsweise die Rolle
cluster-admin
:kubectl create clusterrolebinding [BINDING_NAME] \ --clusterrole cluster-admin --serviceaccount default:[ACCOUNT_NAME]
Dabei ist [BINDING_NAME] der Name der Clusterrollenbindung für das Dienstkonto.
Inhabertoken des KSA abrufen
Mit dem folgenden Befehl erhalten Sie das Inhabertoken des KSA:
SECRET_NAME=$(kubectl get serviceaccount [KSA_NAME] -o jsonpath='{$.secrets[0].name}') kubectl get secret ${SECRET_NAME} -o jsonpath='{$.data.token}' | base64 --decode
Dabei steht [KSA_NAME] für den Namen, den Sie für das KSA auswählen.
Kopieren Sie das Token aus der Ausgabe dieses Befehls und speichern Sie es zur Verwendung im nächsten Abschnitt.
Bei einem Cluster anmelden
Führen Sie zur Anmeldung bei einem Cluster die folgenden Schritte aus:
Rufen Sie in der Cloud Console das GKE-Menü auf.
Klicken Sie in der Liste der Cluster auf die Schaltfläche Anmeldung neben dem registrierten Cluster.
Wählen Sie aus, wie Sie sich anmelden möchten:
- Wenn Sie sich mithilfe eines KSA-Tokens anmelden, wählen SieToken, füllen Sie das Feld Token mit dem Inhabertoken des KSA aus und klicken Sie dann aufAnmeldung.
- Wenn Sie die Basisauthentifizierung verwenden, wählen Sie Basisauthentifizierung, füllen Sie die Felder Nutzername und Passwort aus und klicken Sie dann auf Anmeldung.
- Wenn Sie OpenID Connect (OIDC) verwenden, wählen Sie OpenID Connect aus und klicken Sie dann auf Anmeldung.
Wenn Sie sich erfolgreich authentifiziert haben, können Sie den Cluster prüfen und Details zu dessen Knoten abrufen.