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 pour configurer GKE Identity Service au niveau du parc sur vos clusters en utilisant le fournisseur d'identité de votre choix. Les instructions de ce document partent du principe que GKE 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 la CLI Google Cloud, 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.

  • Enable the GKE Hub and Kubernetes Engine APIs.

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

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 à la page "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é. Si vous avez configuré des valeurs par défaut au niveau du parc, la configuration revient à la valeur par défaut. Pour en savoir plus, consultez la section Configurer les valeurs par défaut au niveau du parc.
  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 copier cette configuration dans les clusters sélectionnés. Pour créer une configuration entièrement nouvelle, suivez les instructions concernant le fournisseur de votre choix, comme indiqué dans la section suivante.

Définir les détails du fournisseur

Les détails de fournisseur que vous devez ajouter dépendent du type de fournisseur d'identité que vous souhaitez utiliser pour votre configuration.

OIDC

  1. Sélectionnez Nouveau Open ID Connect 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 Nouvelle configuration 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 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, l'attribut de connexion et l'attribut d'identifiant de l'utilisateur.
  7. Cliquez sur Suivant pour définir les détails de l'utilisateur.
  8. Si vous choisissez d'utiliser des groupes, spécifiez le nom distinctif, le filtre et l'attribut d'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 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 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 : 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 format http://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, GKE Identity Service 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.

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 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 votre 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

SAML

Le fichier suivant présente 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: <>

Le tableau suivant décrit les champs de l'objet saml 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 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
idpEntityID Oui ID d'entité SAML pour le fournisseur SAML, spécifié au format URI. Exemple : https://www.idp.com/saml. Chaîne d'URL
idpSingleSignOnURI Oui Point de terminaison SSO du fournisseur SAML, spécifié au format URI. Exemple : https://www.idp.com/saml/sso. Chaîne d'URL
idpCertificateDataList Oui Correspond aux certificats du fournisseur d'identité utilisés pour vérifier la réponse SAML. Ces certificats doivent être encodés en base64 standard et au format PEM. Deux certificats maximum sont acceptés pour faciliter la rotation des certificats du fournisseur d'identité. Chaîne
userAttribute Non Nom de l'attribut dans la réponse SAML contenant le nom d'utilisateur. Chaîne
groupsAttribute Non Nom de l'attribut dans la réponse SAML contenant les informations relatives au groupe de l'utilisateur. 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
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
attributeMapping Non Mappage d'attributs utilisateur supplémentaires. 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
preferredAuthentication Non Nom de la méthode d'authentification préférée configurée dans le cluster. 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 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 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 userPrincipleName 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 userPrincipleName 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 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. 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 la section 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. Lors de l'exécution de cette commande, la configuration est gérée par le contrôleur GKE Identity Service. Toutes les modifications locales apportées à la configuration du client GKE Identity Service seront appliquées par le contrôleur à la configuration spécifiée.

Cela permet à GKE Identity Service de récupérer des informations Google Groupes pour les comptes utilisateur se connectant avec leur ID Google. Cette configuration s'applique à GKE sur VMware et à Google Distributed Cloud Virtual pour Bare Metal à partir de la version 1.13 de GKE Enterprise. Pour en savoir plus sur la fonctionnalité Google Groupes, consultez la section Configurer la passerelle de connexion avec Google Groupes.

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 d'une configuration GKE Identity Service au niveau du parc écrase 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
      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 du 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 GKE sur VMware et Google Distributed Cloud Virtual pour Bare Metal.

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 cluster GKE 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 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
    
  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 de gestion des identités

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 de gestion des identités 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 page 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é Service d'identité. Un panneau de détails 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

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

    Accéder à la page "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 cette configuration, consultez le guide de dépannage.