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 contient des instructions sur la configuration de 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 installer kubectl, 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.

  • 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.

  • Activer les API GKE Hub and Kubernetes Engine.

    Activer les API

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 pour certains fournisseurs d'identité couramment utilisés, consultez la section Configurations spécifiques à un 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

  1. Dans la console Google Cloud, accédez à la page Fonctionnalités de GKE Enterprise.

    Accéder aux fonctionnalités de GKE Enterprise

  2. 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

  1. 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.
  2. Cliquez sur Mettre à jour le service de gestion des identités pour ouvrir le volet de configuration.
  3. 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é.
  4. 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 dispose d'une configuration GKE Identity Service que vous souhaitez utiliser, vous pouvez choisir de la copier dans les clusters sélectionnés. Pour créer une toute nouvelle configuration, suivez les instructions correspondant au fournisseur de votre choix, 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

  1. Sélectionnez New Open ID Connect (Nouvelle connexion Open ID) pour créer une configuration OIDC.
  2. 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.
  3. Spécifiez l'ID client renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur dans le champ ID client.
  4. 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.
  5. 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é.
  6. Cliquez sur Suivant pour définir les attributs OIDC.

Azure AD

  1. Sélectionnez New Azure Active Directory (Nouvel annuaire Azure Active Directory) pour créer une configuration Azure AD.
  2. 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.
  3. Spécifiez l'ID client renvoyé lors de l'enregistrement de GKE Identity Service auprès de votre fournisseur dans le champ ID client.
  4. 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.
  5. Spécifiez le locataire qui est le compte Azure AD à authentifier dans le locataire.
  6. Cliquez sur Suivant pour définir les attributs Azure AD.

LDAP

  1. Sélectionnez LDAP (LDAP) pour créer une configuration LDAP.
  2. 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.
  3. Cliquez sur Suivant.
  4. Indiquez le nom d'hôte (obligatoire), le type de connexion LDAP et le certificat CA encodé en base64 du serveur LDAP.
  5. Cliquez sur Suivant pour configurer le serveur.
  6. Spécifiez le nom distinctif, le filtre, les attributs de connexion et d'identifiant de l'utilisateur.
  7. Cliquez sur Suivant pour définir les informations sur l'utilisateur.
  8. Si vous choisissez d'utiliser des groupes, spécifiez le nom distinctif, le filtre et l'attribut identifiant du groupe.
  9. Cliquez sur Suivant pour définir les détails du groupe.
  10. Spécifiez le nom d'utilisateur et le mot de passe du compte de service.
  11. Cliquez sur OK 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 votre administrateur de plate-forme lors de la configuration du fournisseur pour GKE Identity Service.

OIDC

  • Renseignez les attributs de configuration :

    • URI de redirection kubectl: URL de redirection et port utilisés par la gcloud CLI et spécifiés par votre administrateur de plate-forme lors de l'enregistrement, généralement au format http://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.

Azure AD

  • Renseignez les attributs de configuration :

    • URI de redirection kubectl: URL de redirection et port utilisés par la gcloud CLI et spécifiés par votre administrateur de plate-forme lors de l'enregistrement, généralement au format http://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.

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 des fournisseurs d'identité supplémentaires.

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 lesquels vous créez un fichier appelé auth-config.yaml avec votre configuration.

OIDC

Le fichier suivant présente à la fois une configuration oidc et une configuration azuread. Pour savoir quand utiliser oidc ou azuread, consultez la section Configurations spécifiques au fournisseur.

  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 lister 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 votre administrateur de 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 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 disposez d'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 est considérée comme 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 URL de redirection et port utilisés par gcloud CLI et spécifiés par l'administrateur de la plate-forme lors de l'enregistrement, généralement sous la forme "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 champ d'application 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 ClientConfig ldap. Les champs que vous devez ajouter dépendent de votre fournisseur d'identité et des options de configuration choisies par votre administrateur de 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. Il ne doit être fourni que pour les connexions ldaps et startTLS. Chaîne
utilisateur
baseDN Oui Emplacement de la sous-arborescence du répertoire LDAP dans lequel rechercher les entrées utilisateur. Chaîne au format DN.
loginAttribute 0 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 userPrincipleName. 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 0 Détermine quel attribut utiliser comme identité de l'utilisateur après son authentification. Ce champ 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 complet. Par exemple, définir loginAttribute sur sAMAccountName et identifierAttribute sur userPrincipleName permettrait à un utilisateur de se connecter en tant que bsmith, mais les stratégies RBAC réelles de cet utilisateur seraient écrites comme bsmith@example.com. Nous vous recommandons d'utiliser userPrincipleName, car il est unique pour chaque utilisateur. Si aucune valeur n'est spécifiée, la valeur par défaut est userPrincipleName. 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. Grâce à 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.

Une fois la configuration du cluster appliquée, 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". Toutes les modifications locales apportées à la configuration du client GKE Identity Service sont rapprochées par le contrôleur avec la configuration spécifiée dans cette configuration.

Sachez que si vous disposez déjà d'une configuration sur votre cluster pour toutes les options d'authentification, 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 disposez de configurations au niveau du cluster pour des fournisseurs non compatibles avec une 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 section 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 informations.

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 sont obligatoires.

...
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 :

  1. Créez un fichier nommé fleet-default.yaml et renseignez-le conformément à la section Créer le fichier de configuration.

  2. 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
    
  3. 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
    
  4. Les clusters enregistrés avant 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, exécutez la commande suivante:

    gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
    
  5. 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

  1. Dans la console Google Cloud, accédez à la page Fonctionnalités de GKE Enterprise.

    Accéder à la gestion des fonctionnalités de GKE Enterprise

    Toutes les fonctionnalités activées sont indiquées comme Activée dans la liste "Fonctionnalités".

  2. 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 apportez des modifications manuelles locales au cluster à la configuration ou aux ressources GKE Identity Service, ces modifications ne sont plus rapprochées d'un état correspondant à une source unique de référence.

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

  1. Dans la console Google Cloud, accédez à la page Fonctionnalités de GKE Enterprise.

    Accéder aux fonctionnalités de GKE Enterprise

  2. 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 la configuration, consultez le guide de dépannage.