Jedes Subjekt – ein Nutzer oder eine Gruppe – durchläuft einen zweistufigen Prozess, um Zugriff auf den Management API-Server und den Kubernetes-Cluster zu erhalten:
Zugriff auf den Management API-Server: Gewähren Sie einem Subjekt mit Berechtigungen im Management API-Server mithilfe von
ClusterRoleBindingoderRoleBindingZugriff auf eine vordefinierteClusterRole.Zugriff auf den Kubernetes-Cluster:Gewähren Sie Namespace-spezifischen oder clusterweiten Zugriff.
Namespace-spezifischer Zugriff:Wenn Sie Zugriff auf den Namespace eines bestimmten Projekts im Cluster gewähren möchten, erstellen Sie eine
ProjectRoleund die entsprechendeProjectRoleBinding. Bei diesem Vorgang werden eine Kubernetes-RoleundRoleBindingan einen Kubernetes-Namespaceim Cluster weitergegeben, der demProjectentspricht, mit dem dieProjectRoleundProjectRoleBindingverknüpft sind.Clusterweiter Zugriff:Wenn Sie Zugriff auf alle Namespaces im Cluster gewähren möchten, erstellen Sie eine
OrganizationRoleund die entsprechendeOrganizationRoleBinding. Bei diesem Vorgang werden eine Kubernetes-ClusterRoleundClusterRoleBindingan den gesamten Kubernetes-Cluster weitergegeben.
Diese Seite richtet sich an Nutzer in der Gruppe der Plattformadministratoren, die Berechtigungen in ihrer Organisation verwalten.
Sowohl der Organisations-IAM-Administrator als auch der Projekt-IAM-Administrator können weitere Projektrollen und Projektrollenbindungen erstellen, um zusätzliche projektspezifische Berechtigungen zu gewähren. Organisations-IAM-Administratoren können jedoch Projektrollen und Projektrollenbindungen für jedes Projekt erstellen. Projekt-IAM-Administratoren können dagegen nur Projektrollen und Projektrollenbindungen für Projekte erstellen, auf die sie Zugriff haben.
Hinweis
Bevor Sie Rollenbindungen verwalten oder den Zugriff widerrufen, müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten. Die erforderlichen Rollen hängen davon ab, ob Sie Rollenbindungen verwalten oder den Nutzerzugriff widerrufen.
IAM-Rollen anfordern
Wenden Sie sich an Ihren Organisations-IAM-Administrator, um die Rollen basierend auf den Aufgaben anzufordern, die Sie ausführen müssen:
- Organisations-IAM-Administrator (
organization-iam-admin): Rollenbindungen auf Organisations- und Projektebene erstellen, aktualisieren und löschen. - Organisationssitzungsadministrator (
org-session-admin): Aktive Sitzungen und den Zugriff eines Nutzers in einer bestimmten Zone widerrufen.
Umgebung vorbereiten
Führen Sie die folgenden Schritte aus, um die Befehlszeilentools zum Verwalten von Rollenbindungen oder zum Widerrufen des Zugriffs zu verwenden.
- Laden Sie die gdcloud CLI herunter und installieren Sie sie, falls noch nicht geschehen.
- Wenn Sie die API mit
kubectlverwenden möchten, ist eine zusätzliche Einrichtung erforderlich:
Rollenbindungen einrichten
Sie können Rollenbindungen einrichten, die Teammitgliedern Zugriff auf Ressourcen auf Organisations- oder Projektebene gewähren.
Bitten Sie Ihren Organisations-IAM-Administrator, Ihnen die Rolle „Organisations-IAM-Administrator“ zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Einrichten von Rollenbindungen benötigen.
So weisen Sie einem autorisierten Mitglied eine Rolle zu:
Console
- Melden Sie sich in der GDC-Konsole an.
- Klicken Sie auf Projekt auswählen , um eine Organisation oder ein Projekt auszuwählen.
- Wenn Sie Rollenbindungen für eine Organisation einrichten möchten, wählen Sie eine Organisation aus.
- Wenn Sie Rollenbindungen für ein Projekt einrichten möchten, wählen Sie ein Projekt aus.
- Klicken Sie im Navigationsmenü auf Identität und Zugriff > Zugriff.
- Klicken Sie auf Mitglied hinzufügen.
- Wählen Sie in der Liste Identitätsanbieter einen Identitätsanbieter aus.
- Wählen Sie aus, ob Sie einzelne Nutzer oder Gruppen hinzufügen möchten.
- Geben Sie im Feld Nutzername oder Gruppenalias den Nutzernamen, die E-Mail-Adresse oder den Alias ein.
- Wählen Sie in der Liste Rolle die Rolle aus, die Sie dem Nutzer oder der Gruppe zuweisen möchten, z. B. Organisationsbetrachter auf Organisationsebene oder Projektersteller auf Projektebene.
- Klicken Sie auf Hinzufügen.
Das Mitglied wird in der Liste Autorisiertes Mitglied angezeigt.
gdcloud
Prüfen Sie, ob die gdcloud CLI installiert ist.
Melden Sie sich mit dem Befehl
gdcloud auth loginan, um sich bei Ihrem Identitätsanbieter zu authentifizieren. Weitere Informationen finden Sie unter gdcloud CLI-Authentifizierung.Richten Sie Rollenbindungen ein.
Rollenbindungen für eine Organisation einrichten:
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEErsetzen Sie die folgenden Variablen:
USER_ACCOUNT: Das Nutzerkonto, dem Sie die Rolle zuweisen möchten. Für dieses Flag kann entweder eine E-Mail-Adresse des Nutzers mit dem Präfix des Identitätsanbieters (user:idpprefix-user@example.com) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName) verwendet werden.ROLE_TYPE: theClusterRole,Role, orOrganizationRolefor which you're setting up the role binding.ROLE: Der Name der vordefinierten oder benutzerdefinierten Rolle, die Sie dem Nutzer zuweisen möchten (z. B.project-creator).
Rollenbindungen für ein Projekt einrichten:
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEErsetzen Sie die folgenden Variablen:
PROJECT: Der Name des Projekts, für das Sie die Rollenbindung einrichten.USER_ACCOUNT: Das Nutzerkonto, dem Sie die Rolle zuweisen möchten. Für dieses Flag kann entweder eine E-Mail-Adresse des Nutzers mit dem Präfix des Identitätsanbieters (user:idpprefix-user@example.com) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName) verwendet werden.ROLE_TYPE: dieRoleoderProjectRole, für die Sie die Rollenbindung einrichten.ROLE: Der Name der vordefinierten oder benutzerdefinierten Rolle, die Sie dem Nutzer zuweisen möchten (z. B.project-viewer).
API
Exportieren Sie die Anmeldedaten des Nutzers, die Sie verwenden:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExportieren Sie das Nutzerkonto, dem Sie die Rolle zuweisen möchten, einschließlich des Präfixes des Identitätsanbieters (z. B.
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILExportieren Sie den Namen der Rolle, die der Nutzer benötigt, z. B.
project-creator. Weitere Informationen zur Rolle finden Sie unter Rollendefinitionen.export ROLE_NAME=ROLE_NAMEWeisen Sie einen Nutzer einer
ClusterRole,Role,ProjectRole, oderOrganizationRolezu:Weisen Sie einen Nutzer einer
ClusterRolezu:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}Wenn für eine
ClusterRoleeineRoleBindinganstelle einerClusterRoleBindingerforderlich ist, finden Sie in den Rollendefinitionen den erforderlichen Bindungstyp und erstellen Sie stattdessen eine RoleBinding im Namespacegpc-system:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemWeisen Sie einen Nutzer einer
Rolezu:Exportieren Sie den Namespace, in dem die Bindung erstellt werden muss:
export BINDING_NAMESPACE=BINDING_NAMESPACEFühren Sie die folgenden Befehle aus, um eine
RoleBindingzu erstellen:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
Weisen Sie einen Nutzer einer
ProjectRolezu:Erstellen Sie eine
projectrolebinding.yaml-Datei:apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: BINDING_NAME namespace: PROJECT_NAME spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEErsetzen Sie Folgendes:
BINDING_NAME: Ein Name für die Bindung, die der Nutzer anpassen kann (z. B.user-project-creator-binding).PROJECT_NAME: Der Name des Projekts, dem Sie die Rolle zuweisen.ROLE_NAME: Der Name derProjectRole, die Sie dem Nutzer zuweisen.USER_KIND: Die Art des Nutzers, dieUser,GroupoderServiceAccountsein kann.USERNAME: Die E-Mail-Adresse des Nutzers, dem Sie die Rolle zuweisen, einschließlich des Präfixes des Identitätsanbieters (z. B.idpprefix-paul@example.com). Dieser Wert muss mit dem exportiertenUSERNAMEübereinstimmen.
Wenden Sie die Datei
projectrolebinding.yamlan:kubectl create -f projectrolebinding.yaml
Weisen Sie einen Nutzer einer
OrganizationRolezu:Erstellen Sie eine
organizationrolebinding.yaml-Datei:apiVersion: resourcemanager.gdc.goog/v1 kind: OrganizationRoleBinding metadata: name: BINDING_NAME namespace: gpc-system spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: OrganizationRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEErsetzen Sie Folgendes:
BINDING_NAME: Ein Name für die Bindung, die der Nutzer anpassen kann (z. B.user-organization-creator-binding).ROLE_NAME: Der Name derOrganizationRole, die Sie dem Nutzer zuweisen.USER_KIND: Die Art des Nutzers, dieUser,GroupoderServiceAccountsein kann.USERNAME: Die E-Mail-Adresse des Nutzers, dem Sie die Rolle zuweisen, einschließlich des Präfixes des Identitätsanbieters (z. B.idpprefix-paul@example.com). Dieser Wert muss mit dem exportiertenUSERNAMEübereinstimmen.
Wenden Sie die YAML-Datei
organizationrolebinding.yamlan:kubectl create -f organizationrolebinding.yaml
Rollenbindungen entfernen
Wenn kein Zugriff mehr erforderlich ist, entfernen Sie ein Mitglied und die zugehörigen Rollen, Berechtigungen und Zugriffsrechte.
Führen Sie die folgenden Schritte aus, um Mitglieder zu entfernen:
Console
- Melden Sie sich in der GDC-Konsole an.
- Klicken Sie im Navigationsmenü auf Identität und Zugriff > Zugriff.
- Wählen Sie in der Liste Autorisierte Mitglieder ein Mitglied aus.
- Klicken Sie auf Mitglied entfernen.
- Wenn Sie dazu aufgefordert werden, klicken Sie zur Bestätigung auf Mitglied entfernen.
gdcloud
Prüfen Sie, ob die gdcloud CLI installiert ist.
Melden Sie sich mit dem Befehl
gdcloud auth loginan, um sich bei Ihrem Identitätsanbieter zu authentifizieren. Weitere Informationen finden Sie unter gdcloud CLI-Authentifizierung.Entfernen Sie Rollenbindungen.
Rollenbindungen für eine Organisation entfernen:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEErsetzen Sie die folgenden Variablen:
USER_ACCOUNT: Das Nutzerkonto, aus dem Sie die Rolle entfernen möchten. Für dieses Flag kann entweder eine E-Mail-Adresse des Nutzers mit dem Präfix des Identitätsanbieters (user:idpprefix-user@example.com) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName) verwendet werden.ROLE_TYPE: dieClusterRole,RoleoderOrganizationRole, für die Sie die Rollenbindung entfernen.ROLE: Der Name der vordefinierten oder benutzerdefinierten Rolle, die Sie aus dem Nutzerkonto entfernen möchten (z. B.project-creator).
Rollenbindungen für ein Projekt entfernen:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEErsetzen Sie die folgenden Variablen:
PROJECT: Der Name des Projekts, aus dem Sie die Rollenbindung entfernen.USER_ACCOUNT: Das Nutzerkonto, aus dem Sie die Rolle entfernen möchten. Für dieses Flag kann entweder eine E-Mail-Adresse des Nutzers mit dem Präfix des Identitätsanbieters (user:idpprefix-user@example.com) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName) verwendet werden.ROLE_TYPE: dieRoleoderProjectRole, für die Sie die Rollenbindung entfernen.ROLE: Der Name der vordefinierten oder benutzerdefinierten Rolle, die Sie aus dem Nutzerkonto entfernen möchten (z. B.project-viewer).
API
Exportieren Sie die Anmeldedaten des Nutzers, die Sie verwenden:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExportieren Sie das Nutzerkonto, aus dem Sie die Rolle entfernen möchten, einschließlich des Präfixes des Identitätsanbieters (z. B.
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILExportieren Sie den Namespace, in dem die Bindung entfernt wird:
export BINDING_NAMESPACE=BINDING_NAMESPACELöschen Sie die
ClusterRoleBinding,RoleBinding,ProjectRoleBinding, oderOrganizationRoleBinding, um die dem Nutzer konto gewährte Berechtigung zu widerrufen:Entfernen Sie die
ClusterRoleBindingaus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paEntfernen Sie die
RoleBindingaus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Entfernen Sie die
ProjectRoleBindingaus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Entfernen Sie die
OrganizationRoleBindingaus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Nutzerzugriff widerrufen
Wenn ein Mitglied Ihre Organisation oder Ihr Team verlässt, können Sie den Zugriff auf die Google Distributed Cloud (GDC) Air-Gapped Appliance widerrufen. Wenn Sie den Zugriff eines Nutzers widerrufen, wird er von der GDC mit Air Gap abgemeldet und seine Rollen und Berechtigungen werden entfernt. Sie können auch die Aktivitäten und Sitzungen des Nutzers nach Start- und Endzeit auflisten.
So widerrufen Sie den Zugriff eines Nutzers:
Rufen Sie die Berechtigungen ab, die Sie zum Widerrufen des Zugriffs von Nutzern benötigen. Bitten Sie Ihren Organisations-IAM-Administrator, Ihnen die Rolle „Organisationssitzungsadministrator“ (
org-session-admin) zuzuweisen.Widerrufen Sie den Zugriff des Nutzers:
gdcloud admin auth revoke --accounts USER_EMAILErsetzen Sie USER_EMAIL durch die E-Mail-Adresse des Nutzers, dessen Zugriff Sie widerrufen möchten.
Nachdem Sie den Befehl ausgeführt haben, wird eine ähnliche Ausgabe wie die folgende angezeigt. In diesem Beispiel wird der Zugriff für den Nutzer
ariel@example.comwiderrufen:Success: NUMBER of sessions revoked for user ariel@example.comIn diesem Beispiel bezieht sich die Variable NUMBER auf die Anzahl der aktiven Sitzungen des Nutzers.
Bestätigen Sie, dass Sie den Zugriff des Nutzers widerrufen haben, indem Sie den Befehl
gdcloud admin auth revokenoch einmal ausführen. Wenn der Vorgang erfolgreich war, wird Folgendes angezeigt:No sessions found for account: ariel@example.com
Alle widerrufenen Nutzer auflisten
So rufen Sie alle widerrufenen Nutzer sowie ihre Aktivitäten und Sitzungen auf:
Alle widerrufenen Nutzer nach Start- und Endzeit auflisten:
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"Wenn der Vorgang erfolgreich war, wird eine ähnliche Ausgabe wie die folgende angezeigt:
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52