Configurer GKE Identity Service au niveau du parc
Ce document est destiné aux administrateurs de cluster ou aux opérateurs d'application qui configurent GKE Identity Service sur leurs clusters. Il explique comment configurer GKE Identity Service au niveau du parc sur vos clusters avec votre fournisseur d'identité OpenID Connect (OIDC) préféré. Les instructions de ce document partent du principe qu'Anthos Identity Service a déjà été enregistré auprès de votre fournisseur d'identité en tant qu'application cliente.
Pour en savoir plus sur GKE Identity Service et sur les autres options de configuration, consultez la présentation. Pour savoir comment accéder à un cluster en utilisant ce service en tant que développeur ou utilisateur de cluster, consultez la page Accéder aux clusters à l'aide de GKE Identity Service.
Avant de commencer
- Assurez-vous que l'administrateur de votre plate-forme vous a fourni toutes les informations nécessaires de la page Configurer des fournisseurs OIDC pour GKE Identity Service avant de commencer la configuration, y compris l'ID client et le secret pour GKE Identity Service.
- Assurez-vous que les clusters que vous souhaitez configurer satisfont les conditions préalables pour une configuration au niveau du parc. Pour les autres types de clusters et environnements, consultez la page Présentation de GKE Identity Service.
Assurez-vous que les outils de ligne de commande suivants sont installés :
- La dernière version de Google Cloud CLI, qui inclut
gcloud
, l'outil de ligne de commande qui permet d'interagir avec Google Cloud. Si vous devez installer Google Cloud CLI, consultez le guide d'installation. kubectl
pour exécuter des commandes sur les clusters Kubernetes. Si vous devez installerkubectl
, reportez-vous au guide d'installation.
Si vous utilisez Cloud Shell comme environnement shell pour interagir avec Google Cloud, ces outils sont installés pour vous.
- La dernière version de Google Cloud CLI, qui inclut
Assurez-vous d'avoir initialisé gcloud CLI à utiliser avec le projet dans lequel les clusters sont enregistrés.
Si vous n'êtes pas le propriétaire du projet, vous avez besoin du rôle Administrateur GKE Hub dans le projet dans lequel les clusters sont enregistrés pour effectuer les étapes de configuration.
Activer les API
Console
Assurez-vous d'avoir bien sélectionné le projet dans lequel les clusters sont enregistrés.
-
Enable the GKE Hub and Kubernetes Engine APIs.
gcloud
Exécutez la commande suivante pour activer les API requises pour la configuration :
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
Configurer les clusters
Pour configurer vos clusters afin qu'ils utilisent le fournisseur choisi, Anthos Identity Service a besoin que vous spécifiez des informations sur le fournisseur d'identité, les informations de jeton JWT qu'il fournit pour l'identification de l'utilisateur, et les autres informations fournies lors de l'enregistrement de GKE Identity Service en tant qu'application cliente.
Par exemple, si votre fournisseur crée des jetons d'identité avec les champs suivants (entre autres), où iss
correspond à l'URI du fournisseur d'identité, sub
identifie l'utilisateur et groupList
répertorie les groupes de sécurité auquel l'utilisateur appartient :
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...votre configuration contiendra les champs correspondants suivants :
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
C'est l'administrateur de votre plate-forme, ou la personne qui gère l'identité dans votre organisation, qui doit vous fournir la plupart des informations nécessaires à la création de la configuration. Pour obtenir des exemples de configurations de certains fournisseurs d'identité couramment utilisés, consultez la section Configurations spécifiques au fournisseur.
GKE Identity Service vous permet de créer ou de mettre à jour et d'appliquer cette configuration à partir de la console Google Cloud ou de la CLI Google Cloud.
Console
Activer GKE Identity Service
Dans la console Google Cloud, accédez à la page Fonctionnalités de GKE Enterprise.
Dans la table Fonctionnalités, cliquez sur Activer à la ligne Identity Service, puis cliquez de nouveau sur Activer dans le volet qui s'affiche. Cette action crée une instance de contrôleur GKE Identity Service pour gérer le cycle de vie de GKE Identity Service dans les clusters de votre parc.
Sélectionner des clusters
- Toujours dans la table Fonctionnalités, cliquez sur Détails à la ligne Identity Service pour ouvrir le volet "Détails" du service. Cela affiche les clusters de votre projet et leur état GKE Identity Service au niveau du parc.
- Cliquez sur Mettre à jour le service de gestion des identités pour ouvrir le volet de configuration.
- Sélectionnez les clusters que vous souhaitez configurer. Seuls les types de cluster compatibles peuvent être sélectionnés. Vous pouvez choisir des clusters individuels ou spécifier que tous les clusters doivent être configurés avec la même configuration d'identité.
- Dans la liste déroulante Fournisseur d'identité, choisissez la manière dont vous souhaitez configurer le ou les clusters. Si le cluster dispose d'une configuration GKE Identity Service, vous pouvez choisir de la mettre à jour. Si un cluster enregistré existant possède une configuration GKE Identity Service que vous souhaitez utiliser, vous pouvez choisir de copier cette configuration dans les clusters sélectionnés. Pour créer une configuration entièrement nouvelle, suivez les instructions correspondant au fournisseur que vous avez choisi, comme indiqué dans la section suivante.
Définir les détails du fournisseur
Les informations sur le fournisseur que vous devez ajouter dépendent du type de fournisseur d'identité que vous souhaitez utiliser pour votre configuration.
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 renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur 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 renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur 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 correspondant au 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.
Définir les attributs
Les attributs que vous devez ajouter dépendent de votre fournisseur d'identité et des options de configuration choisies par l'administrateur de votre plate-forme lors de la configuration du fournisseur pour GKE Identity Service.
OIDC
Renseignez les attributs de configuration :
- URI de redirection
kubectl
: port et URL de redirection utilisés par gloud 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 votre administrateur de 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 d'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, GKE Identity Service 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 our 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 console Google Cloud (facultatif) : si ce paramètre est activé, un proxy est déployé, ce qui permet à la console Google Cloud de se connecter à un fournisseur d'identité sur site qui n'est pas accessible publiquement sur Internet.
- URI de redirection
Azure AD
Renseignez les attributs de configuration :
- URI de redirection
kubectl
: port et URL de redirection utilisés par gloud CLI et spécifiés par l'administrateur de la plate-forme à l'enregistrement, généralement au formathttp://localhost:PORT/callback
. - 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
Ajouter un fournisseur d'identité
- Si vous souhaitez configurer des fournisseurs d'identité supplémentaires pour votre parc, vous pouvez les ajouter ici. Suivez les étapes pour spécifier d'autres fournisseurs d'identité.
Mettre à jour la configuration
- Cliquez sur Mettre à jour la configuration. Cela permet d'installer GKE Identity Service si nécessaire (clusters EKS uniquement, GKE Identity Service est déjà installé par défaut sur les clusters Anthos) et d'appliquer la configuration du client aux clusters sélectionnés.
gcloud
Créer le fichier de configuration
GKE Identity Service utilise un type de ressource personnalisée Kubernetes (CRD) appelé ClientConfig pour la configuration du cluster, avec des champs pour toutes les informations dont GKE Identity Service a besoin pour interagir avec le fournisseur d'identité.
Les sections suivantes fournissent les configurations pour OIDC et LDAP dans lesquelles vous créez avec votre configuration un fichier nommé auth-config.yaml
.
OIDC
Le fichier suivant montre à la fois une configuration oidc
et une configuration azuread
. Pour savoir quand utiliser oidc
ou azuread
, 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: NAME
proxy: PROXY_URL
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
Si vous avez configuré plusieurs fournisseurs d'identité, vous pouvez répertorier plusieurs configurations d'authentification dans le fichier auth-config.yaml
sous l'ancre authentication
, au même format que dans la configuration précédente.
Le tableau suivant décrit les champs de l'objet oidc
et azuread
ClientConfig. La plupart des champs sont facultatifs. Les champs que vous devez ajouter dépendent de votre fournisseur d'identité et des options de configuration choisies par l'administrateur de la plate-forme lors de la configuration du fournisseur pour GKE Identity Service.
Champ | Obligatoire | Description | Format |
---|---|---|---|
nom | oui | Nom que vous souhaitez utiliser pour identifier cette configuration, généralement le nom du fournisseur d'identité. Le nom d'une configuration 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. | Chaîne |
certificateAuthorityData | Non | Si fournie par votre administrateur de plate-forme, une chaîne de certificat encodée au format PEM pour le fournisseur d'identité. Incluez la chaîne obtenue dans certificateAuthorityData en tant que ligne unique. |
Chaîne |
clientID | Oui | Identifiant du client renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur. | Chaîne |
clientSecret | Oui | Le secret du client renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur. | Chaîne |
deployCloudConsoleProxy | Non | Indique si un proxy est déployé et permet à la console Google Cloud de se connecter à un fournisseur d'identité sur site qui n'est pas accessible publiquement sur Internet. Par défaut, cette valeur est définie sur false . |
Booléen |
extraParams | Non | Paramètres de clé=valeur supplémentaires à envoyer au fournisseur d'identité, spécifiés sous forme de liste séparée par des virgules (par exemple, "prompt=consent,access_type=offline"). | Liste d'éléments séparés par une virgule |
enableAccessToken | Non | Si cette option est activée, GKE Identity Service peut utiliser le point de terminaison userinfo du fournisseur d'identité pour obtenir des informations sur les groupes lorsqu'un utilisateur se connecte à partir de la ligne de commande. Cela vous permet d'utiliser des groupes de sécurité pour l'autorisation si vous avez un fournisseur (comme Okta) qui fournit des revendications de groupe à partir de ce point de terminaison. Si ce champ n'est pas défini, la valeur correspond à false . |
Booléen |
groupsClaim | Non | La revendication JWT (nom du champ) que votre fournisseur utilise pour renvoyer les groupes de sécurité d'un compte. | Chaîne |
groupPrefix | Non | Le 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 d'accès si vous avez des configurations pour plusieurs fournisseurs d'identité (généralement le nom du fournisseur). | Chaîne |
issuerURI | Oui | L'URI vers lequel les requêtes d'autorisation sont envoyées à votre fournisseur d'identité. L'URI doit utiliser le protocole HTTPS. | Chaîne d'URL |
kubectlRedirectURI | Oui | Le port et l'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 format "http://localhost:PORT/callback". | Chaîne d'URL |
scopes | Oui | Niveaux d'accès supplémentaires à envoyer au fournisseur OpenID. Par exemple, Microsoft Azure et Okta nécessitent le niveau d'accès offline_access . |
Liste d'éléments séparés par une virgule |
userClaim | Non | La revendication JWT (nom du champ) utilisée par votre fournisseur pour identifier un compte utilisateur. Si vous ne spécifiez pas de valeur ici, GKE Identity Service 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 our 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. | Chaîne |
userPrefix | Non | Le 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. | Chaîne |
locataire | Oui | Le type de compte Azure AD à authentifier. Les valeurs acceptées sont l'ID de locataire ou le nom du locataire pour les comptes appartenant à un locataire spécifique. Le nom du locataire est également appelé domaine principal. Pour savoir comment trouver ces valeurs, consultez la section Rechercher l'ID de locataire Microsoft Azure AD et le nom de domaine principal. | Chaîne |
proxy | Non | 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 . |
Chaîne |
LDAP
Le fichier 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: PASSWORD
Le tableau suivant décrit les champs de l'objet ldap
ClientConfig. Les champs que vous devez ajouter dépendent de votre fournisseur d'identité et des options de configuration choisies par l'administrateur de votre plate-forme lors de la configuration du fournisseur pour GKE Identity Service.
Champ | Obligatoire | Description | Format |
---|---|---|---|
nom | oui | Nom permettant d'identifier cette configuration LDAP | Chaîne |
Serveur | |||
hôte | Oui | Nom d'hôte ou adresse IP du serveur LDAP. S'il n'est pas spécifié, le port est facultatif et est défini par défaut sur 389. Par exemple, ldap.server.example.com ou 10.10.10.10:389 .
|
Chaîne |
connectionType | oui | Type de connexion LDAP à utiliser lorsque vous vous connectez au serveur LDAP Si starttls ou ldaps est spécifié, le champ certificateAuthorityData ne doit pas être vide.
|
Chaîne |
certificateAuthorityData | Obligatoire pour certains types de connexions LDAP | Contient un certificat d'autorité de certification, encodé en base64 et au format PEM pour le serveur LDAP. Ces éléments ne doivent être fournis que pour les connexions ldaps et startTLS .
|
Chaîne |
user | |||
baseDN | Oui | Emplacement de la sous-arborescence du répertoire LDAP dans lequel rechercher les entrées utilisateur. | Chaîne au format DN. |
loginAttribute | no | Nom de l'attribut correspondant au nom d'utilisateur d'entrée. Cela permet de trouver l'utilisateur dans la base de données LDAP, par exemple (<LoginAttribute>=<username>) , et est combiné au champ de filtre facultatif. La valeur par défaut est userPrincipalName .
|
Chaîne |
filter | no | Filtre facultatif à appliquer lors de la recherche d'utilisateur. Il permet de restreindre les comptes utilisateur autorisés à se connecter. Si cette valeur n'est pas spécifiée, elle prend la valeur par défaut de (objectClass=User) .
|
Chaîne |
identifierAttribute | no | Détermine l'attribut à utiliser comme identité de l'utilisateur après son authentification.
Ceci est différent du champ loginAttribute qui permet aux utilisateurs de se connecter avec un nom d'utilisateur, mais dont l'identifiant réel est une adresse e-mail ou un nom distinctif (DN). Par exemple, définir loginAttribute sur sAMAccountName et identifierAttribute sur userPrincipalName permet à un utilisateur de se connecter en tant que bsmith , mais les règles RBAC réelles pour l'utilisateur seraient écrites en tant que bsmith@example.com .
L'utilisation de userPrincipalName est recommandée, car cette valeur sera unique pour chaque utilisateur. Si aucune valeur n'est spécifiée, la valeur par défaut est userPrincipalName .
|
Chaîne |
group (champ facultatif) | |||
baseDN | oui | Emplacement de la sous-arborescence du répertoire LDAP dans lequel rechercher les entrées de groupe. | Chaîne |
filter | no | Filtre facultatif à utiliser lors de la recherche de groupes auxquels un utilisateur appartient. Il peut être utilisé pour ne rechercher explicitement que certains groupes afin de réduire le nombre de groupes renvoyés pour chaque utilisateur. La valeur par défaut est (objectClass=Group) .
|
Chaîne |
identifierAttribute | no | Nom d'identification de chaque groupe auquel un utilisateur appartient. Par exemple, si ce champ est défini sur distinguishedName , les RBAC et autres attentes du groupe doivent être écrites en tant que noms de domaine complets. Si aucune valeur n'est spécifiée, la valeur par défaut est distinguishedName .
|
Chaîne |
serviceAccount/simpleBindCredentials | |||
dn | oui | Nom distinctif de l'utilisateur du compte de service. | Chaîne |
mot de passe | oui | Mot de passe de l'utilisateur du compte de service. | Chaîne |
Activer GKE Identity Service
Vous pouvez également activer GKE Identity Service avec une configuration par défaut au niveau du parc. Avec cette configuration, la configuration que vous spécifiez est automatiquement appliquée à chaque nouveau cluster enregistré dans votre parc. Pour en savoir plus sur les configurations par défaut au niveau du parc, consultez Configurer les paramètres par défaut au niveau du parc.
Pour activer GKE Identity Service pour votre projet, exécutez la commande suivante :
gcloud container fleet identity-service enable
Cette action crée une instance de contrôleur GKE Identity Service pour gérer le cycle de vie de GKE Identity Service dans les clusters de votre parc. Vous pouvez exécuter cette commande une seule fois par projet afin d'utiliser GKE Identity Service avec tous les clusters compatibles enregistrés dans votre parc de projets.
Appliquer la configuration à un cluster
Pour installer GKE Identity Service si nécessaire (clusters EKS uniquement, GKE Identity Service est déjà installé par défaut sur les clusters Anthos) et appliquer la configuration à un cluster, exécutez la commande suivante :
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Remplacez CLUSTER_NAME
par le nom unique de votre cluster dans le parc.
Après avoir appliqué la configuration du cluster, celle-ci est gérée par le contrôleur GKE Identity Service et est considérée comme la "source de référence". Toute modification locale apportée à la configuration du client GKE Identity Service est rapprochée par le contrôleur de la configuration spécifiée dans cette configuration.
Sachez que si vous disposez déjà d'une configuration d'options d'authentification sur votre cluster, les conditions suivantes s'appliquent :
- Si vous avez des configurations existantes au niveau du cluster pour les fournisseurs OIDC, l'application du contrôle GKE Identity Service au niveau du parc écrasera toutes vos spécifications d'authentification existantes.
- 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.
Si vous ne souhaitez plus que le contrôleur GKE Identity Service 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 de GKE Identity Service.
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 GKE Identity Service avec Azure AD. Cette configuration permet à GKE Identity Service 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 à GKE Identity Service 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 la section Configuration avancée pour Azure AD.
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
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
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 à GKE Identity Service 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 activer GKE Identity Service avec une configuration par défaut au niveau du parc. Avec cette configuration, GKE Identity Service est activé sur chaque nouveau cluster GKE sur Google Cloud enregistré lors de la création du cluster ou du cluster Anthos avec la configuration spécifiée. Pour en savoir plus sur la gestion de la configuration au niveau du parc, consultez la page Gérer les fonctionnalités au niveau du parc.
Pour configurer GKE Identity Service avec une configuration par défaut au niveau du parc, procédez comme suit :
Créez un fichier nommé
fleet-default.yaml
et renseignez-le conformément à la section Créer le fichier de configuration.Activez GKE Identity Service avec une configuration par défaut au niveau du parc :
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Pour modifier la configuration par défaut existante au niveau du parc ou en ajouter une si GKE Identity Service est déjà activé dans votre parc sans configuration par défaut au niveau du parc, exécutez la commande suivante :
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Les clusters enregistrés avant l'entrée en vigueur de la configuration par défaut au niveau du parc n'héritent pas automatiquement de la configuration par défaut. Si vous souhaitez appliquer la configuration par défaut à un cluster appartenant à cette classe de clusters, exécutez la commande suivante :
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Pour supprimer la configuration par défaut au niveau du parc, exécutez la commande suivante :
gcloud container fleet identity-service delete --fleet-default-member-config
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 bien été 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 Fonctionnalités de GKE Enterprise.
Accéder à la page Gestion des fonctionnalités GKE Enterprise
Toutes les fonctionnalités activées sont indiquées comme Activée dans la liste "Fonctionnalités".
Cliquez sur DÉTAILS dans la fonctionnalité Identity Service. Un panneau d'informations affiche l'état de vos clusters enregistrés.
gcloud
Exécutez la commande ci-dessous.
gcloud container fleet identity-service describe
Configurer l'accès des utilisateurs
Après avoir configuré les clusters, procédez à la configuration de l'accès des utilisateurs.
Désactiver la gestion du service GKE Identity au niveau du parc
Si vous ne souhaitez plus que Google Cloud gère la configuration et le cycle de vie de GKE Identity Service, vous pouvez désactiver cette fonctionnalité. Le fait de désactiver la gestion au niveau du parc n'entraîne pas la suppression de GKE Identity Service ou de votre configuration d'authentification sur le cluster, ce qui signifie que les utilisateurs peuvent toujours s'authentifier auprès du cluster à l'aide du fournisseur d'identité tiers configuré. Toutefois, si vous effectuez des modifications manuelles du cluster dans la configuration ou les ressources de GKE Identity Service, ces modifications ne sont plus rapprochées d'un état correspondant à une source de vérité unique.
Désactiver la gestion au niveau du parc pour un cluster
Pour désactiver la gestion au niveau du parc pour un cluster, exécutez la commande suivante :
gcloud container fleet identity-service delete --membership=CLUSTER_NAME
...où CLUSTER_NAME
est le nom unique de votre cluster au sein du parc.
Désactiver la gestion au niveau du parc pour un parc
Procédez comme suit pour désactiver la gestion de GKE Identity Service au niveau de votre parc.
Console
Dans la console Google Cloud, accédez à la page Fonctionnalités de GKE Enterprise.
Dans la table Fonctionnalités, cliquez sur Détails à la ligne Identity Service, puis sur Désactiver GKE Identity Service dans le volet qui s'affiche.
gcloud
Exécutez la commande ci-dessous.
gcloud container fleet identity-service disable
Après avoir désactivé la fonctionnalité pour votre parc, vous ne pouvez plus afficher ou mettre à jour l'état de GKE Identity Service d'un cluster dans la console Google Cloud ou en utilisant gcloud
.
Dépannage
Si vous rencontrez des problèmes lors de cette configuration, consultez le guide de dépannage.