Contrôle des accès


Lorsque vous créez un projet Google Cloud, vous êtes le seul utilisateur du projet. Par défaut, aucun autre utilisateur n'a accès à votre projet ou à ses ressources, y compris aux ressources Google Kubernetes Engine (GKE). GKE accepte plusieurs options de gestion de l'accès aux ressources de votre projet et de ses clusters par le biais du contrôle des accès basé sur les rôles (RBAC, Role-Based Access Control).

Ces mécanismes présentent des fonctionnalités communes, mais ils ciblent différents types de ressources. Chaque mécanisme est expliqué dans une section ci-dessous, mais pour résumer :

  • Kubernetes RBAC est intégré à Kubernetes et permet d'accorder des autorisations précises pour des objets de clusters Kubernetes. Les autorisations existent en tant qu'objets ClusterRole ou Role dans le cluster. Les objets RoleBinding attribuent des rôles aux utilisateurs Kubernetes , aux utilisateurs Google Cloud, aux comptes de service IAM ou à des Google Groupes.

    Si vous utilisez principalement GKE et que vous avez besoin de contrôler avec précision chaque objet et opération de votre cluster, Kubernetes RBAC constitue le meilleur choix.

  • IAM gère les ressources Google Cloud, y compris les clusters, et les types d'objets dans les clusters. Les autorisations sont attribuées aux comptes principaux IAM.

    Aucun mécanisme ne permet d'accorder des autorisations pour des objets Kubernetes spécifiques dans IAM. Par exemple, vous pouvez autoriser un utilisateur à créer des objets CustomResourceDefinition (CRD). Toutefois, vous ne pouvez pas lui accorder le droit de créer un seul objet CRD spécifique, ni limiter la création à un espace de noms ou à un cluster spécifique du projet. Un rôle IAM octroie des droits sur tous les clusters du projet, ou bien sur tous les clusters de tous les projets enfants s'il est appliqué au niveau du dossier.

    Si vous utilisez plusieurs composants Google Cloud et que vous n'avez pas besoin de gérer de façon précise des autorisations spécifiques à Kubernetes, IAM constitue un bon choix.

Kubernetes RBAC

Kubernetes étant compatible avec RBAC, vous pouvez créer des rôles ultraprécis qui existent dans le cluster Kubernetes. Un rôle peut être limité à un objet Kubernetes spécifique ou à un type d'objet Kubernetes, et il définit les actions (appelées verbes) que le rôle autorise concernant cet objet. Un RoleBinding est également un objet Kubernetes, et il attribue des rôles aux utilisateurs. Un utilisateur GKE peut être n'importe lequel des suivants :

  • Utilisateur Google Cloud
  • Compte de service IAM
  • Compte de service Kubernetes
  • Utilisateur Google Workspace
  • Groupe Google Workspace
  • Utilisateurs authentifiés à l'aide de certificats clients X509

Pour en savoir plus, consultez la page Contrôle des accès basé sur les rôles.

IAM

IAM vous permet de définir des rôles et de les attribuer à des comptes principaux. Un rôle est un ensemble d'autorisations qui, lorsqu'il est attribué à un compte principal, contrôle les accès à une ou plusieurs ressources Google Cloud. Les rôles sont répartis en trois grandes catégories :

Un compte principal peut être l'un des éléments suivants :

  • Compte utilisateur
  • Compte de service
  • Groupe Google Workspace
  • Domaine Google Workspace
  • Domaine Cloud Identity

Une stratégie IAM attribue un ensemble d'autorisations à un ou plusieurs comptes principaux Google Cloud.

Vous pouvez aussi utiliser IAM pour créer et configurer des comptes de service, qui sont des comptes Google Cloud associés à votre projet et pouvant effectuer des tâches en votre nom. Les comptes de service se voient attribuer des rôles et des autorisations de la même manière que les utilisateurs humains.

Les comptes de service fournissent également d'autres fonctionnalités. Pour en savoir plus, consultez la page Créer des stratégies IAM.

Recommandations IAM

Pensez à utiliser les rôles IAM prédéfinis suivants pour faciliter les scénarios courants:

Pour obtenir la liste des rôles IAM prédéfinis disponibles, consultez la section Rôles GKE prédéfinis.

Vous pouvez également envisager de créer un compte de service IAM personnalisé pour vos nœuds à utiliser à la place du compte de service Compute Engine par défaut. Accordez au compte de service personnalisé les autorisations minimales requises pour que GKE fonctionne. Pour obtenir des instructions, consultez la section Utiliser le principe du moindre privilège pour les comptes de service IAM.

Interaction d'IAM avec Kubernetes RBAC

IAM et Kubernetes RBAC fonctionnent conjointement pour vous aider à gérer les accès à votre cluster. RBAC contrôle l'accès au niveau du cluster et de l'espace de noms, tandis que IAM fonctionne au niveau du projet. Une entité doit disposer d'autorisations suffisantes, à ces deux niveaux, pour travailler sur les ressources du cluster.

Étape suivante