S'authentifier auprès de GKE sur Azure avec des identités externes
La fédération des identités des employés permet aux identités non Google d'accéder aux Google Cloud services. Dans le contexte de GKE sur Azure, cela signifie que vous pouvez utiliser des identités externes préexistantes pour créer un cluster GKE ou y accéder sans avoir à utiliser d'identifiants Google.
Voici les avantages de la fédération des identités des employés :
- Vous n'avez plus besoin de comptes en double sur différentes plates-formes ou chez différents fournisseurs.
- Vous ne définissez les autorisations qu'une seule fois, évitant ainsi le besoin de configurations sur plusieurs plates-formes.
- Vous simplifiez l'accès des utilisateurs, car moins d'identifiants et de mots de passe sont nécessaires.
Avant de commencer
Avant de pouvoir autoriser des utilisateurs ou des groupes externes à accéder aux clusters GKE, vous devez procéder comme suit :
Pour que les utilisateurs ou les groupes externes puissent utiliser l'API GKE sur Azure, configurez la fédération des identités des employés :
- Pour les utilisateurs Azure, consultez Configurer la fédération des identités des employés avec Azure AD.
- Pour les utilisateurs Okta, consultez Configurer la fédération des identités des employés avec Okta.
- Pour les utilisateurs d'autres plates-formes, consultez Configurer la fédération des identités des employés.
Attribuez le rôle
gkemulticloud.viewerà vos utilisateurs ou groupes externes pour qu'ils puissent accéder aux clusters. Attribuez le rôlecontainer.clusterViewerpour afficher les clusters dans la Google Cloud console.Notez que les rôles sont des ensembles d'autorisations. Lorsque vous attribuez un rôle à une entité (utilisateur, groupe ou compte de service), vous donnez à cette entité toutes les autorisations contenues dans ce rôle.
Utilisateurs
Pour les utilisateurs individuels, vous devez attribuer le rôle
gkemulticloud.viewer:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.SUBJECT_VALUE: ID qui identifie de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle quealex@cymbalgroup.com.
Groupes
Pour les groupes, vous devez attribuer le rôle
gkemulticloud.viewer:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.GROUP_ID: ID qui identifie de manière unique un groupe externe.
Facultatif : Attribuez à vos utilisateurs ou groupes externes les de Identity and Access Management (IAM). Cette étape n'est nécessaire que si vous souhaitez permettre à des utilisateurs ou à des groupes de créer ou de mettre à jour des clusters ; Elle n'est pas nécessaire pour accéder simplement à un cluster.
Utilisateurs
Pour les utilisateurs individuels, vous devez attribuer le rôle
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.SUBJECT_VALUE: ID qui identifie de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle quealex@cymbalgroup.com.
Groupes
Pour les groupes, vous devez attribuer le rôle
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.GROUP_ID: ID qui identifie de manière unique un groupe externe.
Pour en savoir plus sur les rôles et les autorisations d'API requis pour GKE sur Azure, consultez Rôles et autorisations d'API.
Accorder un accès externe aux clusters GKE
Il existe deux méthodes pour configurer la fédération des identités des employés afin que les utilisateurs ou les groupes externes puissent accéder à vos clusters GKE.
La méthode n° 1 nécessite de définir un fichier RBAC et à l'appliquer au cluster. Cette méthode offre un contrôle précis des autorisations, comme permettre aux utilisateurs d'avoir un accès en lecture seule aux ressources sans leur accorder un accès plus large.
La méthode n° 2 nécessite de spécifier l'accès pour les identités externes lors de la création ou de la mise à jour d'un cluster. Cette méthode octroie des droits d'administrateur complets au utilisateurs ou aux groupes spécifiés.
Choisissez la méthode qui correspond le mieux au niveau de contrôle des accès souhaité : la méthode n° 1 pour des autorisations plus précises ou la méthode n° 2 pour accorder des droits d'administrateur complets au cluster.
Méthode n° 1 : utiliser un fichier RBAC
La première méthode pour accorder un accès externe aux clusters GKE consiste à utiliser un fichier RBAC. Procédez comme suit :
Définissez un fichier YAML RBAC qui inclut les sujets (utilisateurs ou groupes) et les autorisations que vous souhaitez leur accorder dans le cluster GKE. Voici des Exemples de configurations YAML RBAC pour des utilisateurs individuels et des groupes:
Utilisateurs
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.ioRemplacez les éléments suivants :
WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.SUBJECT_VALUE: ID qui identifie de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle quealex@cymbalgroup.com.
Groupes
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.ioRemplacez les éléments suivants :
WORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.GROUP_ID: ID qui identifie de manière unique un groupe externe.
Identifiez le cluster GKE que vous souhaitez configurer et définissez-le comme le contexte actif à l'aide de la commande suivante:
kubectl config use-context CLUSTER_CONTEXTRemplacez
CLUSTER_CONTEXTpar le nom de contexte approprié pour votre cluster.Avec le cluster GKE souhaité défini comme contexte actif, appliquez la configuration RBAC au cluster à l'aide de la commande suivante:
kubectl apply -f RBAC_PATHRemplacez
RBAC_PATHpar le chemin d'accès au fichier RBAC que vous avez créé ou modifié.Lorsque vous exécutez cette commande, les utilisateurs ou les groupes spécifiés dans la configuration RBAC disposent désormais des autorisations nécessaires pour accéder au cluster GKE ciblé, tel que défini dans les règles RBAC.
Si vous devez apporter des modifications ultérieures aux autorisations, modifiez le fichier RBAC et appliquez-le à nouveau au cluster en répétant les étapes précédentes.
Méthode n° 2 : accorder l'accès aux identités externes lors de la création ou de la mise à jour du cluster
La méthode n° 2 accorde l'accès aux identités externes lors de la création ou de la mise à jour du cluster.
Pour créer un cluster, suivez les étapes décrites dans Créer un cluster. Pour mettre à jour un cluster, suivez les étapes décrites dans Mettre à jour un cluster.
Lorsque vous exécutez la commande gcloud pour créer ou mettre à jour un cluster, spécifiez le
paramètres admin-users et/ou admin-groups comme suit:
gcloud container azure clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Remplacez les éléments suivants :
CLUSTER_NAME: nom du clusterLOCATION:région où votre cluster est géré Google CloudWORKFORCE_POOL_ID: ID qui identifie de façon unique votre pool d'identités des employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous que vous suivez les instructions recommandées dans la documentation IAM sous Paramètres de requête.SUBJECT_VALUE: ID qui identifie de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle quealex@cymbalgroup.com.GROUP_ID: ID qui identifie de manière unique un groupe externe.
Résumé de l'octroi d'un accès aux clusters GKE à des ID externes
Après avoir exécuté la méthode n°1 ou n°2, les utilisateurs externes ou les
groupes spécifiés peuvent
utiliser Google Cloud la console
pour se connecter et afficher les détails du cluster. Ils peuvent également utiliser
kubectl avec l'identité de la gcloud CLI
pour gérer, manipuler et communiquer avec le cluster.
Pour exécuter des commandes kubectl sur des clusters GKE, voyez
comment générer une entrée kubeconfig.