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
ClusterRoleBinding
ouRoleBinding
à unClusterRole
pré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
ProjectRole
et unProjectRoleBinding
correspondant. Ce processus propage unRole
et unRoleBinding
Kubernetes à unNamespace
Kubernetes dans le cluster, ce qui correspond auProject
auquel leProjectRole
et leProjectRoleBinding
sont 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
OrganizationRole
et unOrganizationRoleBinding
correspondant. Ce processus propage unClusterRole
et unClusterRoleBinding
Kubernetes à l'ensemble du cluster Kubernetes.
Les personas (IO, PA, AO) ne sont pas des rôles, mais des ensembles de rôles utilisateur mappés à des autorisations spécifiques et attribués à des utilisateurs individuels.
L'administrateur IAM de l'organisation et l'administrateur IAM du projet peuvent créer d'autres rôles 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 et des liaisons de rôles de projet pour n'importe quel projet. En revanche, les administrateurs IAM de projet ne peuvent créer des rôles et des liaisons de rôle de projet que pour les projets auxquels ils sont autorisés à accéder.
Configurer les liaisons de rôle
Vous pouvez configurer des liaisons de rôle qui donnent aux membres de l'équipe accès aux ressources au niveau de l'organisation ou du projet.
Pour obtenir les autorisations nécessaires pour configurer les liaisons de rôle, demandez à votre administrateur IAM de l'organisation de vous accorder 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-la.
- Pour configurer des liaisons de rôle pour un projet, sélectionnez-le.
- 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 individuels ou des groupes.
- 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 d'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 d'avoir installé la gdcloud CLI.
Connectez-vous à l'aide de la commande
gdcloud auth login
pour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez l'authentification gdcloud CLI.Configurez les 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/ROLE
Remplacez les variables suivantes :
USER_ACCOUNT
: compte utilisateur auquel vous souhaitez attribuer 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
,Role
ouOrganizationRole
pour 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/ROLE
Remplacez les variables suivantes :
PROJECT
: nom du projet pour lequel vous configurez l'association de rôle.USER_ACCOUNT
: compte utilisateur auquel vous souhaitez attribuer 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
:Role
ouProjectRole
pour 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_KUBECONFIG
Exportez le compte utilisateur auquel 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_EMAIL
Exportez 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_NAME
Attribuez un utilisateur à un
ClusterRole
,Role
,ProjectRole
ouOrganizationRole
:Attribuer un utilisateur à un
ClusterRole
:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}
Dans les cas où un
ClusterRole
nécessite unRoleBinding
au lieu d'unClusterRoleBinding
, consultez les définitions de rôle pour connaître le type de liaison dont le rôle a besoin et 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-system
Attribuer un utilisateur à un
Role
:Exportez l'espace de noms dans lequel la liaison doit être créée :
export BINDING_NAMESPACE=BINDING_NAMESPACE
Exé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}
Attribuer 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: USERNAME
Remplacez 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 duProjectRole
que vous attribuez à l'utilisateur.USER_KIND
: type d'utilisateur, qui peut êtreUser
,Group
ouServiceAccount
.USERNAME
: adresse e-mail de l'utilisateur auquel vous attribuez le rôle, y compris le préfixe du fournisseur d'identité (par exemple,idpprefix-paul@example.com
). Cette adresse doit correspondre à la valeurUSERNAME
exportée.
Appliquez le fichier
projectrolebinding.yaml
:kubectl create -f projectrolebinding.yaml
Attribuer 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: USERNAME
Remplacez les éléments suivants :
BINDING_NAME
: nom de la liaison que l'utilisateur peut personnaliser (par exemple,user-organization-creator-binding
).ROLE_NAME
: nom duOrganizationRole
que vous attribuez à l'utilisateur.USER_KIND
: type d'utilisateur, qui peut êtreUser
,Group
ouServiceAccount
.USERNAME
: adresse e-mail de l'utilisateur auquel vous attribuez le rôle, y compris le préfixe du fournisseur d'identité (par exemple,idpprefix-paul@example.com
). Cette adresse doit correspondre à la valeurUSERNAME
exporté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 les rôles, autorisations et accès qui lui sont 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 d'avoir installé la gdcloud CLI.
Connectez-vous à l'aide de la commande
gdcloud auth login
pour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez l'authentification gdcloud CLI.Supprimez les liaisons de rôle.
Supprimez les liaisons de rôle pour une organisation :
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Remplacez les variables suivantes :
USER_ACCOUNT
: compte utilisateur dont 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
,Role
ouOrganizationRole
pour lesquels 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 les liaisons de rôle pour un projet :
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Remplacez les variables suivantes :
PROJECT
: nom du projet à partir duquel vous supprimez l'association de rôle.USER_ACCOUNT
: compte utilisateur dont 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
:Role
ouProjectRole
pour 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_KUBECONFIG
Exportez le compte utilisateur dont 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_EMAIL
Exportez l'espace de noms dans lequel la liaison est supprimée :
export BINDING_NAMESPACE=BINDING_NAMESPACE
Supprimez
ClusterRoleBinding
,RoleBinding
,ProjectRoleBinding
ouOrganizationRoleBinding
pour révoquer l'autorisation accordée au compte utilisateur :Supprimez
ClusterRoleBinding
d'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-pa
Supprimez
RoleBinding
d'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Supprimez
ProjectRoleBinding
d'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Supprimez
OrganizationRoleBinding
d'un compte utilisateur :kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Révoquer l'accès d'un utilisateur
Si un membre quitte votre organisation ou votre équipe, vous pouvez révoquer son accès à l'appliance Google Distributed Cloud (GDC) isolée. Si vous révoquez l'accès d'un utilisateur, il est déconnecté de l'appliance GDC isolée et ses rôles et autorisations sont supprimés. Vous pouvez également lister l'activité et les sessions de l'utilisateur en indiquant leur heure 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 les utilisateurs. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de session de l'organisation (
org-session-admin
).Révoquez l'accès de l'utilisateur :
gdcloud admin auth revoke --accounts USER_EMAIL
Remplacez USER_EMAIL par l'adresse e-mail de l'utilisateur dont vous souhaitez révoquer l'accès.
Une fois la commande exécutée, un résultat semblable à celui-ci s'affiche : Cet exemple révoque l'accès de l'utilisateur
ariel@example.com
:Success: NUMBER of sessions revoked for user ariel@example.com
Dans cet exemple, la variable NUMBER fait référence au nombre de sessions actives de l'utilisateur.
Confirmez 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, vous obtenez le résultat suivant :No sessions found for account: ariel@example.com
Lister tous les utilisateurs révoqués
Pour afficher tous les utilisateurs révoqués, ainsi que leurs activités et leurs sessions :
Répertoriez tous les utilisateurs révoqués, en indiquant leur heure 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, vous obtenez un résultat semblable à celui-ci :
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52