Ce document explique aux administrateurs de clusters comment configurer plusieurs clusters pour l'authentification à partir de fournisseurs d'identité tiers à l'aide de parcs. Google Cloud gère la configuration des clusters dans un parc, ce qui permet une configuration plus rapide et moins complexe que celle des clusters individuels. Pour en savoir plus sur la procédure d'authentification des fournisseurs tiers, consultez À propos de l'authentification à l'aide d'identités tierces.
Avant de commencer
Installez et configurez Google Cloud CLI :
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Après avoir initialisé la gcloud CLI, mettez-la à jour et installez les composants requis :
gcloud components update gcloud components install kubectl
- Dans la gcloud CLI, sélectionnez votre projet hôte du parc :
Remplacezgcloud config set project FLEET_HOST_PROJECT_ID
FLEET_HOST_PROJECT_IDpar l'ID du projet hôte de votre parc.
-
Activez les API requises :
Dans la console Google Cloud , accédez à la page de sélection du projet :
Sélectionnez votre projet hôte de parc.
Enable the GKE Hub and Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Assurez-vous que l'administrateur de votre plate-forme vous a fourni toutes les informations sur le fournisseur dont vous avez besoin pour le protocole sélectionné. Pour en savoir plus, consultez les documents suivants :
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer des clusters au niveau du parc, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de parc (roles/gkehub/admin) sur le projet hôte du parc.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer la fonctionnalité de service d'identité au niveau du parc
La fonctionnalité de service d'identité au niveau du parc utilise un contrôleur pour gérer la configuration dans chacun des clusters du parc. Vous ne devez activer la fonctionnalité au niveau du parc que dans le projet hôte du parc.
Pour activer la fonctionnalité au niveau du parc, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page GKE Identity Service.
Cliquez sur Activer Identity Service.
gcloud
Activez la fonctionnalité de service d'identité au niveau du parc :
gcloud container fleet identity-service enable
Configurer les clusters
Pour configurer vos clusters, vous devez spécifier les informations suivantes :
- Informations sur votre fournisseur d'identité, comme un ID client et un code secret.
- Informations sur les jetons Web JSON (JWT) que votre fournisseur d'identité utilise pour l'authentification.
- Tous les champs d'application ou paramètres supplémentaires propres à votre fournisseur d'identité.
Pour en savoir plus sur les informations que vous devez obtenir auprès de l'administrateur de votre plate-forme ou de la personne qui gère l'identité dans votre organisation, consultez les documents suivants :
- Configurer des fournisseurs OIDC pour s'authentifier auprès des clusters
- Configurer des fournisseurs SAML pour l'authentification auprès des clusters
- Configurer des fournisseurs LDAP pour l'authentification auprès des clusters
Si vous avez des configurations existantes au niveau du cluster pour les fournisseurs OIDC, l'application d'une configuration au niveau du parc au cluster écrase toutes vos spécifications d'authentification existantes. De plus, si vous avez des configurations existantes au niveau du cluster pour les fournisseurs non compatibles avec la configuration au niveau du parc, cette configuration échouera. Vous devez supprimer la configuration de fournisseur existante pour appliquer la configuration au niveau du parc.
Pour configurer vos clusters, procédez comme suit :
Console
Sélectionnez les clusters à configurer :
Dans la console Google Cloud , accédez à la page GKE Identity Service.
Cochez une ou plusieurs cases correspondant aux clusters que vous souhaitez configurer. Vous pouvez choisir des clusters individuels ou spécifier que tous les clusters doivent être configurés avec la même configuration d'identité. Si vous avez configuré des valeurs par défaut au niveau du parc, la configuration revient à la valeur par défaut.
Cliquez sur Mettre à jour la configuration. Le volet Modifier la configuration des clusters Identity Service s'ouvre.
Dans la section Fournisseurs d'identité, choisissez la manière dont vous souhaitez configurer les clusters. Vous pouvez mettre à jour une configuration existante, copier une configuration à partir d'un autre cluster ou créer une configuration. Pour créer une configuration, cliquez sur Ajouter un fournisseur d'identité. La section Nouveau fournisseur d'identité s'affiche.
Dans la section Nouveau fournisseur d'identité, définissez les détails du fournisseur :
OIDC
- Sélectionnez Nouveau Open ID Connect pour créer une configuration OIDC.
- Dans le champ Nom du fournisseur, saisissez le nom que vous souhaitez utiliser pour identifier cette configuration (généralement, le nom du fournisseur d'identité). Le nom doit commencer par une lettre suivie de 1 à 39 lettres minuscules, chiffres ou traits d'union, et ne peut pas se terminer par un trait d'union. Vous ne pourrez plus modifier ce nom après avoir créé une configuration.
- Spécifiez l'ID client du fournisseur d'identité dans le champ ID client.
- Indiquez le code secret du client qui doit être partagé entre l'application cliente et le fournisseur d'identité dans le champ Code secret du client.
- Dans le champ URL de l'émetteur, spécifiez l'URI vers lequel les requêtes d'autorisation sont envoyées à votre fournisseur d'identité.
- Cliquez sur Suivant pour définir les attributs OIDC.
Azure AD
- Sélectionnez Nouvelle configuration Azure Active Directory pour créer une configuration Azure AD.
- Dans le champ Nom du fournisseur, saisissez le nom que vous souhaitez utiliser pour identifier cette configuration (généralement, le nom du fournisseur d'identité). Le nom doit commencer par une lettre suivie de 1 à 39 lettres minuscules, chiffres ou traits d'union, et ne peut pas se terminer par un trait d'union. Vous ne pourrez plus modifier ce nom après avoir créé une configuration.
- Spécifiez l'ID client du fournisseur d'identité dans le champ ID client.
- Indiquez le code secret du client qui doit être partagé entre l'application cliente et le fournisseur d'identité dans le champ Code secret du client.
- Spécifiez le locataire qui est le compte Azure AD à authentifier dans Locataire.
- Cliquez sur Suivant pour définir les attributs Azure AD.
LDAP
- Sélectionnez LDAP pour créer une configuration LDAP.
- Dans le champ Nom du fournisseur, saisissez le nom que vous souhaitez utiliser pour identifier cette configuration (généralement, le nom du fournisseur d'identité). Le nom doit commencer par une lettre suivie de 1 à 39 lettres minuscules, chiffres ou traits d'union, et ne peut pas se terminer par un trait d'union. Vous ne pourrez plus modifier ce nom après avoir créé une configuration.
- Cliquez sur Suivant.
- Indiquez le nom d'hôte (obligatoire), le type de connexion LDAP et le certificat CA encodé en base64 du serveur LDAP.
- Cliquez sur Suivant pour configurer le serveur.
- Spécifiez le nom distinctif, le filtre, l'attribut de connexion et l'attribut d'identifiant de l'utilisateur.
- Cliquez sur Suivant pour définir les détails de l'utilisateur.
- Si vous choisissez d'utiliser des groupes, spécifiez le nom distinctif, le filtre et l'attribut d'identifiant du groupe.
- Cliquez sur Suivant pour définir les détails du groupe.
- Spécifiez le nom d'utilisateur et le mot de passe du compte de service.
- Cliquez sur Terminé pour définir le nom du compte de service.
Cliquez sur Suivant. La section Définir les attributs s'ouvre.
Définissez les attributs de votre fournisseur d'identité. Pour afficher les attributs pour OIDC ou Azure AD, sélectionnez l'une des options suivantes :
OIDC
- URI de redirection
kubectl: port et URL de redirection utilisés par gcloud CLI et spécifiés par l'administrateur de la plate-forme à l'enregistrement, généralement au formathttp://localhost:PORT/callback. - Autorité de certification (facultatif) : si fournie par l'administrateur de votre plate-forme, une chaîne de certificat encodée au format PEM pour le fournisseur d'identité.
- Revendication de groupe (facultatif) : revendication de jeton JWT (nom de champ) que votre fournisseur utilise pour renvoyer les groupes de sécurité d'un compte.
- Préfixe de groupe (facultatif) : préfixe que vous souhaitez ajouter aux noms de groupe de sécurité pour éviter les conflits avec les noms existants dans vos règles de contrôle des accès si vous avez des configurations pour plusieurs fournisseurs d'identité (généralement le nom du fournisseur).
- Proxy (facultatif) : adresse du serveur proxy à utiliser pour se connecter au fournisseur d'identité, le cas échéant. Vous devrez peut-être définir cette option si, par exemple, votre cluster se trouve sur un réseau privé et doit se connecter à un fournisseur d'identité public. Exemple :
http://user:password@10.10.10.10:8888. - Niveaux d'accès (facultatif) : tous les niveaux d'accès supplémentaires requis par votre fournisseur d'identité. Microsoft Azure et Okta nécessitent le niveau d'accès
offline_access. Cliquez sur Ajouter un niveau d'accès pour ajouter d'autres niveaux d'accès, si nécessaire. - Revendication utilisateur (facultatif) : revendication de jeton JWT (nom de champ) que votre fournisseur utilise pour identifier un compte. Si vous ne spécifiez pas de valeur ici, le cluster utilise "sub ", qui est la revendication d'ID utilisateur utilisée par de nombreux fournisseurs. Vous pouvez choisir d'autres revendications, telles que l'adresse e-mail ou le nom, selon le fournisseur OpenID. Les revendications autres que l'adresse e-mail sont précédées de l'URL de l'émetteur pour éviter les conflits de noms.
- Préfixe de l'utilisateur (facultatif) : préfixe que vous souhaitez ajouter aux revendications de l'utilisateur pour éviter les conflits avec les noms existants, si vous ne souhaitez pas utiliser le préfixe par défaut.
- Paramètres supplémentaires (facultatif) : tous les paramètres supplémentaires requis pour votre configuration, spécifiés sous forme de paires Clé et Valeur. Cliquez sur Ajouter un paramètre pour ajouter d'autres paramètres si nécessaire.
- Activer le jeton d'accès (facultatif) : si cette option est activée, elle autorise la compatibilité de groupes avec les fournisseurs OIDC tels que Okta.
- Déployer le proxy de la Google Cloud console (facultatif) : si ce proxy est activé, il permet à la console Google Cloud de se connecter à un fournisseur d'identité sur site qui n'est pas accessible publiquement sur Internet.
Azure AD
- URI de redirection
kubectl: port et URL de redirection utilisés par gcloud CLI et spécifiés par l'administrateur de la plate-forme à l'enregistrement, généralement au formathttp://localhost:PORT/callback. - Revendication utilisateur (facultatif) : revendication de jeton JWT (nom de champ) que votre fournisseur utilise pour identifier un compte. Si vous ne spécifiez pas de valeur ici, le cluster utilise une valeur dans l'ordre "email", "preferred_username" ou "sub" pour récupérer les informations sur l'utilisateur.
- Proxy (facultatif) : adresse du serveur proxy à utiliser pour se connecter au fournisseur d'identité, le cas échéant. Vous devrez peut-être définir cette option si, par exemple, votre cluster se trouve sur un réseau privé et doit se connecter à un fournisseur d'identité public. Exemple :
http://user:password@10.10.10.10:8888.
- URI de redirection
Cliquez sur OK.
Facultatif : Pour ajouter d'autres fournisseurs à la configuration, cliquez sur Ajouter un fournisseur d'identité et répétez les étapes précédentes.
Cliquez sur Mettre à jour la configuration.
Cela permet d'installer les composants requis si nécessaire et d'appliquer la configuration du client aux clusters sélectionnés.
gcloud
Pour utiliser la gcloud CLI afin de configurer le parc, vous devez créer une ressource personnalisée Kubernetes nommée ClientConfig, avec des champs pour toutes les informations dont le cluster a besoin pour interagir avec le fournisseur d'identité. Pour créer et utiliser un ClientConfig, procédez comme suit :
Créez une spécification ClientConfig dans un fichier nommé
auth-config.yaml. Pour afficher des exemples de configurations pour OIDC, SAML ou LDAP, sélectionnez l'une des options suivantes. Pour d'autres configurations de fournisseur d'identité, consultez Configurations spécifiques aux fournisseurs.OIDC
L'exemple ClientConfig suivant montre à la fois une configuration
oidcet une configurationazuread. Pour savoir quand utiliseroidcouazuread, consultez Configurations spécifiques aux fournisseurs.apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: NAME proxy: PROXY_URL oidc: certificateAuthorityData: CERTIFICATE_STRING clientID: CLIENT_ID clientSecret: CLIENT_SECRET deployCloudConsoleProxy: PROXY_BOOLEAN extraParams: EXTRA_PARAMS groupsClaim: GROUPS_CLAIM groupPrefix: GROUP_PREFIX issuerURI: ISSUER_URI kubectlRedirectURI: http://localhost:PORT/callback scopes: SCOPES userClaim: USER_CLAIM userPrefix: USER_PREFIX - name: azure azureAD: clientID: CLIENT_ID clientSecret: CLIENT_SECRET tenant: TENANT_UUID kubectlRedirectURI: http://localhost:PORT/callback groupFormat: GROUP_FORMAT userClaim: USER_CLAIMPour en savoir plus sur les champs de l'objet
oidc, consultez Champs OIDC ClientConfig.SAML
L'exemple ClientConfig suivant montre une configuration
saml:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: NAME saml: idpEntityID: ENTITY_ID idpSingleSignOnURI: SIGN_ON_URI idpCertificateDataList: IDP_CA_CERT userAttribute: USER_ATTRIBUTE groupsAttribute: GROUPS_ATTRIBUTE userPrefix: USER_PREFIX groupPrefix: GROUP_PREFIX attributeMapping: ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1 ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2 certificateAuthorityData: CERTIFICATE_STRING preferredAuthentication: PREFERRED_AUTHENTICATION server: <>Pour en savoir plus sur ces champs, consultez Champs SAML ClientConfig.
LDAP
L'exemple ClientConfig suivant montre une configuration
ldap:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: ldap ldap: server: host: HOST_NAME connectionType: CONNECTION_TYPE certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA user: baseDn: BASE_DN loginAttribute: LOGIN_ATTRIBUTE filter: FILTER identifierAttribute: IDENTIFIER_ATTRIBUTE group: baseDn: BASE_DN filter: FILTER identifierAttribute: IDENTIFIER_ATTRIBUTE serviceAccount: simpleBindCredentials: dn: DISTINGUISHED_NAME password: PASSWORDPour en savoir plus sur ces champs, consultez Champs LDAP ClientConfig.
Vous pouvez ajouter plusieurs configurations de fournisseur d'identité au même ClientConfig. Le cluster tente de s'authentifier avec chaque configuration dans l'ordre dans lequel elles sont définies, et s'arrête après la première authentification réussie.
Appliquez ClientConfig à un cluster :
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=auth-config.yamlRemplacez
CLUSTER_NAMEpar le nom unique de votre cluster dans le parc.
Le cluster installe les composants requis et utilise le ClientConfig que vous avez créé. Le contrôleur au niveau du parc gère la configuration du cluster. Toutes les modifications locales apportées à la configuration du cluster sont appliquées par le contrôleur à la configuration au niveau du parc.
Pour certaines versions de clusters, l'application de votre configuration au niveau du parc ajoute par défaut une configuration authentication supplémentaire à vos clusters.
Cela permet au cluster de récupérer des informations Google Groupes pour les comptes utilisateur se connectant avec leur ID Google.
Cette configuration s'applique aux clusters sur Google Distributed Cloud (VMware et Bare Metal).
Pour en savoir plus sur la fonctionnalité Google Groupes, consultez Configurer la passerelle de connexion avec Google Groupes.
Si vous ne souhaitez plus que le contrôleur au niveau du parc gère votre configuration (par exemple, si vous souhaitez utiliser une ou plusieurs options d'authentification différentes), vous pouvez désactiver cette fonctionnalité en suivant les instructions de la page Désactiver la gestion des identités au niveau du parc.
Configurations spécifiques aux fournisseurs
Cette section fournit des conseils de configuration pour les fournisseurs OIDC (tels qu'Azure AD et Okta), y compris un exemple de configuration que vous pouvez copier et modifier avec vos propres détails.
Azure AD
Il s'agit de la configuration par défaut pour configurer l'authentification avec Azure AD. Cette configuration permet au cluster d'obtenir des informations sur les utilisateurs et les groupes à partir d'Azure AD, et vous permet de configurer le contrôle des accès basé sur les rôles Kubernetes (RBAC) en fonction des groupes. Toutefois, l'utilisation de cette configuration vous limite à la récupération d'environ 200 groupes par utilisateur.
Si vous devez récupérer plus de 200 groupes par utilisateur, consultez les instructions pour Azure AD (Configuration avancée).
...
spec:
authentication:
- name: oidc-azuread
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
extraParams: prompt=consent, access_type=offline
issuerURI: https://login.microsoftonline.com/TENANT_ID/v2.0
kubectlRedirectURI: http://localhost:PORT/callback
scopes: openid,email,offline_access
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Azure AD (Configuration avancée)
Cette configuration facultative pour Azure AD permet au cluster de récupérer des informations sur les utilisateurs et les groupes sans limitation du nombre de groupes par utilisateur, à l'aide de l'API Microsoft Graph. Pour en savoir plus sur les plates-formes compatibles avec cette configuration, consultez Informations sur la configuration du fournisseur d'identité.
Si vous devez récupérer moins de 200 groupes par utilisateur, nous vous recommandons d'utiliser la configuration par défaut à l'aide d'une ancre oidc dans votre ClientConfig. Pour en savoir plus, consultez les instructions pour Azure AD.
Tous les champs de l'exemple de configuration suivant sont requis.
...
spec:
authentication:
- name: azure
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
groupFormat: GROUP_FORMAT
userClaim: USER_CLAIM
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Remplacez GROUP_FORMAT par le format dans lequel vous souhaitez récupérer les informations de groupe. Ce champ peut prendre des valeurs correspondant aux valeurs ID ou NAME des groupes d'utilisateurs. Ce paramètre n'est disponible que pour les clusters dans les déploiements Google Distributed Cloud (sur site).
Okta
Vous trouverez ci-dessous la procédure à suivre pour configurer l'authentification en utilisant à la fois les utilisateurs et les groupes avec Okta comme fournisseur d'identité. Cette configuration permet au cluster de récupérer les revendications des utilisateurs et des groupes à l'aide d'un jeton d'accès et du point de terminaison userinfo d'Okta.
...
spec:
authentication:
- name: okta
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
enableAccessToken: true
extraParams: prompt=consent
groupsClaim: groups
issuerURI: https://OKTA_ISSUER_URI/
kubectlRedirectURI: http://localhost:PORT/callback
scopes: offline_access,email,profile,groups
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Configurer les valeurs par défaut au niveau du parc
Vous pouvez spécifier une configuration par défaut au niveau du parc pour l'authentification. Avec cette configuration, chaque nouveau cluster que vous enregistrez dans le parc utilise automatiquement la configuration d'authentification que vous spécifiez.
Les clusters membres du parc existants ne sont pas automatiquement mis à jour lorsque vous spécifiez une configuration par défaut au niveau du parc. Vous pouvez éventuellement appliquer votre configuration par défaut à ces clusters. Pour en savoir plus sur la gestion de la configuration au niveau du parc, consultez Gérer les fonctionnalités au niveau du parc.
Une fois que vous avez défini une valeur par défaut au niveau du parc, toutes les modifications locales apportées à la configuration de l'authentification des clusters individuels sont écrasées lorsque le contrôleur de parc réconcilie le cluster avec la configuration par défaut.
Pour configurer une configuration par défaut au niveau du parc, procédez comme suit :
- Créez un ClientConfig dans un fichier nommé
fleet-default.yaml. Pour en savoir plus sur la création du fichier, consultez les étapes de gcloud CLI dans la section Configurer des clusters. Pour appliquer la configuration par défaut au niveau du parc, exécutez l'une des commandes suivantes :
Si la fonctionnalité de service d'identité au niveau du parc n'est pas activée, activez-la et spécifiez la configuration par défaut au niveau du parc :
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Si la fonctionnalité de service d'identité au niveau du parc est activée, appliquez la nouvelle configuration par défaut au niveau du parc :
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Les nouveaux clusters que vous enregistrez dans le parc utilisent cette configuration par défaut. Les clusters membres du parc existants n'héritent pas automatiquement de la nouvelle configuration par défaut.
Pour appliquer la configuration par défaut à un cluster membre du parc existant, exécutez la commande suivante :
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Supprimer la configuration par défaut au niveau du parc
Pour supprimer la configuration par défaut, exécutez la commande suivante :
gcloud container fleet identity-service delete --fleet-default-member-config
Les nouveaux clusters que vous enregistrez dans le parc n'utilisent pas automatiquement de configuration d'authentification.
Vérifier la configuration du service d'identité
Une fois la configuration au niveau du parc terminée, vous pouvez vérifier si les clusters de votre parc ont été correctement configurés avec la configuration du service d'identité que vous avez spécifiée.
Console
Dans la console Google Cloud , accédez à la page Gestionnaire de fonctionnalités.
Accéder au gestionnaire de fonctionnalités
Toutes les fonctionnalités activées sont indiquées comme Activée dans leur panneau.
Cliquez sur Détails dans le panneau Identity Service. Un panneau de détails affiche l'état de vos clusters enregistrés.
gcloud
Exécutez la commande suivante :
gcloud container fleet identity-service describe
Étape suivante
Après avoir configuré les clusters, procédez à la configuration de l'accès des utilisateurs.