Se connecter au cluster EKS associé

Ce document décrit trois méthodes de connexion à votre cluster EKS associé:

Ces trois méthodes de connexion à un cluster enregistré sont activées par un service Google appelé "passerelle de connexion". Pour en savoir plus sur la passerelle Connect, consultez la section Se connecter aux clusters enregistrés avec la passerelle Connect.

Avant de commencer

Avant d'utiliser l'une des méthodes, assurez-vous d'avoir associé votre cluster. Pour en savoir plus, consultez Associer votre cluster EKS.

Avant de passer à la méthode n° 2 ou n° 3, vous devez remplir des conditions préalables supplémentaires. Pour en savoir plus, consultez les sections suivantes.

Avant de commencer, méthode n° 2

Pour utiliser la méthode n° 2 de connexion au cluster associé, assurez-vous de remplir les conditions préalables suivantes:

  • Dernière version de Google Cloud CLI. Pour en savoir plus sur la mise à jour de gcloud CLI, consultez la page gcloud components update.
  • Versions des clusters associés 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 ou ultérieures.

Avant de commencer, méthode n° 3

Pour utiliser la méthode n° 3 de connexion au cluster associé, assurez-vous de remplir les conditions préalables suivantes:

  1. Vérifiez que vous disposez de la dernière version de la Google Cloud CLI. Pour en savoir plus sur la mise à jour de gcloud CLI, consultez la page gcloud components update.

  2. Assurez-vous d'utiliser les versions de cluster associées 1.27.0-gke.5, 1.28.0-gke.2 ou une version ultérieure.

  3. Configurez la fédération des identités des employés (afin que les utilisateurs ou les groupes externes puissent utiliser l'API des clusters associés à GKE):

  4. Facultatif: attribuez à vos utilisateurs ou groupes externes les rôles Identity and Access Management (IAM) appropriés. Cette étape n'est nécessaire que si vous souhaitez autoriser des utilisateurs ou des groupes à créer ou mettre à jour des clusters. Elle n'est pas nécessaire pour accéder simplement à un cluster.

    Notez que les rôles sont des ensembles d'autorisations. Lorsque vous attribuez un rôle à une entité (utilisateur, groupe ou compte de service), vous lui accordez toutes les autorisations contenues dans ce rôle.

    Utilisateurs

    Pour les utilisateurs individuels, vous devez attribuer le rôle gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • WORKFORCE_POOL_ID: ID qui identifie de manière unique votre pool d'identités d'employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les instructions recommandées fournies dans la documentation IAM, sous Paramètres de requête.
    • SUBJECT_VALUE: ID permettant d'identifier de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle que alex@cymbalgroup.com.

    Groupes

    Pour les groupes, vous devez attribuer le rôle gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • WORKFORCE_POOL_ID: ID qui identifie de manière unique votre pool d'identités d'employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les instructions recommandées fournies dans la documentation IAM, sous Paramètres de requête.
    • GROUP_ID: ID qui identifie de manière unique un groupe externe.

    Pour en savoir plus sur les rôles et autorisations d'API requis pour les clusters associés à GKE, consultez la page Rôles et autorisations d'API.

Méthode n° 1: Se connecter au cluster associé en tant qu'utilisateur Google

Pour vous connecter à un cluster associé en tant qu'utilisateur Google, procédez comme suit:

  1. Activez les API connectgateway et cloudresourcemanager à l'aide de la commande suivante:

     gcloud services enable --project=PROJECT_ID \
         connectgateway.googleapis.com \
         cloudresourcemanager.googleapis.com
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

  2. Configurez et appliquez des règles RBAC automatiquement ou manuellement:

    • Méthode automatique: si, lorsque vous avez associé votre cluster, vous avez spécifié des utilisateurs Google dans le champ --admin-users de la commande gcloud container attached clusters register, ces utilisateurs ont automatiquement reçu des droits d'administrateur sur le cluster. Vous pouvez donc ignorer cette étape.

    • Méthode manuelle: configurez manuellement des règles RBAC pour des utilisateurs Google individuels en créant un fichier manifeste Kubernetes YAML. Pour en savoir plus, consultez la section Utiliser l'autorisation RBAC.

  3. Obtenez un fichier de configuration Kubernetes kubeconfig à l'aide de la commande suivante:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    Remplacez CLUSTER_NAME par le nom du cluster dont vous souhaitez obtenir les identifiants de connexion.

Une fois ces étapes effectuées, vous pouvez vous connecter au cluster associé en tant qu'utilisateur Google.

Méthode n° 2: Se connecter au cluster associé avec des groupes Google

Cette méthode vous permet de vous connecter à un cluster associé en tant que membre d'un groupe Google. En d'autres termes, vous accordez à un groupe Google l'accès à un cluster et tous les utilisateurs appartenant à ce groupe Google ont accès au cluster.

Il est plus efficace d'accorder l'accès au cluster à l'aide de Google Groupes que de créer des autorisations distinctes pour chaque utilisateur. Par exemple, supposons que vous souhaitiez ajouter 50 utilisateurs au groupe Administrateur du cluster, 75 utilisateurs à un groupe Éditeurs et 100 utilisateurs au groupe Lecteur. La méthode 1, décrite dans ce document, nécessiterait de créer des règles RBAC dans le fichier manifeste Kubernetes pour 225 utilisateurs. Cependant, la méthode 2 vous fait gagner du temps, car vous n'avez besoin de créer des règles RBAC que pour trois groupes Google.

Pour autoriser les groupes Google à se connecter à un cluster associé, procédez comme suit:

  1. Activez les API connectgateway et cloudresourcemanager à l'aide de la commande suivante:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

  2. S'il n'existe pas, créez un groupe nommé gke-security-groups dans le domaine de votre projet.

  3. Créez un ou plusieurs sous-groupes dans le groupe gke-security-groups pour l'authentification du cluster.

  4. Ajoutez des utilisateurs aux sous-groupes que vous venez de créer.

  5. Accordez des rôles IAM à Google Groupes:

    1. Sélectionnez un rôle approprié pour un groupe. Ce rôle détermine la manière dont le groupe interagit avec la passerelle de connexion. Le rôle peut être l'un des suivants: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor ou roles/gkehub.gatewayReader. Notez que vous n'accordez pas d'autorisations sur le cluster associé ici. Cette étape intervient ultérieurement. Ici, vous vous contentez de déterminer comment les utilisateurs du groupe peuvent manipuler la passerelle de connexion.

    2. Exécutez la commande suivante pour attribuer le rôle au groupe:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

      Remplacez les éléments suivants :

      • PROJECT_ID: ID de votre projet Google
      • GROUP_NAME: nom du groupe auquel accorder l'accès
      • DOMAIN: votre domaine Google Workspace
      • GATEWAY_ROLE: rôle sélectionné. Exemples : roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor ou roles/gkehub.gatewayReader.
  6. Dans un fichier manifeste Kubernetes, définissez le type d'autorisation dont dispose chaque groupe Google sur le cluster. Par exemple, le fichier manifeste suivant accorde au groupe Google cluster-admin-team le rôle d'administrateur de cluster:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-group
    subjects:
    - kind: Group
      name: cluster-admin-team@example.com
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  7. Enregistrez le fichier manifeste dans un fichier et appliquez-le au cluster en exécutant la commande suivante:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Remplacez les éléments suivants :

    • KUBECONFIG_PATH: chemin d'accès à votre fichier kubeconfig.
    • FILENAME: nom du fichier manifeste que vous avez créé.

Une fois ces étapes effectuées, les utilisateurs appartenant à certains groupes Google peuvent se connecter au cluster associé. Dans l'exemple donné, les utilisateurs appartenant au groupe Google cluster-admin-team peuvent se connecter au cluster en tant qu'administrateurs.

Méthode n° 3: Accorder l'accès aux identités externes lors de l'association ou de la mise à jour d'un cluster

La méthode n° 3 accorde l'accès aux identités externes lorsque vous associez ou mettez à jour un cluster.

Pour associer un cluster EKS, suivez la procédure décrite dans la section Associer votre cluster EKS. Pour mettre à jour un cluster EKS, suivez les étapes décrites dans la section Mettre à jour votre cluster EKS.

Lorsque vous exécutez la commande de gcloud CLI pour enregistrer ou mettre à jour un cluster, spécifiez les paramètres admin-users et/ou admin-groups comme suit:

gcloud container attached clusters [register|update] CLUSTER_NAME \
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • WORKFORCE_POOL_ID: ID qui identifie de manière unique votre pool d'identités d'employés dans Google Cloud. Lorsque vous mettez en forme l'ID, assurez-vous de suivre les instructions recommandées fournies dans la documentation IAM, sous Paramètres de requête.
  • SUBJECT_VALUE: ID permettant d'identifier de manière unique un utilisateur externe. Par exemple, l'ID peut être une adresse e-mail telle que alex@cymbalgroup.com.
  • GROUP_ID: ID qui identifie de manière unique un groupe externe.

Étapes suivantes

Pour gérer le cluster avec votre compte Cloud Identity depuis la console Google Cloud, consultez la page Se connecter à l'aide de votre identité Google Cloud.