In diesem Dokument wird erläutert, wie Sie Berechtigungen für Standardcluster in Google Distributed Cloud (GDC) mit Air Gap mithilfe der gdcloud CLI verwalten. Standardcluster sind projektbezogene, konfigurierbare Kubernetes-Umgebungen mit minimalen Standarddiensten, die mehr Flexibilität und Kontrolle für benutzerdefinierte Arbeitslasten bieten.
Weitere Informationen zu Standardclustern und anderen Clustertypen finden Sie unter Kubernetes-Clusterkonfigurationen.
Dieses Dokument richtet sich an Zielgruppen in der Gruppe der Anwendungsoperatoren, z. B. Entwickler oder Data Scientists, die Ressourcen in GDC-Projekten verwalten und schützen müssen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Hinweis
Bevor Sie den Zugriff auf Standardcluster verwalten können, müssen Sie die erforderlichen Berechtigungen haben und Ihre Umgebung vorbereiten.
IAM-Rollen anfordern
Wenden Sie sich an Ihren IAM-Administrator der Organisation, um die folgenden Rollen anzufordern, je nachdem, welche Aufgaben Sie ausführen müssen:
- Projekt-IAM-Administrator (
project-iam-admin): Rollenbindungen für Standardcluster in einem Projekt erstellen, aktualisieren und löschen. - Standardcluster-Administrator (
standard-cluster-admin): Rollenbindungen in einem bestimmten Standardcluster erstellen, aktualisieren und löschen.
Umgebung vorbereiten
Laden Sie die gdcloud CLI herunter und installieren Sie sie, falls noch nicht geschehen.
Berechtigungen für den Zugriff auf Standardcluster erteilen
Ein Nutzer mit der Rolle „Projekt-IAM-Administrator“ (project-iam-admin) kann anderen Nutzern die erforderlichen Rollen für die Zugriffsverwaltung in Standardclustern gewähren:
Melden Sie sich mit Ihrem konfigurierten Identitätsanbieter an über die gdcloud CLI.
Erteilen Sie dem Nutzer die Rolle „Standardcluster-Administrator“ (
standard-cluster-admin) für das Projekt. Mit diesem Befehl wird der Nutzer an die Rolle gebunden, sodass er den Zugriff im Standardcluster verwalten kann.Weitere Informationen zu den Rollen finden Sie unter Beschreibungen vordefinierter Rollen und Rollendefinitionen für Projekte.
gdcloud projects add-iam-policy-binding PROJECT \ --role=ROLE \ --member=user:USER_ACCOUNTErsetzen Sie die folgenden Variablen:
PROJECT: der Name des Projekts, in dem sich der Standardcluster befindet.ROLE: der Name der Rolle, die Sie gewähren möchten (z. B.standard-cluster-admin).USER_ACCOUNT: das Nutzerkonto, für das Sie die Rolle gewähren möchten, einschließlich des Identitätsanbieterpräfixes, das mit Ihrer Organisation verknüpft ist (z. B.idpprefix-user@example.com). Das verwendete Präfix hängt von der IdP-Konfiguration Ihrer Organisation ab. Weitere Informationen finden Sie unter Mit einem Identitätsanbieter verbinden.
Im folgenden Beispiel wird die Rolle „Standardcluster-Administrator“ für
user@example.comgewährt, wobei das Identitätsanbieterpräfixfop-für das Projektfooverwendet wird:gdcloud projects add-iam-policy-binding foo \ --role=standard-cluster-admin \ --member=user:fop-user@example.com
Zugriff im Standardcluster verwalten
Ein Nutzer mit der Rolle „Standardcluster-Administrator“ (standard-cluster-admin) kann den Zugriff in einem Standardcluster gewähren:
Melden Sie sich mit Ihrem konfigurierten Identitätsanbieter an über die gdcloud CLI.
Generieren Sie mit dem Flag
--standardeine kubeconfig-Datei für einen Standardcluster. Dieses Flag ist erforderlich, um einen Standardcluster anzugeben.export KUBECONFIG=KUBECONFIG_FILE gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECTErsetzen Sie die folgenden Variablen:
KUBECONFIG_FILE: der Pfad zur kubeconfig-Datei, z. B.standard-cluster-kubeconfig.yaml.STANDARD_CLUSTER_NAME: der Name des Standardclusters.PROJECT: der Name des Projekts, in dem sich der Standardcluster befindet.
Definieren Sie Berechtigungen im Standardcluster mit
kubectl.Nutzer mit
standard-cluster-admin-Berechtigungen können benutzerdefinierteRole- undClusterRole-Objekte erstellen. Um diese Berechtigungen zu gewähren, können sie die entsprechendenRolebinding- undClusterRoleBinding-Objekte erstellen, um die Rollen an bestimmte Subjekte wie Nutzer oder Dienstkonten zu binden.Im folgenden Beispiel wird mit
kubectleine benutzerdefinierteRolemit dem Namentest-roleim Namespacetesterstellt:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOFIm folgenden Beispiel wird die
RoleBindingfür dieRolemit dem Namentest-roleim Namespacetesterstellt. Es werden Berechtigungen für den Nutzer alice@example.com mit dem Identitätsanbieterpräfixfop-sowie für einServiceAccountmit dem Namenmy-service-accountim Namespacedefaultgewährt:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role-binding namespace: test subjects: - kind: User name: fop-alice@example.com apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: my-service-account namespace: default roleRef: kind: Role name: test-role apiGroup: rbac.authorization.k8s.io EOF