Appliquer le moindre privilège avec des recommandations

Cette page fournit une présentation de l'outil de recommandation Cloud IAM. L'outil de recommandation Cloud IAM vous aide à appliquer le principe du moindre privilège en vous assurant que les membres disposent uniquement des autorisations dont ils ont réellement besoin.

Fonctionnement de l'outil de recommandation Cloud IAM

Cloud IAM utilise l'Outil de recommandation pour comparer les attributions de rôles au niveau du projet avec les autorisations utilisées par chaque membre au cours des 90 derniers jours. Si vous attribuez un rôle au niveau du projet à un membre et qu'il n'utilise pas toutes les autorisations de ce rôle, l'outil de recommandation Cloud IAM vous recommandera probablement d'annuler ce rôle. Si nécessaire, l'outil de recommandation Cloud IAM recommande également des rôles moins permissifs en remplacement.

L'outil de recommandation Cloud IAM utilise également le machine learning pour identifier les autorisations dont un membre aura probablement besoin à l'avenir, même si le membre n'a pas utilisé ces autorisations au cours des 90 derniers jours.

L'outil de recommandation Cloud IAM n'applique pas automatiquement les recommandations. À la place, vous devez examiner chaque recommandation, puis appliquer ou ignorer la recommandation.

L'outil de recommandation Cloud IAM n'évalue que les attributions de rôle qui ont été effectuées au niveau du projet et qui existent depuis au moins 90 jours. Il n'évalue aucun des éléments suivants :

Autorisations utilisées par chaque membre

Pour créer des recommandations, le référent Cloud IAM identifie les autorisations utilisées par chaque membre au cours des 90 derniers jours. Un membre peut utiliser une autorisation de différentes manières :

  • Directement, en appelant une API nécessitant l'autorisation

    Par exemple, la méthode roles.list dans l'API REST Cloud IAM requiert l'autorisation iam.roles.list. Lorsque vous appelez la méthode roles.list, vous utilisez l'autorisation iam.roles.list.

  • Indirectement, à l'aide deGoogle Cloud Console pour utiliser les ressources Google Cloud

    Par exemple, dans Cloud Console, vous pouvez modifier une instance de machine virtuelle (VM) Compute Engine, qui nécessite des autorisations différentes selon les paramètres que vous modifiez. Toutefois, Cloud Console affiche également les paramètres existants, ce qui nécessite l'autorisation compute.instances.get.

    Par conséquent, lorsque vous modifiez une instance de VM dans Cloud Console, vous utilisez l'autorisation compute.instances.get.

Machine learning

Parfois, un membre peut avoir besoin d'autorisations non utilisées au cours des 90 derniers jours pour effectuer son travail. Pour identifier les autorisations supplémentaires dont un membre peut avoir besoin, l'outil de recommandation Cloud IAM utilise un modèle de machine learning.

Le modèle de machine learning de l'outil de recommandation Cloud IAM est formé sur plusieurs ensembles de signaux :

  • Schémas de co-occurrence courants dans l'historique en cours d'observation : le fait qu'un utilisateur ait utilisé les autorisations A, B et C dans le passé suggère qu'A, B et C sont liées d'une manière ou d'une autre et qu'elles sont nécessaires pour mener à bien une tâche sur Google Cloud. Si le modèle de ML constate ce schéma suffisamment fréquemment, la prochaine fois qu'un autre utilisateur utilisera les autorisations A et B, le modèle suggérera qu'il pourrait également avoir besoin de l'autorisation C.

  • Connaissance du domaine telle qu'encodée dans les définitions de rôles : Cloud IAM propose des centaines de rôles prédéfinis différents spécifiques au service. Si un rôle prédéfini contient un ensemble d'autorisations, cela indique clairement que ces autorisations doivent être accordées ensemble.

En plus de ces signaux, le modèle utilise également le plongement lexical pour calculer dans quelle mesure les autorisations sont sémantiquement similaires. Les autorisations sémantiquement similaires se "rapprochent" après le plongement et sont plus susceptibles d'être accordées ensemble. Par exemple, bigquery.datasets.get et bigquery.tables.list seront très proches l'une de l'autre après le plongement.

Toutes les données utilisées dans le pipeline de machine learning de l'outil de recommandation Cloud IAM utilisent la technique k-anonymisation, ce qui signifie que les individus de l'ensemble anonymisé ne peuvent pas être identifiés de nouveau. Pour atteindre ce niveau d'anonymat, nous supprimons toutes les informations personnelles permettant d'identifier les utilisateurs, telles que l'ID utilisateur associé à chaque modèle d'utilisation des autorisations. Nous supprimons ensuite tous les schémas d'utilisation qui ne s'affichent pas assez fréquemment dans Google Cloud. Le modèle global est entraîné sur ces données rendues anonymes.

Le modèle global peut être personnalisé davantage pour chaque organisation à l'aide de l'apprentissage fédéré, un processus de machine learning qui forme des modèles de machine learning sans exporter de données.

Journaux d'audit

Lorsque vous appliquez ou refusez une recommandation, l'outil de recommandation Cloud IAM crée une entrée de journal. Vous pouvez afficher ces entrées dans l'outil de recommandation Cloud IAM, ou vous pouvez les consulter dans vos journaux d'audit Google Cloud.

Autres types de contrôles d'accès

Certains services Google Cloud proposent des contrôles d'accès distincts de Cloud IAM. Par exemple, Cloud Storage fournit des listes de contrôle d'accès (LCA), et Google Kubernetes Engine (GKE) est compatible avec le Contrôle d'accès basé sur les rôles (RBAC) Kubernetes.

L'outil de recommandation Cloud IAM n'analyse que les contrôles d'accès Cloud IAM. Si vous utilisez d'autres types de contrôles d'accès, soyez particulièrement vigilant lorsque vous examinez vos recommandations et examinez le rapport entre ces contrôles d'accès et stratégies règles Cloud IAM.

Exemples de recommandations de rôles

Les exemples suivants montrent les types de recommandations que vous pouvez recevoir.

Révoquer un rôle existant

L'utilisateur fuyo@example.com a obtenu un rôle personnalisé dans un projet. Le rôle personnalisé inclut une autorisation, iam.serviceAccounts.actAs, qui permet à fuyo@example.com d'agir en tant que compte de service. Toutefois, au cours des 90 derniers jours, fuyo@example.com n'a pas agi en tant que compte de service dans ce projet.

Par conséquent, l'outil de recommandation Cloud IAM vous suggère de retirer le rôle personnalisé de fuyo@example.com :

Remplacer un rôle existant

Le rôle Propriétaire (roles/owner) a été attribué au compte de service sur un projet. Ce rôle primitif comprend plus de 2 500 autorisations et accorde un accès quasiment illimité à un projet. Toutefois, au cours des 90 derniers jours, le compte de service n'a utilisé que quelques centaines d'autorisations.

Par conséquent, l'outil de recommandation Cloud IAM suggère de révoquer le rôle de propriétaire et de le remplacer par une combinaison de quatre autres rôles, ce qui supprime des milliers d'autorisations de remplacement :

Ajouter des autorisations suggérées par le machine learning

Le rôle Éditeur (roles/editor) a été attribué au compte de service sur un projet. Ce rôle primitif comprend plus de 2 000 autorisations et accorde un accès étendu à un projet. Toutefois, au cours des 90 derniers jours, le compte de service a utilisé moins de 10 autorisations.

L'outil de recommandation Cloud IAM vous suggère de révoquer le rôle Éditeur et de le remplacer par le rôle Administrateur des objets de l'espace de stockage (storage.objectAdmin), qui permet un contrôle total des objets dans un bucket Cloud Storage. Cette modification supprime des milliers d'autorisations accordées en excès.

Ce rôle inclut plusieurs autorisations que le compte de service n'a pas utilisées au cours des 90 derniers jours. Toutefois, grâce au machine learning, l'outil de recommandation Cloud IAM prévoit que le compte de service aura besoin de ces autorisations à l'avenir.

L'outil de recommandation Cloud IAM utilise une icône Machine Learning pour identifier ces autorisations supplémentaires. Dans cet exemple, nous avons recommandé l'autorisation resourcemanager.projects.get basée sur le machine learning :

Autorisations requises

Cette section décrit les autorisations Cloud IAM dont vous avez besoin pour travailler avec l'outil de recommandation Cloud IAM.

Afficher les recommandations

Pour afficher les recommandations de l'outil Cloud IAM, vous devez disposer des autorisations suivantes pour le projet que vous consultez :

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • resourcemanager.projects.getIamPolicy

Pour obtenir ces autorisations tout en respectant le principe du moindre privilège, demandez à votre administrateur de vous accorder les rôles prédéfinis suivants :

  • Lecteur de rôle (roles/iam.roleViewer)
  • Lecteur de l'outil de recommandation IAM (roles/recommender.iamViewer) ou Examinateur de sécurité IAM (roles/iam.securityReviewer)

Votre administrateur peut également vous accorder un rôle différent qui inclut les autorisations requises, telles qu'un rôle personnalisé ou un rôle prédéfini plus permissif.

Appliquer et ignorer des recommandations

Pour appliquer et ignorer des recommandations de l'outil Cloud IAM, vous devez disposer des autorisations suivantes pour le projet que vous gérez :

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyRecommendations.update
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Pour obtenir ces autorisations tout en respectant le principe du moindre privilège, demandez à votre administrateur de vous accorder les rôles prédéfinis suivants :

  • Lecteur de rôle (roles/iam.roleViewer)
  • Administrateur de l'outil de recommandation IAM (roles/recommender.iamAdmin)
  • Administrateur IAM de projets (roles/resourcemanager.projectIamAdmin)

Votre administrateur peut également vous accorder un rôle différent qui inclut les autorisations requises, telles qu'un rôle personnalisé ou un rôle prédéfini plus permissif.

Étape suivante