Chaque sujet (utilisateur ou groupe) suit un processus en deux étapes pour accéder au serveur de l'API Management et au cluster Kubernetes :
Accès au serveur de l'API Management : accordez à un sujet des autorisations dans le serveur de l'API Management à l'aide de
ClusterRoleBindingouRoleBindingà unClusterRoleprédéfini.Accès au cluster Kubernetes : accordez un accès spécifique à un espace de noms ou un accès à l'ensemble du cluster.
Pour un accès spécifique à un espace de noms : pour accorder l'accès à l'espace de noms d'un projet spécifique dans le cluster, créez un
ProjectRoleet unProjectRoleBindingcorrespondant. Ce processus propage unRoleetRoleBindingKubernetes à unNamespaceKubernetes dans le cluster, qui correspond auProjectauquel leProjectRoleetProjectRoleBindingsont associés.Pour un accès à l'ensemble du cluster : pour accorder l'accès à tous les espaces de noms du cluster, créez un
OrganizationRoleet unOrganizationRoleBindingcorrespondant. Ce processus propage un KubernetesClusterRoleetClusterRoleBindingà l'ensemble du cluster Kubernetes.
Cette page s'adresse aux membres du groupe d'administrateurs de la plate-forme qui gèrent les autorisations au sein de leur organisation.
L'administrateur IAM de l'organisation et l'administrateur IAM du projet peuvent créer d'autres rôles de projet et liaisons de rôle de projet pour accorder des autorisations supplémentaires spécifiques au projet. Toutefois, les administrateurs IAM de l'organisation peuvent créer des rôles de projet et des liaisons de rôle de projet pour n'importe quel projet. En revanche, les administrateurs IAM du projet ne peuvent créer des rôles de projet et des liaisons de rôle de projet que pour les projets auxquels ils sont autorisés à accéder.
Avant de commencer
Avant de gérer les liaisons de rôle ou de révoquer l'accès, vous devez demander les autorisations nécessaires et préparer votre environnement. Les rôles spécifiques requis varient selon que vous gérez les liaisons de rôle ou que vous révoquez l'accès utilisateur.
Demander des rôles IAM
Contactez votre administrateur IAM de l'organisation pour demander les rôles en fonction des tâches que vous devez effectuer :
- Administrateur IAM de l'organisation (
organization-iam-admin) : créez, mettez à jour et supprimez des liaisons de rôle au niveau de l'organisation et du projet. - Administrateur de session de l'organisation (
org-session-admin) : révoquez les sessions actives et l'accès d'un utilisateur dans une zone spécifique.
Préparer votre environnement
Pour utiliser les outils de ligne de commande afin de gérer les liaisons de rôle ou de révoquer l'accès, procédez à la configuration suivante.
- Téléchargez et installez la CLI gdcloud, si ce n'est pas déjà fait.
- Pour utiliser l'API avec
kubectl, une configuration supplémentaire est requise :
Configurer des liaisons de rôle
Vous pouvez configurer des liaisons de rôle qui permettent aux membres de l'équipe d'accéder aux ressources au niveau de l'organisation ou du projet.
Pour obtenir les autorisations nécessaires à la configuration des liaisons de rôle, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle d'administrateur IAM de l'organisation.
Pour attribuer un rôle à un membre autorisé, procédez comme suit :
Console
- Connectez-vous à la console GDC.
- Cliquez sur Sélectionner un projet pour sélectionner une organisation ou un projet.
- Pour configurer des liaisons de rôle pour une organisation, sélectionnez-en une.
- Pour configurer des liaisons de rôle pour un projet, sélectionnez-en un.
- Dans le menu de navigation, cliquez sur Identité et accès > Accès.
- Cliquez sur Ajouter un membre.
- Dans la liste Fournisseur d'identité, sélectionnez un fournisseur d'identité.
- Indiquez si vous souhaitez ajouter des utilisateurs ou des groupes individuels.
- Dans le champ Nom d'utilisateur ou alias de groupe , saisissez le nom d'utilisateur, l'adresse e-mail ou l'alias.
- Dans la liste Rôle, sélectionnez le rôle que vous souhaitez attribuer à l'utilisateur ou au groupe, par exemple Lecteur de l'organisation au niveau de l'organisation ou Créateur de projet au niveau du projet.
- Cliquez sur Ajouter.
Le membre apparaît dans la liste Membre autorisé.
gdcloud
Assurez-vous que la CLI gdcloud est installée.
Connectez-vous à l'aide de la commande
gdcloud auth loginpour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez Authentification de la CLI gdcloud.Configurez des liaisons de rôle.
Configurez des liaisons de rôle pour une organisation :
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLERemplacez les variables suivantes :
USER_ACCOUNT: compte utilisateur auquel vous souhaitez accorder le rôle. Cet indicateur accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:ClusterRole,RoleouOrganizationRolepour lequel vous configurez la liaison de rôle.ROLE: nom du rôle prédéfini ou personnalisé que vous souhaitez attribuer à l'utilisateur (par exemple,project-creator).
Configurez des liaisons de rôle pour un projet :
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLERemplacez les variables suivantes :
PROJECT: nom du projet pour lequel vous configurez la liaison de rôle.USER_ACCOUNT: compte utilisateur auquel vous souhaitez accorder le rôle. Cet indicateur accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleouProjectRolepour lequel vous configurez la liaison de rôle.ROLE: nom du rôle prédéfini ou personnalisé que vous souhaitez attribuer à l'utilisateur (par exemple,project-viewer).
API
Exportez les identifiants utilisateur que vous utilisez :
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExportez le compte utilisateur pour lequel vous souhaitez attribuer le rôle, y compris le préfixe du fournisseur d'identité (par exemple,
idpprefix-paul@example.com) :export USERNAME=IDP_PREFIX-USER_EMAILExportez le nom du rôle dont l'utilisateur a besoin, par exemple
project-creator. Pour en savoir plus sur le rôle, consultez Définitions des rôles.export ROLE_NAME=ROLE_NAMEAttribuez un utilisateur à un
ClusterRole,Role,ProjectRole, ouOrganizationRole:Attribuez un utilisateur à un
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}Si un
ClusterRolenécessite unRoleBindingau lieu d'unClusterRoleBinding, consultez les définitions de rôle pour savoir quel type de liaison le rôle nécessite, puis créez un RoleBinding dans l'espace de nomsgpc-system:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemAttribuez un utilisateur à un
Role:Exportez l'espace de noms dans lequel la liaison doit être créée :
export BINDING_NAMESPACE=BINDING_NAMESPACEExécutez les commandes suivantes pour créer un
RoleBinding:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
Attribuez un utilisateur à un
ProjectRole:Créez un fichier
projectrolebinding.yaml: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: USERNAMERemplacez les éléments suivants :
BINDING_NAME: nom de la liaison que l'utilisateur peut personnaliser (par exemple,user-project-creator-binding).PROJECT_NAME: nom du projet auquel vous accordez le rôle.ROLE_NAME: nom duProjectRoleque vous attribuez à l'utilisateur.USER_KIND: type d'utilisateur, qui peut êtreUser,GroupouServiceAccount.USERNAME: adresse e-mail de l'utilisateur pour lequel vous attribuez le rôle, y compris le préfixe du fournisseur d'identité (par exemple,idpprefix-paul@example.com). Cette valeur doit correspondre à la valeurUSERNAMEexportée.
Appliquez le fichier
projectrolebinding.yaml:kubectl create -f projectrolebinding.yaml
Attribuez un utilisateur à un
OrganizationRole:Créez un fichier
organizationrolebinding.yaml: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: USERNAMERemplacez les éléments suivants :
BINDING_NAME: nom de la liaison que l'utilisateur peut personnaliser (par exemple,user-organization-creator-binding).ROLE_NAME: nom duOrganizationRoleque vous attribuez à l'utilisateur.USER_KIND: type d'utilisateur, qui peut êtreUser,GroupouServiceAccount.USERNAME: adresse e-mail de l'utilisateur pour lequel vous attribuez le rôle, y compris le préfixe du fournisseur d'identité (par exemple,idpprefix-paul@example.com). Cette valeur doit correspondre à la valeurUSERNAMEexportée.
Appliquez le fichier YAML
organizationrolebinding.yaml:kubectl create -f organizationrolebinding.yaml
Supprimer des liaisons de rôle
Lorsque l'accès n'est plus nécessaire, supprimez un membre, ainsi que ses rôles, autorisations et accès associés.
Pour supprimer des membres, procédez comme suit :
Console
- Connectez-vous à la console GDC.
- Dans le menu de navigation, cliquez sur Identité et accès > Accès.
- Dans la liste Membres autorisés, sélectionnez un membre.
- Cliquez sur Supprimer le membre.
- Lorsque vous y êtes invité, cliquez sur Supprimer le membre pour confirmer.
gdcloud
Assurez-vous que la CLI gdcloud est installée.
Connectez-vous à l'aide de la commande
gdcloud auth loginpour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez Authentification de la CLI gdcloud.Supprimez des liaisons de rôle.
Supprimez des liaisons de rôle pour une organisation :
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLERemplacez les variables suivantes :
USER_ACCOUNT: compte utilisateur pour lequel vous souhaitez supprimer le rôle. Cet indicateur accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:ClusterRole,RoleouOrganizationRolepour lequel vous supprimez la liaison de rôle.ROLE: nom du rôle prédéfini ou personnalisé que vous souhaitez supprimer du compte utilisateur (par exemple,project-creator).
Supprimez des liaisons de rôle pour un projet :
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLERemplacez les variables suivantes :
PROJECT: nom du projet pour lequel vous supprimez la liaison de rôle.USER_ACCOUNT: compte utilisateur pour lequel vous souhaitez supprimer le rôle. Cet indicateur accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleouProjectRolepour lequel vous supprimez la liaison de rôle.ROLE: nom du rôle prédéfini ou personnalisé que vous souhaitez supprimer du compte utilisateur (par exemple,project-viewer).
API
Exportez les identifiants utilisateur que vous utilisez :
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExportez le compte utilisateur pour lequel vous souhaitez supprimer le rôle, y compris le préfixe du fournisseur d'identité (par exemple,
idpprefix-paul@example.com) :export USERNAME=IDP_PREFIX-USER_EMAILExportez l'espace de noms dans lequel la liaison est supprimée :
export BINDING_NAMESPACE=BINDING_NAMESPACESupprimez le
ClusterRoleBinding, leRoleBinding, leProjectRoleBinding, ou leOrganizationRoleBindingpour révoquer l'autorisation accordée au compte utilisateur :Supprimez le
ClusterRoleBindingd'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paSupprimez le
RoleBindingd'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Supprimez le
ProjectRoleBindingd'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Supprimez l'
OrganizationRoleBindingd'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Révoquer l'accès utilisateur
Si un membre quitte votre organisation ou votre équipe, vous pouvez révoquer son accès à l'appliance isolée Google Distributed Cloud (GDC). La révocation de l'accès d'un utilisateur le déconnecte de l'appliance GDC sous air gap et supprime ses rôles et autorisations. Vous pouvez également afficher la liste des activités et des sessions de l'utilisateur, ainsi que leurs heures de début et de fin.
Pour révoquer l'accès d'un utilisateur, procédez comme suit :
Obtenez les autorisations nécessaires pour révoquer des utilisateurs. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle d'administrateur de session de l'organisation (
org-session-admin).Révoquez l'accès de l'utilisateur :
gdcloud admin auth revoke --accounts USER_EMAILRemplacez USER_EMAIL par l'adresse e-mail de l'utilisateur dont vous souhaitez révoquer l'accès.
Après avoir exécuté la commande, vous verrez un résultat semblable à celui-ci. Cet exemple révoque l'accès de l'utilisateur
ariel@example.com:Success: NUMBER of sessions revoked for user ariel@example.comDans cet exemple, la variable NUMBER fait référence au nombre de sessions actives de l'utilisateur.
Vérifiez que vous avez révoqué l'accès de l'utilisateur en exécutant à nouveau la commande
gdcloud admin auth revoke. Si l'opération réussit, le message suivant s'affiche :No sessions found for account: ariel@example.com
Répertorier tous les utilisateurs révoqués
Pour afficher tous les utilisateurs révoqués, ainsi que leurs activités et sessions, procédez comme suit :
Répertoriez tous les utilisateurs révoqués, ainsi que leurs heures de début et de fin :
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"Si l'opération réussit, un résultat semblable à celui-ci s'affiche :
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52