Gérer l'accès aux clusters standards

Ce document explique comment accorder l'accès et gérer les autorisations dans les clusters standards de Google Distributed Cloud (GDC) sous air gap. Les clusters standards sont des environnements Kubernetes configurables à l'échelle du projet, avec des services par défaut minimaux qui offrent une plus grande flexibilité et un meilleur contrôle pour les charges de travail personnalisées.

Pour en savoir plus sur la gestion du cycle de vie des clusters standards, comme la création ou la suppression de clusters, consultez Créer un cluster standard et Supprimer un cluster standard.

Pour en savoir plus sur les clusters standards et les autres types de clusters, consultez Configurations de clusters Kubernetes.

Ce document s'adresse aux audiences du groupe des opérateurs d'applications, comme les opérations de développement ou les data scientists, qui doivent gérer et sécuriser les ressources dans les projets GDC. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

Avant de gérer l'accès aux clusters standards, vous devez disposer des autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Pour obtenir les autorisations nécessaires pour gérer l'accès aux clusters standards, demandez les rôles suivants en fonction des tâches que vous devez effectuer :

  • Pour accorder et gérer les liaisons de règles IAM au niveau du projet pour les clusters standards, contactez votre administrateur IAM de l'organisation afin de demander le rôle Administrateur IAM du projet (project-iam-admin).
  • Pour gérer le contrôle des accès basé sur les rôles (RBAC) Kubernetes dans un cluster et déployer des charges de travail dans un cluster standard, demandez à votre administrateur de projet IAM de vous attribuer le rôle Administrateur de cluster (cluster-admin).

Préparer votre environnement

Accorder des autorisations pour l'accès standard au cluster

Un utilisateur disposant du rôle Administrateur de projet IAM (project-iam-admin) peut accorder à d'autres utilisateurs les rôles nécessaires pour gérer les accès dans les clusters standards :

  1. Connectez-vous avec votre fournisseur d'identité configuré à l'aide de la gcloud CLI.

  2. Attribuez à l'utilisateur le rôle Administrateur de cluster (cluster-admin) pour le projet. Cette commande associe l'utilisateur au rôle, ce qui lui permet de gérer les accès au sein du cluster standard.

    Pour en savoir plus sur les rôles, consultez les pages Descriptions des rôles prédéfinis et Définitions des rôles pour les projets.

    gdcloud projects add-iam-policy-binding PROJECT \
      --role=ROLE \
      --member=user:USER_ACCOUNT
    

    Remplacez les variables suivantes :

    • PROJECT : nom du projet dans lequel le cluster standard existe.
    • ROLE : nom du rôle que vous souhaitez attribuer (par exemple, cluster-admin).
    • USER_ACCOUNT : compte utilisateur auquel vous souhaitez attribuer le rôle, y compris le préfixe du fournisseur d'identité associé à votre organisation (par exemple, idpprefix-user@example.com). Le préfixe spécifique utilisé dépend de la configuration IdP de votre organisation. Pour en savoir plus, consultez Se connecter à un fournisseur d'identité.

    L'exemple suivant accorde le rôle Administrateur de cluster à user@example.com, en supposant que le préfixe du fournisseur d'identité est fop- pour le projet foo :

    gdcloud projects add-iam-policy-binding foo \
      --role=cluster-admin \
      --member=user:fop-user@example.com
    

Gérer l'accès dans le cluster standard

Un utilisateur disposant du rôle Administrateur du cluster (cluster-admin) peut accorder l'accès dans un cluster standard :

  1. Connectez-vous avec votre fournisseur d'identité configuré à l'aide de la gcloud CLI.

  2. Générez un fichier kubeconfig pour un cluster Standard à l'aide de l'option --standard. Cette option est requise pour cibler un cluster standard.

    export KUBECONFIG=KUBECONFIG_FILE
    gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECT
    

    Remplacez les variables suivantes :

    • KUBECONFIG_FILE : chemin d'accès au fichier kubeconfig, par exemple standard-cluster-kubeconfig.yaml.
    • STANDARD_CLUSTER_NAME : nom du cluster standard.
    • PROJECT : nom du projet dans lequel le cluster standard existe.
  3. Définissez les autorisations dans le cluster standard à l'aide de kubectl.

    Les utilisateurs disposant des autorisations cluster-admin peuvent créer des objets Role et ClusterRole personnalisés. Pour accorder ces autorisations, ils peuvent créer les objets Rolebinding et ClusterRoleBinding correspondants afin d'associer les rôles à des sujets spécifiques, tels que des utilisateurs ou des comptes de service.

    L'exemple suivant utilise kubectl pour créer un Role personnalisé nommé test-role dans l'espace de noms test :

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: test-role
      namespace: test
    rules:
    - apiGroups:
      - ""
      resources:
      - configmaps
      verbs:
      - get
    EOF
    

    L'exemple suivant crée le RoleBinding pour le Role nommé test-role dans l'espace de noms test. Il accorde des autorisations à l'utilisateur alice@example.com avec le préfixe du fournisseur d'identité fop-, ainsi qu'à un ServiceAccount nommé my-service-account dans l'espace de noms default :

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: test-role-binding
      namespace: test
    subjects:
    - kind: User
      name: fop-alice@example.com
      apiGroup: rbac.authorization.k8s.io
    - kind: ServiceAccount
      name: my-service-account
      namespace: default
    roleRef:
      kind: Role
      name: test-role
      apiGroup: rbac.authorization.k8s.io
    EOF