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 auf dem Management API-Server mithilfe von
ClusterRoleBinding
oderRoleBinding
Zugriff auf eine vordefinierteClusterRole
.Kubernetes-Clusterzugriff:Gewähren Sie namespace- oder clusterweiten Zugriff.
Für namespace-spezifischen Zugriff:Wenn Sie Zugriff auf den Namespace eines bestimmten Projekts im Cluster gewähren möchten, erstellen Sie eine
ProjectRole
und die entsprechendeProjectRoleBinding
. Bei diesem Vorgang werden ein Kubernetes-Role
und ein Kubernetes-RoleBinding
an ein Kubernetes-Namespace
im Cluster weitergegeben, das demProject
entspricht, dem dasProjectRole
und dasProjectRoleBinding
zugeordnet sind.Für clusterweiten Zugriff:Wenn Sie Zugriff auf alle Namespaces im Cluster gewähren möchten, erstellen Sie eine
OrganizationRole
und die entsprechendeOrganizationRoleBinding
. Bei diesem Vorgang werden ein Kubernetes-ClusterRole
und einClusterRoleBinding
auf den gesamten Kubernetes-Cluster übertragen.
Personas (IO, PA, AO) sind keine Rollen, sondern Sammlungen von Nutzerrollen, die bestimmten Berechtigungen zugeordnet und einzelnen Nutzern zugewiesen werden.
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 hingegen nur Projektrollen und Projektrollenzuweisungen für Projekte erstellen, auf die sie Zugriff haben.
Rollenbindungen einrichten
Sie können Rollenbindungen einrichten, die Teammitgliedern Zugriff auf Ressourcen auf Organisations- oder Projektebene gewähren.
Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „IAM-Administrator der Organisation“ zuzuweisen, damit Sie die Berechtigungen 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.
- Wählen Sie ein Projekt aus, um Rollenbindungen für ein Projekt einzurichten.
- 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 gcloud CLI installiert ist.
Melden Sie sich mit dem Befehl
gdcloud auth login
an, um sich bei Ihrem Identitätsanbieter zu authentifizieren. Weitere Informationen finden Sie unter gcloud CLI-Authentifizierung.Rollenbindungen einrichten
Rollenbindungen für eine Organisation einrichten:
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Ersetzen Sie die folgenden Variablen:
USER_ACCOUNT
: Das Nutzerkonto, dem Sie die Rolle zuweisen möchten. Für dieses Flag kann entweder eine Nutzer-E-Mail-Adresse mit dem Identitätsanbieterpräfix (user:idpprefix-user@example.com
) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName
) angegeben werden.ROLE_TYPE
: dieClusterRole
,Role
oderOrganizationRole
, 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-creator
.
Rollenbindungen für ein Projekt einrichten:
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Ersetzen 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 Nutzer-E-Mail-Adresse mit dem Identitätsanbieterpräfix (user:idpprefix-user@example.com
) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName
) angegeben werden.ROLE_TYPE
: dieRole
oderProjectRole
, 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, die Sie verwenden:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
Exportieren Sie das Nutzerkonto, dem Sie die Rolle zuweisen möchten, einschließlich des Identitätsanbieterpräfixes (z. B.
idpprefix-paul@example.com
):export USERNAME=IDP_PREFIX-USER_EMAIL
Exportieren 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_NAME
Weisen Sie einem Nutzer eine
ClusterRole
,Role
,ProjectRole
oderOrganizationRole
zu:So weisen Sie einen Nutzer einer
ClusterRole
zu:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}
Wenn für ein
ClusterRole
anstelle einesClusterRoleBinding
einRoleBinding
erforderlich ist, finden Sie in den Rollendefinitionen den erforderlichen Bindungstyp für die Rolle. Erstellen Sie dann eine RoleBinding im Namespacegpc-system
:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-system
So weisen Sie einen Nutzer einer
Role
zu:Exportieren Sie den Namespace, in dem die Bindung erstellt werden muss:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Führen Sie die folgenden Befehle aus, um eine
RoleBinding
zu erstellen:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
So weisen Sie einen Nutzer einer
ProjectRole
zu:projectrolebinding.yaml
-Datei erstellen: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: USERNAME
Ersetzen 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
,Group
oderServiceAccount
sein kann.USERNAME
: Die E-Mail-Adresse des Nutzers, dem Sie die Rolle zuweisen, einschließlich des Identitätsanbieter-Präfixes (z. B.idpprefix-paul@example.com
). Diese muss mit dem exportiertenUSERNAME
übereinstimmen.
Wenden Sie die Datei
projectrolebinding.yaml
an:kubectl create -f projectrolebinding.yaml
So weisen Sie einen Nutzer einem
OrganizationRole
zu:organizationrolebinding.yaml
-Datei erstellen: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: USERNAME
Ersetzen 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
,Group
oderServiceAccount
sein kann.USERNAME
: Die E-Mail-Adresse des Nutzers, dem Sie die Rolle zuweisen, einschließlich des Identitätsanbieter-Präfixes (z. B.idpprefix-paul@example.com
). Diese muss mit dem exportiertenUSERNAME
übereinstimmen.
Wenden Sie die
organizationrolebinding.yaml
-YAML-Datei an:kubectl create -f organizationrolebinding.yaml
Rollenbindungen entfernen
Wenn der Zugriff nicht mehr erforderlich ist, entfernen Sie ein Mitglied und seine zugehörigen Rollen, Berechtigungen und Zugriffsebenen.
So entfernen Sie Mitglieder:
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 gcloud CLI installiert ist.
Melden Sie sich mit dem Befehl
gdcloud auth login
an, um sich bei Ihrem Identitätsanbieter zu authentifizieren. Weitere Informationen finden Sie unter gcloud CLI-Authentifizierung.Entfernen Sie Rollenbindungen.
So entfernen Sie Rollenbindungen für eine Organisation:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Ersetzen Sie die folgenden Variablen:
USER_ACCOUNT
: Das Nutzerkonto, aus dem Sie die Rolle entfernen möchten. Für dieses Flag kann entweder eine Nutzer-E-Mail-Adresse mit dem Identitätsanbieterpräfix (user:idpprefix-user@example.com
) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName
) angegeben werden.ROLE_TYPE
: DieClusterRole
,Role
oderOrganizationRole
, 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/ROLE
Ersetzen 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 Nutzer-E-Mail-Adresse mit dem Identitätsanbieterpräfix (user:idpprefix-user@example.com
) oder ein Dienstkontoname mit dem Dienstkontoprojekt (serviceAccount:projectName:serviceAccountName
) angegeben werden.ROLE_TYPE
: dieRole
oderProjectRole
, 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, die Sie verwenden:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
Exportieren 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_EMAIL
Exportieren Sie den Namespace, aus dem die Bindung entfernt wird:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Löschen Sie die
ClusterRoleBinding
,RoleBinding
,ProjectRoleBinding
oderOrganizationRoleBinding
, um die dem Nutzerkonto erteilte Berechtigung zu widerrufen:So entfernen Sie die
ClusterRoleBinding
aus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-pa
So entfernen Sie die
RoleBinding
aus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
So entfernen Sie die
ProjectRoleBinding
aus einem Nutzerkonto:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
So entfernen Sie die
OrganizationRoleBinding
aus 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 Air-Gap-Appliance von Google Distributed Cloud (GDC) widerrufen. Wenn Sie den Zugriff eines Nutzers widerrufen, wird er von der GDC-Appliance 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 von Nutzern benötigen. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Org Session Admin“ (
org-session-admin
) zuzuweisen.Zugriff des Nutzers widerrufen:
gdcloud admin auth revoke --accounts USER_EMAIL
Ersetzen Sie USER_EMAIL durch die E-Mail-Adresse des Nutzers, dessen Zugriff Sie widerrufen möchten.
Nach der Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht. In diesem Beispiel wird der Zugriff für den Nutzer
ariel@example.com
widerrufen:Success: NUMBER of sessions revoked for user ariel@example.com
In diesem Beispiel bezieht sich die Variable NUMBER auf die Anzahl der aktiven Sitzungen des Nutzers.
Prüfen Sie, ob Sie den Zugriff des Nutzers widerrufen haben, indem Sie den Befehl
gdcloud admin auth revoke
noch einmal ausführen. Bei Erfolg wird Folgendes angezeigt:No sessions found for account: ariel@example.com
Alle widerrufenen Nutzer auflisten
So rufen Sie alle Nutzer auf, deren Zugriff widerrufen wurde, sowie ihre Aktivitäten und Sitzungen:
Alle widerrufenen Nutzer mit Start- und Endzeit auflisten:
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"
Bei erfolgreicher Ausführung erhalten Sie eine Ausgabe ähnlich der folgenden:
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52