S'authentifier auprès de GKE sur Azure avec des identités externes
La fédération d'identité du personnel accorde l'accès aux services Google Cloud aux identités autres que Google. Dans le contexte de GKE sur Azure, cela signifie que vous pouvez utiliser des identités externes préexistantes pour créer ou accéder à un cluster GKE sans avoir recours aux 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 auprès de 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 requis.
Avant de commencer
Avant de pouvoir autoriser des utilisateurs ou des groupes externes à accéder aux clusters GKE, vous devez effectuer les étapes suivantes :
Pour que les utilisateurs ou les groupes externes puissent utiliser l'API GKE sur Azure, configurez la fédération d'identité du personnel :
- 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.clusterViewer
pour l'affichage dans la console Google Cloud.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 lui accordez toutes les autorisations qu'il contient.
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 projet Google CloudWORKFORCE_POOL_ID
: ID qui identifie de manière unique votre pool d'identités de personnel dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les consignes 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 projet Google CloudWORKFORCE_POOL_ID
: ID qui identifie de manière unique votre pool d'identités de personnel dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les consignes 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 aux utilisateurs ou aux groupes externes les rôles Identity and Access Management (IAM) appropriés. Cette étape n'est nécessaire que si vous souhaitez autoriser des utilisateurs ou des groupes à créer ou à mettre à jour des clusters. Elle n'est pas requise 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 projet Google CloudWORKFORCE_POOL_ID
: ID qui identifie de manière unique votre pool d'identités de personnel dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les consignes 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 projet Google CloudWORKFORCE_POOL_ID
: l'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 de suivre les consignes 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 autorisations d'API requis pour GKE sur Azure, consultez la page Rôles et autorisations des 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 2 nécessite que vous spécifiiez l'accès pour les identités externes lors de la création ou 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 1 pour obtenir des autorisations plus précises ou la méthode 2 pour accorder des autorisations de cluster complètes des droits d'administrateur.
Méthode n° 1: Utiliser un fichier RBAC
La première méthode pour accorder un accès externe aux clusters GKE implique l'utilisation d'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.io
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID qui identifie de manière unique votre pool d'identités de personnel dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les consignes 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.io
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: l'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 de suivre les consignes 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_CONTEXT
Remplacez
CLUSTER_CONTEXT
par 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_PATH
Remplacez
RBAC_PATH
par 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 Google Cloud dans laquelle votre cluster est géré.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 de suivre les consignes 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 de l'accès aux ID externes aux clusters GKE
Après avoir exécuté la méthode n°1 ou n°2, les utilisateurs externes ou
les groupes spécifiés peuvent
utiliser la console Google Cloud
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
.