Auf dieser Seite wird beschrieben, wie Sie Nutzer in einer Distributed Cloud Connected verwalten.
Wenn Sie einen mit Distributed Cloud verbundenen Cluster erstellen, erhält nur das Nutzerkonto, mit dem Sie den Cluster erstellt haben, Zugriff auf diesen Cluster. Wenn Sie weiteren Nutzern Zugriff auf den Cluster gewähren möchten, haben Sie folgende Möglichkeiten:
- Erforderliche Berechtigungen mit Kubernetes RBAC gewähren
- Über das Connect-Gateway auf den Cluster zugreifen
Erforderliche Berechtigungen mit Kubernetes RBAC gewähren
In diesem Abschnitt wird beschrieben, wie Sie dem Konto eines Nutzers die Berechtigungen zuweisen, die für die geschäftlichen Anforderungen des Nutzers erforderlich sind, indem Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes verwenden. Diese Berechtigungen sind in mehreren Rollen enthalten. Nachdem Sie einem Nutzerkonto die entsprechende Rolle zugewiesen haben, können Sie es dem verbundenen Zielcluster von Distributed Cloud hinzufügen.
Distributed Cloud Connected unterstützt keine Identity and Access Management-Gruppen oder Identitätsanbieter von Drittanbietern für die Verwendung mit Kubernetes RBAC in Distributed Cloud Connected-Clustern.
Sie müssen die folgenden Kubernetes-Ressourcen verwenden, um Nutzern Rollen zuzuweisen:
ClusterRole: Ermöglicht es Ihnen, eine Reihe von Berechtigungen auf einen beliebigen Namespace im Cluster anzuwenden. Außerdem wird der Zugriff auf clusterweite Ressourcen gewährt.ClusterRoleBinding: Bindet eineClusterRole-Ressource an ein Nutzerkonto.Role: Ermöglicht es Ihnen, eine Reihe von Berechtigungen auf einen bestimmten Namespace anzuwenden.RoleBinding: Bindet eineRole- oderClusterRole-Ressource an ein Nutzerkonto in einem bestimmten Namespace.
Berechtigungen für einen Clusteradministrator erteilen
Wenn Sie einen mit Distributed Cloud verbundenen Cluster erstellen, wird das Nutzerkonto, das Sie dafür verwenden, automatisch zum Clusteradministrator. Wenn Sie zusätzlichen Nutzern Clusteradministratorberechtigungen erteilen möchten, binden Sie das Zielnutzerkonto an die Rolle cluster-admin, indem Sie eine ClusterRoleBinding-Ressource erstellen und auf den Cluster anwenden:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: BINDING_NAME subjects: kind: User name: ACCOUNT_NAME roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.ACCOUNT_NAME: der Name des Zielnutzerkontos.
Sie können auch den folgenden kubectl-Befehl verwenden:
kubectl create clusterrolebinding "BINDING_NAME" \ --clusterrole cluster-admin --user "ACCOUNT_NAME"
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.ACCOUNT_NAME: der Name des Zielnutzerkontos.
Berechtigungen für einen Anwendungsentwickler erteilen
So gewähren Sie einem Anwendungsentwickler die Berechtigungen, die zum Bereitstellen von Arbeitslasten im Zielcluster erforderlich sind:
Erstellen Sie eine
Role-Ressource, die die Berechtigungen zum Erstellen und Verwalten von Pods, Diensten und Deployments im Zielnamespace gewährt, und wenden Sie sie auf den Cluster an:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: NAMESPACE name: ROLE_NAME rules: apiGroups: ["apps", ""] resources: ["pods", "deployments", "services"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
Ersetzen Sie Folgendes:
NAMESPACE: der Name des Ziel-Namespace.ROLE_NAME: Ein Name, der diese Rolle eindeutig identifiziert.
Erstellen Sie eine
RoleBinding-Ressource, die die Zielnutzerkonten an die Rolle bindet, die Sie im vorherigen Schritt erstellt haben, und wenden Sie sie auf den Cluster an:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: NAMESPACE name: BINDING_NAME subjects: kind: User name: ACCOUNT_NAME kind: User name: ACCOUNT_NAME roleRef: kind: Role name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.NAMESPACE: der Name des Ziel-Namespace.ACCOUNT_NAME: der Name des Zielnutzerkontos.ROLE_NAME: Der Name der Zielrolle.
Berechtigungen für einen Cloud Build-Dienst-Agent erteilen
So gewähren Sie einem Cloud Build-Dienst-Agent die Berechtigungen, die zum Bereitstellen von Arbeitslasten im Zielcluster erforderlich sind:
Erstellen Sie eine
Role-Ressource, die die Berechtigungen zum Erstellen und Verwalten von Pods, Diensten und Deployments im Zielnamespace gewährt, und wenden Sie sie auf den Cluster an:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: NAMESPACE name: ROLE_NAME rules: apiGroups: ["apps", ""] resources: ["pods", "deployments", "services"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
Ersetzen Sie Folgendes:
NAMESPACE: der Name des Ziel-Namespace.ROLE_NAME: Ein Name, der diese Rolle eindeutig identifiziert.
Erstellen Sie eine
RoleBinding-Ressource, mit der das Ziel-Cloud Build-Dienstagentkonto an die Rolle gebunden wird, die Sie im vorherigen Schritt erstellt haben, und wenden Sie sie auf den Cluster an:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: NAMESPACE name: BINDING_NAME subjects: kind: User name: PROJECT_ID@cloudbuild.gserviceaccount.com roleRef: kind: Role name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.NAMESPACE: der Name des Ziel-Namespace.PROJECT_ID: die ID des Zielprojekts Google Cloud .ROLE_NAME: Der Name der Zielrolle.
Wenn Sie einem Cloud Build-Dienst-Agent Berechtigungen zum Bereitstellen und Verwalten von Arbeitslasten in allen Namespaces im Zielcluster gewähren müssen, erstellen Sie anstelle der Ressourcen Role und RoleBinding eine ClusterRole- und eine ClusterRoleBinding-Ressource.
Berechtigungen zum Aufrufen von Clusterinformationen erteilen
So erteilen Sie die Berechtigungen, die erforderlich sind, um detaillierte Informationen zum Cluster in der Google Cloud -Konsole aufzurufen:
Erstellen Sie eine
ClusterRole-Ressource, mit der der Connect-Agent den Nutzer annehmen kann, der die Clusterinformationen in der Google Cloud Console aufrufen muss:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: ROLE_NAME rules: apiGroups: [""] resources: ["users"] verbs: ["impersonate"] resourceNames: ["ACCOUNT_NAME"]
Ersetzen Sie Folgendes:
ROLE_NAME: Der Name der Zielrolle.ACCOUNT_NAME: der Name des Zielnutzerkontos.
Erstellen Sie eine
ClusterRoleBinding-Ressource, die das Dienstkonto des Connect Agent Service-Agents an die Rolle bindet, die Sie im vorherigen Schritt erstellt haben, und wenden Sie sie auf den Cluster an:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: BINDING_NAME subjects: kind: ServiceAccount name: ACCOUNT_NAME roleRef: kind: ClusterRole name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.ACCOUNT_NAME: der Name des Zielnutzerkontos für den Dienst.ROLE_NAME: Der Name der Zielrolle.
Sie müssen für jeden betroffenen Nutzer ein separates Ressourcenpaar aus ClusterRole und ClusterRoleBinding erstellen.
Sie können auch das kubectl-Befehlszeilentool verwenden, um die Berechtigungen zu erteilen, die zum Aufrufen von Clusterinformationen erforderlich sind:
Erstellen Sie eine
ClusterRole-Ressource, mit der der Connect-Agent den Nutzer annehmen kann, der die Clusterinformationen in der Google Cloud Console aufrufen muss:kubectl create clusterrole "ROLE_NAME" --verb impersonate \ --resource users --resource-name "ACCOUNT_NAME"
Ersetzen Sie Folgendes:
ROLE_NAME: Der Name der Zielrolle.ACCOUNT_NAME: der Name des Zielnutzerkontos für den Dienst.
Erstellen Sie eine
ClusterRoleBinding-Ressource, die das Dienstkonto des Connect Agent Service-Agents an die Rolle bindet, die Sie im vorherigen Schritt erstellt haben, und wenden Sie sie auf den Cluster an:kubectl create clusterrolebinding "BINDING_NAME" --clusterrole \ "ROLE_NAME" --serviceaccount "ACCOUNT_NAME"
Ersetzen Sie Folgendes:
BINDING_NAME: Ein Name, der diese Rollenbindung eindeutig identifiziert.ACCOUNT_NAME: der Name des Zielnutzerkontos für den Dienst.ROLE_NAME: Der Name der Zielrolle.
Über das Connect-Gateway auf Distributed Cloud Connect-Cluster zugreifen
Sie haben die Möglichkeit, über das Connect Gateway auf Ihre Distributed Cloud Connect-Cluster zuzugreifen. Ein Connect Gateway-Nutzer benötigt je nach seinen geschäftlichen Anforderungen eine oder mehrere der folgenden Rollen:
- Connect Gateway-Administrator (
roles/gkehub.gatewayAdmin): Gewährt Zugriff auf die Connect Gateway API. Dadurch kann daskubectl-Befehlszeilentool zum Verwalten des Clusters verwendet werden. - Gateway-Bearbeiter (
roles/gkehub.gatewayEditor): Gewährt Lese- und Schreibzugriff auf den Cluster. - Connect Gateway-Leser (
roles/gkehub.gatewayReader): Gewährt Lesezugriff auf den Cluster. - GKE-Hub-Betrachter (
roles/gkehub.viewer): Ermöglicht das Abrufen vonkubeconfig-Dateien aus dem Cluster.
Weitere Informationen zur Verwendung des Connect-Gateways finden Sie hier: