La fédération d'identité du personnel accorde aux identités autres que Google un accès aux servicesGoogle Cloud . Dans le contexte de GKE sur AWS, cela signifie que vous pouvez utiliser des identités externes préexistantes pour créer ou accéder à un cluster GKE sans vous appuyer sur des 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 de connexions 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 suivre les étapes ci-dessous:
Pour que les utilisateurs ou les groupes externes puissent utiliser l'API GKE sur AWS, 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.clusterViewer
pour afficher les clusters 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 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 projet Google Cloud .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 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 projet Google Cloud .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.GROUP_ID
: ID qui identifie de manière unique un groupe externe.
Facultatif : Attribuez à vos utilisateurs ou groupes externes les de gestion de l'authentification et des accès (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 projet Google Cloud .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 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 projet Google Cloud .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.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 AWS, 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 2 vous oblige à spécifier l'accès pour les identités externes lorsque vous créez ou mettez à jour 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 des autorisations plus précises ou la méthode 2 pour accorder des droits d'administrateur de cluster complets.
Méthode 1: utiliser un fichier RBAC
La première méthode d'octroi d'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 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
.
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
: 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 réappliquez-le au cluster en répétant les étapes précédentes.
Méthode 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 la procédure décrite dans Créer un cluster. Pour mettre à jour un cluster, suivez la procédure décrite 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 aws 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 d'un accès aux ID externes aux clusters GKE
Après avoir exécuté la méthode 1 ou 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
.