Présentation des recommandations de rôle

Les recommandations de rôle vous aident à identifier et supprimer les autorisations en excès de vos comptes principaux, améliorant ainsi les configurations de sécurité de vos ressources.

Présentation des recommandations de rôle

Les recommandations de rôle sont générées par l'outil de recommandation IAM. La L'outil de recommandation IAM est l'un des outils l'outil de recommandation.

Chaque recommandation de rôle vous suggère de supprimer ou de remplacer un rôle accordant des autorisations en excès à vos comptes principaux. À grande échelle, ces recommandations vous aident à appliquer le principe du moindre privilège en vous assurant que les comptes principaux disposent uniquement des autorisations dont ils ont réellement besoin.

L'outil de recommandation IAM identifie les autorisations en excès à l'aide de policy insights. Les insights sur les stratégies sont des données basées sur le ML concernant les autorisations d'un compte principal sur l'utilisation de l'IA générative.

Certaines recommandations sont également associées à des insights sur les mouvements latéraux. Ces insights identifient les rôles permettant aux comptes de service d'un projet d'emprunter l'identité des comptes de service d'un autre projet. Pour en savoir plus, consultez la section Comment les insights sur les mouvements latéraux sont-ils générés ?.

Comment les insights sur les stratégies sont-ils générés ?

Les insights sur les stratégies mettent en évidence les autorisations des rôles d'un compte principal principal n'utilise pas.

L'outil de recommandation IAM génère des insights sur les stratégies en comparant nombre total d'autorisations du compte principal avec celles qu'il utilisés au cours des 90 derniers jours. Si le rôle a été attribué à moins de il y a 90 jours, l'outil de recommandation IAM examine l'utilisation des autorisations du compte principal au cours de la période écoulée depuis l'obtention du rôle de ressource.

Un compte principal peut utiliser une autorisation de plusieurs façons:

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

    Par exemple, la méthode roles.list de l'API REST IAM nécessite l'autorisation iam.roles.list. Lorsque vous appelez la méthode roles.list, vous utilisez l'autorisation iam.roles.list.

    De même, lorsque vous appelez la méthode testIamPermissions pour une ressource, vous utilisez effectivement toutes les autorisations que vous testez.

  • Indirectement, en utilisant Google Cloud Console pour travailler avec les ressources Google Cloud

    Par exemple, dans la console Google Cloud, vous pouvez modifier une Compute Engine de machine virtuelle (VM), qui nécessite des autorisations différentes en fonction les paramètres que vous modifiez. Toutefois, la console Google Cloud affiche également les paramètres existants, qui nécessitent le compute.instances.get l'autorisation.

    Par conséquent, lorsque vous modifiez une instance de VM dans la console Google Cloud, utiliser l'autorisation compute.instances.get.

L'outil de recommandation IAM identifie aussi les autorisations à l'aide du machine learning dans le rôle actuel d'un compte principal dont il est susceptible d'avoir besoin même si le compte principal n'a pas utilisé ces autorisations récemment. Pour plus consultez la section Machine learning pour obtenir des insights sur les stratégies sur cette page.

Les insights sur les stratégies ne sont pas générés pour tous les rôles IAM accordé aux comptes principaux. Pour en savoir plus sur les raisons pour lesquelles un rôle peut ne pas insights sur les règles, consultez la section Disponibilité sur cette page.

Pour savoir comment gérer les insights sur les règles, consultez Gérer les insights sur les règles pour projets, dossiers et organisations ou Gérer les règles pour les buckets Cloud Storage.

Machine learning pour les insights sur les stratégies

Dans certains cas, un compte principal aura probablement besoin de certaines autorisations incluses dans ses rôles actuels mais qui n'ont pas été utilisées récemment. À à identifier ces autorisations, l'outil de recommandation IAM utilise (ML) lors de la génération d'insights sur les stratégies.

Ce modèle de machine learning est entraîné à l'aide de 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 par le passé suggère que celles-ci sont liées d'une manière ou d'une autre et qu'elles sont toutes 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'elle est encodée dans les définitions de rôle : Cloud IAM fournit des centaines de rôles prédéfinis différents, spécifiques à un service. Si un rôle prédéfini contient un ensemble d'autorisations, cela signifie très probablement que ces autorisations doivent être accordées ensemble.

En plus de ces signaux, le modèle utilise également l'embedding 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 IAM disposent du k-anonymat, ce qui signifie que l'identité des personnes de l'ensemble de données anonymisé ne peut pas être restaurée. Pour atteindre ce niveau d'anonymat, nous supprimons toutes les informations personnelles, telles que l'ID utilisateur associé à chaque modèle d'utilisation des autorisations. Nous supprimons ensuite tous les modèles d'utilisation qui ne s'affichent pas assez souvent dans Google Cloud. Le modèle global est entraîné à l'aide de ces données anonymisées.

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 entraîne des modèles de machine learning sans exporter de données.

Comment les recommandations de rôle sont-elles générées ?

Si un insight sur la stratégie indique qu'un compte principal n'a pas besoin autorisations dans leur rôle, l'outil de recommandation IAM évalue le rôle déterminer s'il peut être révoqué ou s'il existe un autre rôle à la taille de l'image. Si le rôle peut être révoqué, l'outil de recommandation IAM génère un rôle recommande de révoquer le rôle. S’il y a un autre rôle qui vous convient mieux, l'outil de recommandation IAM génère une recommandation de rôle pour remplacer le rôle avec un rôle suggéré. Ce rôle suggéré peut être un nouveau rôle personnalisé, un rôle personnalisé existant, ou un ou plusieurs rôles prédéfinis. Sauf dans le cas des recommandations d'un agent de service, une recommandation de rôle ne suggère jamais modification qui augmente le niveau d'accès d'un compte principal.

Les recommandations de rôle sont générées uniquement sur la base des contrôles d'accès IAM. Elles ne tiennent pas compte d'autres types de contrôles d'accès, tels que les listes de contrôle d'accès (LCA) et le contrôle des accès basé sur les rôles (RBAC) Kubernetes. Si vous utilisez d'autres types de contrôles d'accès, soyez particulièrement vigilant lorsque vous examinez les recommandations et prenez en compte le rapport entre ces contrôles d'accès et vos stratégies d'autorisation.

De plus, les recommandations de rôle ne sont pas générées pour tous les rôles IAM qui sont attribués aux comptes principaux. Pour savoir pourquoi un rôle peut ne pas comporter de recommandation de rôle. Pour en savoir plus, consultez la section Disponibilité .

Période d'observation

La période d'observation d'une recommandation de rôle correspond au nombre de jours les données d'utilisation des autorisations sur lesquelles se base la recommandation.

La période d'observation maximale des recommandations de rôle est de 90 jours. Cela signifie que l'outil de recommandation IAM utilise les données d'utilisation des autorisations des 90 derniers jours au maximum générer des recommandations de rôle.

L'outil de recommandation IAM ne commence pas non plus à générer des recommandations de rôle jusqu'à ce qu'il dispose d'un certain nombre de jours de données d'utilisation de l'autorisation. Cette durée est appelée période d'observation minimale. Par défaut, la valeur minimale la période d'observation est de 90 jours, mais, pour un rôle au niveau du projet, recommandations, vous pouvez la définir manuellement sur 30 ou 60 jours. Pour en savoir plus, consultez Configurez la génération de recommandations de rôle. Si vous définissez le période d'observation minimale à moins de 90 jours, vous obtenez recommandations plus tôt, mais leur précision peut être concernés.

Si elle est plus longue que la période d'observation minimale, mais inférieure à 90 jours après l'attribution du rôle, la période d'observation correspond au temps écoulé depuis l'attribution du rôle.

Nouveaux rôles personnalisés dans les recommandations de rôle

Lorsque l'outil de recommandation IAM suggère des remplacements pour un rôle, il suggère toujours un rôle personnalisé existant, ou un ou plusieurs rôles prédéfinis qui semblent mieux répondre aux besoins du compte principal.

Si l'outil de recommandation IAM identifie un modèle d'utilisation d'autorisation commun dans votre organisation qui ne correspond pas à un rôle prédéfini ou personnalisé existant, il peut également être recommandé de créer un rôle personnalisé rôle. Ce rôle personnalisé n'inclut que les autorisations recommandées. Vous pouvez modifier la recommandation de rôle personnalisé en ajoutant ou en supprimant des autorisations.

Si vous souhaitez appliquer le principe du moindre privilège aussi strictement que possible, choisissez le nouveau rôle personnalisé. L'outil de recommandation IAM crée le rôle personnalisé au niveau du projet. Vous êtes responsable de la gestion et de la mise à jour des rôles personnalisés pour vos projets.

Si vous préférez utiliser un rôle géré automatiquement, choisissez le rôle prédéfini rôle de ressource. Google Cloud met régulièrement à jour ces rôles en ajoutant ou en supprimant des autorisations. Pour être informé de ces mises à jour, abonnez-vous au flux d'actualités du journal des modifications des autorisations. Lorsque vous choisissez la le compte principal dispose toujours d'au moins quelques autorisations, et potentiellement un grand nombre d'autorisations qu'ils n'ont pas utilisées.

L'outil de recommandation IAM ne recommande pas de nouveaux rôles personnalisés dans les cas suivants :

  • La recommandation concerne un rôle au niveau d'un dossier ou d'une organisation.
  • Votre organisation dispose déjà d'au moins 100 rôles personnalisés.
  • Votre projet dispose déjà d'au moins 25 rôles personnalisés.

En outre, l'outil de recommandation IAM ne recommande pas plus de cinq nouveaux rôles personnalisés par jour dans chaque projet et pas plus de 15 nouveaux rôles personnalisés dans toute l'organisation.

Comment les insights sur les mouvements latéraux sont-ils générés ?

Le mouvement latéral se produit lorsqu'un compte de service d'un projet est autorisé à usurper l'identité d'un compte de service d'un autre projet. Par exemple, un compte de service peut avoir été créé dans le projet A, mais dispose des autorisations nécessaires pour emprunter l'identité d'un compte de service dans le projet B.

Ces autorisations peuvent entraîner une chaîne d'usurpations d'identités sur plusieurs projets, ce qui permet aux comptes principaux d'accéder de manière inattendue aux ressources. Par exemple, si un compte principal usurpe l'identité du compte de service du projet A, il peut s'en servir pour usurper l'identité du compte de service du projet B. Si le compte de service du projet B est autorisé à usurper l'identité d'autres comptes de service d'autres projets de votre organisation, le compte principal peut continuer à usurper l'identité du compte de service pour passer d'un projet à l'autre, et ainsi obtenir au fur et à mesure les autorisations nécessaires.

L'outil de recommandation IAM génère des insights sur les mouvements latéraux en identifiant des rôles qui répondent aux critères suivants:

  • Le compte principal auquel le rôle a été attribué est un compte de service qui n'a pas été créés dans le projet.
  • Le rôle inclut l'une des autorisations suivantes, qui permettent à un compte principal d'emprunter l'identité d'un compte de service :

    • iam.serviceAccounts.actAs
    • iam.serviceAccounts.getAccessToken
    • iam.serviceAccounts.getOpenIdToken
    • iam.serviceAccounts.implicitDelegation
    • iam.serviceAccounts.signBlob
    • iam.serviceAccounts.signJwt

Si un rôle correspond à ces critères, l'outil de recommandation IAM génère une requête des informations sur le mouvement pour le poste. Cet insight contient des informations sur le les capacités d'emprunt d'identité du compte de service, y compris les comptes de service peut emprunter l'identité et s'il a utilisé des autorisations d'emprunt d'identité au cours des 90 jours.

L'outil de recommandation IAM n'utilise pas les insights sur les mouvements latéraux seul pour générer des recommandations de rôles. En effet, si un compte de service à l'aide de ses autorisations d'emprunt d'identité, l'outil de recommandation IAM ne peut pas suggère de les supprimer. Toutefois, si une recommandation de rôle suggère de supprimer ces car elles ne sont pas utilisées, l'outil de recommandation IAM permet de lier l'information sur les mouvements latéraux à cette recommandation. Cette association vous permet de hiérarchiser les recommandations de rôles pour les comptes de service disposant d'autorisations d'emprunt d'identité puissantes et inutilisées pour l'ensemble des projets.

Pour savoir comment gérer les insights sur les mouvements latéraux, consultez la page Gérer les insights sur les mouvements latéraux.

Disponibilité

Les insights sur les stratégies, les insights sur les mouvements latéraux et les recommandations de rôles ne sont pas générés pour tous les rôles attribués aux comptes principaux. Lisez ce qui suit pour mieux comprendre les rôles associés aux insights sur les stratégies, les mouvements latéraux des insights et des recommandations.

Disponibilité des insights sur les stratégies

Pour que l'outil de recommandation IAM génère un insight sur une stratégie pour un rôle, ce qui suit doit être vrai:

  • La stratégie d'autorisation IAM qui attribue le rôle doit être à l'une des ressources suivantes:

    • Bucket Cloud Storage
    • Ensemble de données BigQuery
    • Projet
    • Dossier
    • Organisation

    L'outil de recommandation IAM ne génère des insights sur les stratégies que pour les rôles accordées à ces ressources.

  • La liaison de rôle qui attribue le rôle ne doit pas comporter de condition. La L'outil de recommandation IAM ne génère pas d'insights sur les stratégies pour liaisons de rôles conditionnelles.

  • Le compte principal auquel le rôle a été attribué doit être l'un des éléments suivants : types de comptes principaux:

    Pour en savoir plus sur les types de comptes principaux, consultez la page Comptes principaux identifiants.

L'activation de l'outil de recommandation IAM peut prendre jusqu'à 10 jours afin de générer des insights sur les stratégies pour un rôle que vous venez d'attribuer.

Les insights sur les stratégies existantes sont actualisés quotidiennement en fonction de votre autorisation récente sur l'utilisation de l'IA générative. Toutefois, les données sur lesquelles reposent les insights sur les stratégies sont généralement jusqu'à deux jours de retard sur votre utilisation réelle.

Disponibilité des informations sur les mouvements latéraux

Les insights sur les mouvements latéraux sont générés pour les rôles attribués ressources suivantes:

  • Organisations
  • Dossiers
  • Projets
  • Comptes de service

Disponibilité des recommandations de rôle

Pour que l'outil de recommandation IAM génère une recommandation de rôle pour un rôle, les conditions suivantes doivent être remplies:

  • Le rôle doit être associé à un insight sur la stratégie. Cet insight sur une stratégie sert de base pour la recommandation.
  • Elle doit être plus longue que le minimum d'observation période après l'attribution du rôle. Cela permet de s'assurer L'outil de recommandation IAM dispose de suffisamment de données d'utilisation pour émettre une recommandation. Par par défaut, la période d'observation minimale est de 90 jours, mais vous pouvez la définir manuellement sur 30 ou 60 jours. Pour en savoir plus, consultez la section Configurer génération de recommandations de rôle.
  • Si le compte principal auquel le rôle a été attribué est un agent de service, il doit s'agir du rôle "Propriétaire", "Éditeur" ou "Lecteur". L'outil de recommandation IAM ne génère pas de recommandations de rôle pour les agents de service ayant d'autres rôles. Pour Pour en savoir plus, consultez la section Recommandations de rôles pour les agents de service.

Si un rôle a été attribué trop récemment ou ne comporte aucun insight, le La colonne Autorisations analysées de la console Google Cloud affiche .

Dans certains cas, l'outil de recommandation IAM ne génère pas de rôle des recommandations pour un poste, même si suffisamment de temps s’est écoulé et que le poste a un insight qui lui est associé. Cela peut se produire pour les raisons suivantes:

  • Aucun rôle IAM prédéfini n'est plus approprié que le rôle actuel : Si un compte principal dispose déjà d'un compte qui réduit leurs autorisations ou qui inclut moins d'autorisations que les autres rôles prédéfinis, l'outil de recommandation IAM ne peut pas recommandent un autre rôle prédéfini.

    Vous pouvez peut-être réduire le nombre d'autorisations du compte principal en lui créant un rôle personnalisé.

  • Le compte principal est un agent de service, et le rôle n'est pas rôle de base. L'outil de recommandation IAM ne génère recommandations pour les agents de service disposant d'un rôle de base (propriétaire, éditeur ou "Lecteur"). Pour en savoir plus, consultez la section Recommandations de rôles pour de sécurité.

  • Aucun autre compte principal ne dispose du rôle de base "Propriétaire" pour le projet : au moins un compte principal doit disposer du rôle "Propriétaire" (roles/owner) pour chaque projet. Si un seul compte principal dispose de ce rôle, l'outil de recommandation IAM n'effectue pas recommandent de révoquer ou de remplacer le rôle.

Dans ce cas, la colonne Autorisations analysées dans la section La console Google Cloud indique l'utilisation des autorisations du compte principal, Une Recommandation disponible .

Les recommandations de rôles existantes sont actualisées tous les jours en fonction de vos récentes l'utilisation des autorisations. Toutefois, les données sur lesquelles reposent les recommandations de rôle est généralement retardé de deux jours au maximum sur votre utilisation réelle.

Priorité et gravité

La priorité des recommandations et le niveau de gravité des insights vous aident à comprendre l'urgence d'une recommandation ou d'un insight, et à hiérarchiser les insights en conséquence.

Priorité des recommandations de rôle

Les recommandations se voient attribuer des niveaux de priorité en fonction de leur degré d'urgence perçue. Les niveaux de priorité vont de P0 (priorité la plus élevée) à P4 (priorité la plus basse).

La priorité d'une recommandation de rôle dépend du rôle de la recommandation pour:

Détails de la recommandation Priorité Explication
Recommandations concernant les rôles accordant un accès public aux Buckets Cloud Storage P1 Les buckets accessibles au public sont accessibles à tous les internautes. Supprimer l'accès public vous permet de mieux contrôler vos données.
Recommandations concernant les rôles accordant un accès public aux Ensembles de données BigQuery P1 Les ensembles de données accessibles au public sont accessibles par tous les internautes. Supprimer l'accès public vous permet de mieux contrôler vos données.
Recommandations pour les rôles de base (Propriétaire, Éditeur et Lecteur) qui sont accordé sur un projet, un dossier ou une organisation P2 Les rôles de base sont très permissifs et l'application des recommandations peuvent réduire considérablement les autorisations en excès.
Recommandations qui n'accordent pas l'accès public ou les rôles de base P4 Bien que ces recommandations vous aident à réduire les autorisations en excès, ils ne suppriment pas l'accès public ni les rôles de base très permissifs, ce qui le fait avoir une priorité inférieure.

Niveau de gravité des insights

Les insights se voient attribuer des niveaux de gravité en fonction de leur degré d'urgence perçue. Les niveaux de gravité peuvent être LOW, MEDIUM, HIGH ou CRITICAL.

Le niveau de gravité d'un insight sur une stratégie dépend du rôle auquel il est destiné:

Détails sur la statistique Gravité Explication
Insights sur les rôles accordant un accès public à Cloud Storage bins CRITICAL Les buckets accessibles au public sont accessibles à tous les internautes. Supprimer l'accès public vous permet de mieux contrôler vos données.
Insights sur les rôles qui accordent un accès public aux Ensembles de données BigQuery CRITICAL Les ensembles de données accessibles au public sont accessibles par tous les internautes. Supprimer l'accès public vous permet de mieux contrôler vos données.
Insights sur les rôles de base (Propriétaire, Éditeur et Lecteur) attribués sur un projet, un dossier ou une organisation HIGH Les rôles de base sont très permissifs et traitent les insights correspondants peuvent réduire considérablement les autorisations en excès.
Insights qui n'accordent pas l'accès public ni les rôles de base LOW Bien que ces insights mettent en évidence les autorisations en excès, ils ne impliquant un accès public ou des rôles de base très permissifs, avec une priorité inférieure.

Tous les insights sur les mouvements latéraux ont une gravité de LOW.

Comment les recommandations de rôle sont-elles appliquées ?

L'outil de recommandation IAM n'applique pas automatiquement les recommandations. Au lieu de cela, vous devez examiner vos recommandations et décider de les appliquer ou de les ignorer. Pour découvrir comment examiner, appliquer et ignorer les recommandations de rôle, consultez l'un des guides suivants:

Journaux d'audit

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

Sous-types de recommandations de rôle

Les recommandations de rôle sont divisées en plusieurs sous-types différents en fonction de l'action qu'elles recommandent. Si vous utilisez la CLI gcloud ou l'API REST, vous pouvez utiliser ces sous-types pour filtrer vos recommandations.

Sous-type Description
REMOVE_ROLE Une recommandation vous invitant à supprimer les autorisations au niveau du projet, du dossier ou d'un rôle au niveau de l'organisation.
REMOVE_ROLE_BIGQUERY_DATASET Recommandation concernant la suppression du rôle du compte principal au niveau de l'ensemble de données.
REMOVE_ROLE_STORAGE_BUCKET Recommandation concernant la suppression du rôle du compte principal au niveau du bucket.
REPLACE_ROLE Une recommandation vous invitant à remplacer les autorisations au niveau du projet, du dossier ou au niveau de l'organisation avec un rôle moins permissif. La méthode recommandée le remplacement peut être un rôle personnalisé existant ou un ou plusieurs rôles de rôles.
REPLACE_ROLE_CUSTOMIZABLE Recommandation pour remplacer le rôle du compte principal par un nouveau rôle personnalisé plus permissif que celui rôle actuel.
REPLACE_ROLE_BIGQUERY_DATASET Recommandation de remplacement du rôle du compte principal au niveau de l'ensemble de données par un rôle un rôle permissif. Le modèle de remplacement recommandé peut être un modèle un rôle ou un ou plusieurs rôles prédéfinis.
REPLACE_ROLE_STORAGE_BUCKET Recommandation de remplacement du rôle du compte principal au niveau du bucket par un rôle un rôle permissif. Le modèle de remplacement recommandé peut être un modèle un rôle ou un ou plusieurs rôles prédéfinis.
SERVICE_AGENT_WITH_DEFAULT_ROLE Recommandation pour remplacer le propriétaire, l'éditeur ou le lecteur d'un agent de service avec le rôle qui a été automatiquement accordé au compte de service lors de sa création. Pour en savoir plus, consultez Recommandations de rôle pour les agents de service
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Recommandation pour remplacer le propriétaire, l'éditeur ou le lecteur d'un agent de service avec un rôle moins permissif. Pour en savoir plus, consultez Recommandations de rôle pour les agents de service

Recommandations de rôle pour les agents de service

Pour les agents de service, L'outil de recommandation IAM ne fournit des recommandations que pour les opérations de base (Propriétaire, Éditeur ou Lecteur).

Les recommandations pour les agents de service sont divisées en deux sous-types de recommandations.

SERVICE_AGENT_WITH_DEFAULT_ROLE

Lors de leur création, certains agents de service se voient automatiquement attribuer un agent de service pour garantir le bon fonctionnement de vos services Google Cloud correctement. Si vous remplacez ce rôle par un rôle de base (Propriétaire, Éditeur ou Lecteur), une recommandation de rôle peut vous suggérer de restaurer l'agent de service d'origine pour supprimer les autorisations en excès, même si le rôle d'agent de service autorisations qui n'appartiennent pas au rôle de base. Ces recommandations sont sous-type SERVICE_AGENT_WITH_DEFAULT_ROLE. Ils vous aident à éliminer les excès de façon sécurisée les autorisations, tout en s'assurant que tous les services Google Cloud fonctionnent correctement.

Les recommandations SERVICE_AGENT_WITH_DEFAULT_ROLE sont les seules à pouvoir suggérer des rôles dont les autorisations ne figurent pas dans le rôle actuel.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

Si aucun rôle n'est attribué automatiquement à un agent de service lors de sa création, les recommandations pour l'agent de service reposent exclusivement sur les autorisations utilisés par l'agent de service. Ces recommandations ont le sous-type SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

Recommandations de rôle dans Security Command Center

Si vous disposez du niveau Premium de Security Command Center, vous pouvez afficher certains sous-types de des recommandations en tant que résultats dans Security Command Center. Chaque sous-type est associé à un détecteur:

Sous-type de recommandation Catégorie de résultats
REMOVE_ROLE Unused IAM role
REPLACE_ROLE IAM role has excessive permissions
SERVICE_AGENT_WITH_DEFAULT_ROLE Service agent role replaced with basic role
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Service agent granted basic role

Pour en savoir plus sur l'affichage des recommandations de rôle dans Security Command Center, consultez l'outil de recommandation IAM dans Security Command Center. dans la documentation Google Cloud.

Tarifs

Recommandations de rôles au niveau du projet, du dossier et de l'organisation pour les rôles de base sont disponibles sans frais.

Les fonctionnalités avancées suivantes de l'outil de recommandation IAM nécessitent un activation du niveau Premium de Security Command Center au niveau de l'organisation:

  • Recommandations pour les rôles non de base
  • Recommandations pour les rôles attribués sur des ressources autres que les organisations dossiers et projets (par exemple, des recommandations pour les rôles attribués sur des buckets Cloud Storage
  • Recommandations suggérant des rôles personnalisés
  • Insights sur les stratégies
  • Analyse des mouvements latéraux

Pour en savoir plus, consultez Questions concernant la facturation.

Exemples de recommandations de rôles

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

Révoquer un rôle existant

Le rôle Navigateur a été attribué à l'utilisateur my-user@example.com sur un projet. Le rôle Navigateur inclut six autorisations permettant à l'utilisateur d'afficher les ressources du projet. Cependant, au cours des 90 derniers jours, my-user@example.com n'a vu aucune ressource.

Par conséquent, l'outil de recommandation IAM génère une recommandation de rôle ce qui vous suggère de révoquer le rôle de navigateur de my-user@example.com:

Console

gcloud

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
    }
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/browser"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "member": "user:my-user@example.com",
      "removedRole": "roles/browser",
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
    }
  },
  "description": "This role has not been used during the observation window.",
  "etag": "\"9fc3241da8bfab51\"",
  "lastRefreshTime": "2022-05-20T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 6
      }
    }
  },
  "priority": "P4",
  "recommenderSubtype": "REMOVE_ROLE",
  "stateInfo": {
    "state": "ACTIVE"
  }
}

REST

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
  "description": "This role has not been used during the observation window.",
  "lastRefreshTime": "2022-05-20T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 6
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/browser"
            }
          }
        ]
      }
    ],
    "overview": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "member": "user:my-user@example.com",
      "removedRole": "roles/browser"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"9fc3241da8bfab51\"",
  "recommenderSubtype": "REMOVE_ROLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
    }
  ],
  "priority": "P4"
}

Remplacer un rôle existant

Le rôle Éditeur (roles/editor) a été attribué à un compte de service sur un projet. Ce rôle de base comprend plus de 3 000 autorisations et accorde un accès étendu au projet. Toutefois, au cours des 90 derniers jours, le compte de service n'a utilisé que certaines de ces autorisations.

Par conséquent, l'outil de recommandation IAM génère une recommandation de rôle vous suggérant de révoquer le rôle Éditeur et de le remplacer par une combinaison des deux autres rôles, ce qui supprime des milliers d'autorisations en excès:

Console

gcloud

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
    }
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/iam.serviceAccountUser"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/editor"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "addedRoles": [
        "roles/iam.serviceAccountUser",
        "roles/storage.objectAdmin"
      ],
      "member": "user:my-user@example.com",
      "minimumObservationPeriodInDays": "0",
      "removedRole": "roles/editor",
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
    }
  },
  "description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
  "etag": "\"0da9a354c2a83d96\"",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 2998
      }
    }
  },
  "priority": "P2",
  "recommenderSubtype": "REPLACE_ROLE",
  "stateInfo": {
    "state": "ACTIVE"
  }
}

REST

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
  "description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 2998
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/iam.serviceAccountOwner"
            }
          },
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
            }
          },
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/editor"
            }
          }
        ]
      }
    ],
    "overview": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "member": "user:my-user@example.com",
      "removedRole": "roles/editor",
      "addedRoles": [
        "roles/iam.serviceAccountUser",
        "roles/storage.objectAdmin"
      ],
      "minimumObservationPeriodInDays": "0"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"0da9a354c2a83d96\"",
  "recommenderSubtype": "REPLACE_ROLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
    }
  ],
  "priority": "P2"
}

Créer un rôle personnalisé

L'utilisateurmy-user@example.com s'est vu attribuer le rôle Administrateur Cloud Trace (roles/cloudtrace.admin) sur un projet. Ce rôle inclut plus de 10 autorisations, mais un insight sur une stratégie indique qu'au cours des 90 derniers jours, my-user@example.com n'a utilisé que quatre de ces autorisations.

Par conséquent, l'outil de recommandation IAM génère une recommandation de rôle ce qui suggère de créer un rôle personnalisé incluant uniquement les autorisations my-user@example.com réellement utilisé:

Console

gcloud

Le sous-type REPLACE_ROLE_CUSTOMIZABLE indique que L'outil de recommandation IAM recommande de créer un rôle personnalisé avec le rôle autorisations. Pour afficher les autorisations utilisées, [obtenir la stratégie associée insight][get-policy-insight].

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
    }
  ],
  "associatedResourceNames": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "minimumObservationPeriodInDays": "0"
    }
  },
  "description": "Replace the current role with a smaller role to cover the permissions needed.",
  "etag": "\"c7f57a4725d32d66\"",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
  "originalContent": {},
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {},
      "revokedIamPermissionsCount": 1
    }
  },
  "priority": "P4",
  "recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ]
}

REST

Le sous-type REPLACE_ROLE_CUSTOMIZABLE indique que l'outil de recommandation IAM recommande de créer un rôle personnalisé autorisations. Pour afficher les autorisations utilisées, [obtenir la stratégie associée insight][get-policy-insight].

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
  "description": "Replace the current role with a smaller role to cover the permissions needed.",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 1
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
            }
          },
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
            }
          }
        ]
      }
    ],
    "overview": {
      "minimumObservationPeriodInDays": "0"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"c7f57a4725d32d66\"",
  "recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
    }
  ],
  "priority": "P4"
}

L'outil de recommandation propose également une autre option, qui consiste à remplacer le rôle existant par le rôle Utilisateur Cloud Trace (roles/cloudtrace.user). Ce rôle prédéfini inclut un nombre d'autorisations légèrement inférieur à celui du rôle Administrateur Cloud Trace.

Remplacer des rôles avec des autorisations suggérées par le machine learning

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

L'insight sur les stratégies met également en évidence plusieurs autorisations dont le compte de service est susceptible d'avoir besoin à l'avenir. L'outil de recommandation IAM a identifié les autorisations à l'aide du machine learning.

L'outil de recommandation IAM génère une recommandation de rôle suggérant que révoquer le rôle Éditeur et le remplacer par le rôle Administrateur des objets Storage (roles/storage.objectAdmin), qui accorde le contrôle total des objets dans un bucket Cloud Storage. Cette modification supprime des milliers d'autorisations en excès, tandis que tout en incluant les autorisations utilisées par le compte de service autorisations dont le compte de service est susceptible d'avoir besoin à l'avenir:

Console

L'outil de recommandation IAM utilise un pipeline Machine Learning pour identifier les autorisations qui ont été ajoutées en fonction le machine learning de l'outil de recommandation IAM plutôt que sur l'utilisation des autorisations. Dans cet exemple, l'autorisation resourcemanager.projects.get était recommandée basées sur le machine learning:

gcloud

Autorisations ajoutées en fonction de la machine de l'outil de recommandation IAM plutôt que sur l'utilisation des autorisations ne sont pas listés lui-même. Ils sont répertoriés dans les insights sur les stratégies associés au recommandation. Toutes les autorisations basées sur le ML sont listées dans inferredPermissions de l'insight. Dans cet exemple, resourcemanager.projects.get d'après le machine learning:

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '5069'
  exercisedPermissions:
  - permission: storage.objects.create
  - permission: storage.objects.delete
  - permission: storage.objects.get
  - permission: storage.objects.list
  inferredPermissions:
  - permission: resourcemanager.projects.get
  member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
  role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH

Pour savoir comment obtenir des insights sur les règles, consultez [Examinez les insights sur les stratégies][get-policy-insight].

REST

Autorisations ajoutées en fonction de la machine de l'outil de recommandation IAM plutôt que sur l'utilisation des autorisations ne sont pas listés lui-même. Ils sont répertoriés dans les insights sur les stratégies associés au recommandation. Toutes les autorisations basées sur le ML sont listées dans inferredPermissions de l'insight. Dans cet exemple, resourcemanager.projects.get d'après le machine learning:

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
  "description": "4 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/editor",
    "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.objects.create"
      },
      {
        "permission": "storage.objects.delete"
      },
      {
        "permission": "storage.objects.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [
      {
        "permission": "resourcemanager.projects.get"
      }
    ],
    "currentTotalPermissionsCount": "5069"
  },
  "lastRefreshTime": "2020-07-12T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "PERMISSIONS_USAGE",
  "etag": "\"d3cdec23cc712bd0\"",
  "severity": "HIGH"
}

Pour savoir comment obtenir des insights sur les règles, consultez [Examinez les insights sur les stratégies][get-policy-insight].

Étape suivante