Panoramica dei suggerimenti sui ruoli

I suggerimenti sui ruoli consentono di identificare e rimuovere le autorizzazioni in eccesso dalle entità, migliorando le configurazioni di sicurezza delle risorse.

Panoramica dei suggerimenti sui ruoli

I suggerimenti sui ruoli sono generati dal motore per suggerimenti IAM. Il motore per suggerimenti IAM è uno di quelli offerti dal motore per suggerimenti.

Ogni suggerimento per il ruolo ti consiglia di rimuovere o sostituire un ruolo che concede autorizzazioni in eccesso alle entità. Su larga scala, questi suggerimenti ti aiutano ad applicare il principio del privilegio minimo assicurando che le entità dispongano solo delle autorizzazioni di cui hanno effettivamente bisogno.

Il motore per suggerimenti IAM identifica le autorizzazioni in eccesso utilizzando gli insight sui criteri. Gli insight sui criteri sono risultati basati su ML relativi all'utilizzo delle autorizzazioni di un'entità.

Alcuni consigli sono anche associati a informazioni sul movimento laterale. Questi insight identificano i ruoli che consentono agli account di servizio in un progetto di rappresentare gli account di servizio in un altro progetto. Per ulteriori informazioni, vedi Come vengono generati gli insight sui movimenti laterali.

Come vengono generati gli insight sulle norme

Gli insight sui criteri evidenziano le autorizzazioni non utilizzate nei ruoli di un'entità.

Il motore per suggerimenti IAM genera insight sui criteri confrontando il numero totale di autorizzazioni di un'entità con le autorizzazioni utilizzate dall'entità negli ultimi 90 giorni. Se il ruolo è stato concesso meno di 90 giorni fa, il motore per suggerimenti IAM controlla l'utilizzo delle autorizzazioni dell'entità nel periodo in cui è stato concesso il ruolo.

Un'entità può utilizzare un'autorizzazione in diversi modi:

  • Direttamente, chiamando un'API che richiede l'autorizzazione

    Ad esempio, il metodo roles.list nell'API REST IAM richiede l'autorizzazione iam.roles.list. Quando chiami il metodo roles.list, utilizzi l'autorizzazione iam.roles.list.

    Allo stesso modo, quando chiami il metodo testIamPermissions per una risorsa, utilizzi effettivamente tutte le autorizzazioni che stai testando.

  • Indirettamente, utilizzando la console Google Cloud per lavorare con le risorse di Google Cloud.

    Ad esempio, nella console Google Cloud, puoi modificare l'istanza di una macchina virtuale (VM) Compute Engine, che richiede autorizzazioni diverse in base alle impostazioni modificate. Tuttavia, la console Google Cloud mostra anche le impostazioni esistenti, che richiedono l'autorizzazione compute.instances.get.

    Di conseguenza, quando modifichi un'istanza VM nella console Google Cloud, utilizzi l'autorizzazione compute.instances.get.

Il motore per suggerimenti IAM utilizza anche il machine learning per identificare le autorizzazioni nel ruolo attuale di un'entità di cui l'entità potrebbe aver bisogno in futuro, anche se non ha utilizzato queste autorizzazioni di recente. Per saperne di più, consulta Machine learning per insight sui criteri in questa pagina.

Non vengono generati insight sui criteri per tutti i ruoli IAM concessi alle entità. Per ulteriori informazioni sul motivo per cui un ruolo potrebbe non avere un insight sui criteri, consulta Disponibilità in questa pagina.

Per scoprire come gestire gli insight sui criteri, vedi Gestire gli insight sui criteri per progetti, cartelle e organizzazioni o Gestire gli insight sui criteri per i bucket Cloud Storage.

Machine learning per approfondimenti sulle norme

In alcuni casi, è probabile che un'entità abbia bisogno di determinate autorizzazioni incluse nei ruoli attuali, ma che non sono state utilizzate di recente. Per identificare queste autorizzazioni, il motore per suggerimenti IAM utilizza un modello di machine learning (ML) durante la generazione di insight sui criteri.

Questo modello di machine learning viene addestrato su più insiemi di indicatori:

  • Modelli di coesistenza comuni nella cronologia osservata: il fatto che un utente abbia utilizzato le autorizzazioni A, B e C in passato suggerisce che A, B e C potrebbero essere correlati in qualche modo e che sono necessari insieme per svolgere un'attività su Google Cloud. Se il modello ML osserva abbastanza frequentemente questo modello, la volta successiva che un utente diverso utilizza le autorizzazioni A e B, il modello suggerirà che anche l'utente potrebbe aver bisogno dell'autorizzazione C.

  • Conoscenza del dominio come codificata nelle definizioni dei ruoli: IAM offre centinaia di diversi ruoli predefiniti specifici per i servizi. Se un ruolo predefinito contiene un insieme di autorizzazioni, è un chiaro segnale che queste autorizzazioni devono essere concesse contemporaneamente.

Oltre a questi indicatori, il modello utilizza anche l'incorporamento delle parole per calcolare quanto sono semanticamente simili le autorizzazioni. Dopo l'incorporamento, le autorizzazioni semanticamente simili saranno "vicino" l'una all'altra e avranno maggiori probabilità di essere concesse insieme. Ad esempio, bigquery.datasets.get e bigquery.tables.list saranno molto vicini dopo l'incorporamento.

Tutti i dati utilizzati nella pipeline di machine learning del motore per suggerimenti IAM hanno il valore k-anonymity, il che significa che le persone nel set di dati anonimizzati non possono essere identificate di nuovo. Per raggiungere questo livello di anonimato, eliminiamo tutte le informazioni che consentono l'identificazione personale (PII), come l'ID utente, relativo a ciascun modello di utilizzo delle autorizzazioni. Quindi eliminiamo tutti i pattern di utilizzo che non vengono visualizzati con una frequenza sufficiente in Google Cloud. Il modello globale viene addestrato su questi dati anonimizzati.

Il modello globale può essere ulteriormente personalizzato per ogni organizzazione mediante il apprendimento federato, un processo di machine learning che addestra i modelli di machine learning senza esportare dati.

Come vengono generati i suggerimenti sui ruoli

Se un insight sui criteri indica che un'entità non ha bisogno di tutte le autorizzazioni nel proprio ruolo, il motore per suggerimenti IAM valuta il ruolo per determinare se può essere revocato o se esiste un altro ruolo adatto. Se il ruolo può essere revocato, il motore per suggerimenti IAM genera un suggerimento per il ruolo per revocarlo. Se esiste un altro ruolo più adatto, il motore per suggerimenti IAM genera un suggerimento per il ruolo per sostituirlo con uno suggerito. Potrebbe trattarsi di un nuovo ruolo personalizzato, di un ruolo personalizzato esistente o di uno o più ruoli predefiniti. Ad eccezione dei suggerimenti per gli agenti di servizio, i suggerimenti sui ruoli non suggeriscono mai una modifica che aumenta il livello di accesso di un'entità.

I suggerimenti sui ruoli vengono generati in base solo ai controlli dell'accesso IAM. Non prendono in considerazione altri tipi di controlli dell'accesso, come gli elenchi di controllo dell'accesso (ACL) e il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes. Se utilizzi altri tipi di controlli dell'accesso, presta particolare attenzione quando rivedi i suggerimenti e considera come questi controlli dell'accesso si riferiscono ai criteri di autorizzazione.

Inoltre, non vengono generati suggerimenti sui ruoli per tutti i ruoli IAM concessi alle entità. Per ulteriori informazioni sul motivo per cui un ruolo potrebbe non avere un suggerimento per il ruolo, consulta Disponibilità in questa pagina.

Periodo di osservazione

Il periodo di osservazione di un suggerimento sui ruoli è il numero di giorni di dati sull'utilizzo dell'autorizzazione su cui si basa il suggerimento.

Il periodo massimo di osservazione per i suggerimenti sui ruoli è di 90 giorni. Ciò significa che il motore per suggerimenti IAM utilizza al massimo i dati sull'utilizzo delle autorizzazioni degli ultimi 90 giorni per generare suggerimenti sui ruoli.

Inoltre, il motore per suggerimenti IAM non inizia a generare suggerimenti sui ruoli fino a quando non ha ottenuto un determinato numero di giorni di dati sull'utilizzo delle autorizzazioni. Questa durata è chiamata periodo minimo di osservazione. Per impostazione predefinita, il periodo minimo di osservazione è di 90 giorni, ma per i suggerimenti sui ruoli a livello di progetto puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, consulta Configurare la generazione di suggerimenti per i ruoli. Se imposti il periodo di osservazione minimo su meno di 90 giorni, riceverai i consigli prima, ma la precisione dei consigli potrebbe essere compromessa.

Se è trascorso più del periodo di osservazione minimo, ma meno di 90 giorni dalla concessione del ruolo, il periodo di osservazione è il periodo di tempo trascorso dalla concessione del ruolo.

Nuovi ruoli personalizzati nei suggerimenti sui ruoli

Quando il motore per suggerimenti IAM suggerisce la sostituzione di un ruolo, suggerisce sempre un ruolo personalizzato esistente, oppure uno o più ruoli predefiniti, che sembrano più adatti alle esigenze dell'entità.

Se il motore per suggerimenti IAM identifica un pattern di utilizzo delle autorizzazioni comune nella tua organizzazione che non è mappato a un ruolo predefinito o personalizzato esistente, potrebbe anche consigliare di creare un nuovo ruolo personalizzato a livello di progetto. Questo ruolo personalizzato include solo le autorizzazioni consigliate. Puoi modificare il suggerimento sul ruolo personalizzato aggiungendo o rimuovendo autorizzazioni.

Se vuoi applicare il principio del privilegio minimo il più rigorosamente possibile, scegli il nuovo ruolo personalizzato. Il motore per suggerimenti IAM crea il ruolo personalizzato a livello di progetto. Sei responsabile della manutenzione e dell'aggiornamento dei ruoli personalizzati dei progetti.

Se preferisci utilizzare un ruolo mantenuto per te, scegli il ruolo predefinito. Google Cloud aggiorna regolarmente questi ruoli aggiungendo o rimuovendo le autorizzazioni. Per ricevere notifiche relative a questi aggiornamenti, iscriviti al feed di notizie per il log delle modifiche alle autorizzazioni. Quando scegli il ruolo predefinito, l'entità continua ad avere almeno alcune autorizzazioni (e potenzialmente un numero elevato) che non ha utilizzato.

Il motore per suggerimenti IAM non consiglia nuovi ruoli personalizzati nei seguenti casi:

  • Il suggerimento riguarda un ruolo a livello di cartella o organizzazione.
  • La tua organizzazione ha già 100 o più ruoli personalizzati.
  • Il progetto ha già 25 o più ruoli personalizzati.

Inoltre, il motore per suggerimenti IAM consiglia non più di 5 nuovi ruoli personalizzati al giorno in ogni progetto e non più di 15 nuovi ruoli personalizzati nell'intera organizzazione.

Come vengono generate le informazioni sui movimenti laterali

Il movimento laterale si verifica quando un account di servizio in un progetto ha l'autorizzazione per impersonare un account di servizio in un altro progetto. Ad esempio, un account di servizio potrebbe essere stato creato nel progetto A, ma avere le autorizzazioni per rappresentare un account di servizio nel progetto B.

Queste autorizzazioni possono comportare una catena di rappresentazioni tra i progetti che concede alle entità un accesso involontario alle risorse. Ad esempio, se un'entità assume l'identità dell'account di servizio nel progetto A, può utilizzare questo account di servizio per impersonare l'account di servizio nel progetto B. Se l'account di servizio nel progetto B ha l'autorizzazione a impersonare altri account di servizio in altri progetti dell'organizzazione, l'entità può continuare a utilizzare la simulazione dell'account di servizio per passare da un progetto all'altro, guadagnando le autorizzazioni man mano che vengono eseguite.

Il motore per suggerimenti IAM genera insight sul movimento laterale identificando i ruoli che soddisfano i seguenti criteri:

  • L'entità a cui è stato concesso il ruolo è un account di servizio che non è stato creato nel progetto.
  • Il ruolo include una delle seguenti autorizzazioni, che consente a un'entità di impersonare un account di servizio:

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

Se un ruolo soddisfa questi criteri, il motore per suggerimenti IAM genera un insight sui movimenti laterali per il ruolo. Questo insight contiene informazioni sulle capacità di rappresentazione dell'account di servizio, inclusi gli account di servizio che può rappresentare e se ha utilizzato autorizzazioni di rappresentazione negli ultimi 90 giorni.

Il motore per suggerimenti IAM non utilizza autonomamente gli insight sul movimento laterale per generare nuovi suggerimenti sui ruoli. Questo perché, se un account di servizio utilizza le proprie autorizzazioni di rappresentazione, il motore per suggerimenti IAM non può suggerire in modo sicuro di rimuoverle. Tuttavia, se un suggerimento sul ruolo suggerisce di rimuovere queste autorizzazioni perché non vengono utilizzate, il motore per suggerimenti IAM collegherà l'insight sul movimento laterale a quel suggerimento. Questo collegamento consente di dare priorità ai suggerimenti sui ruoli per gli account di servizio che dispongono di autorizzazioni di rappresentazione efficaci e inutilizzate tra i progetti.

Per scoprire come gestire gli approfondimenti sul movimento laterale, vedi Gestire gli insight sul movimento laterale.

Disponibilità

Gli insight sui criteri, gli insight sui movimenti laterali e i suggerimenti sui ruoli non vengono generati per tutti i ruoli concessi alle entità. Leggi le sezioni seguenti per comprendere i ruoli per i quali vengono generati insight su criteri, insight sui movimenti laterali e suggerimenti.

Disponibilità degli insight sulle norme

Affinché il motore per suggerimenti IAM generi un insight sul criterio per un ruolo, deve essere vero quanto segue:

  • Il criterio di autorizzazione IAM che concede il ruolo deve essere associato a una delle seguenti risorse:

    • Bucket Cloud Storage
    • Set di dati BigQuery
    • Progetto
    • Cartella
    • Organizzazione

    Il motore per suggerimenti IAM genera solo insight sui criteri per i ruoli concessi in queste risorse.

  • L'associazione di ruoli che concede il ruolo non deve avere una condizione. Il motore per suggerimenti IAM non genera insight sui criteri per le associazioni di ruoli condizionali.

  • L'entità a cui viene concesso il ruolo deve essere uno dei seguenti tipi:

    Per maggiori informazioni sui tipi di entità, consulta Identificatori entità.

Possono essere necessari fino a 10 giorni prima che il motore per suggerimenti IAM generi insight sui criteri per un ruolo appena concesso.

Gli insight sui criteri esistenti vengono aggiornati quotidianamente in base all'utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano gli insight sui criteri in genere sono in ritardo di massimo due giorni rispetto all'utilizzo effettivo.

Disponibilità di insight sui movimenti laterali

Gli insight sui movimenti laterali vengono generati per i ruoli concessi per le seguenti risorse:

  • Organizzazioni
  • Cartelle
  • Progetti
  • Account di servizio

Disponibilità dei suggerimenti sui ruoli

Affinché il motore per suggerimenti IAM generi un suggerimento sul ruolo per un ruolo, è necessario che si verifichi quanto segue:

  • Al ruolo deve essere associato un insight sul criterio. Questi approfondimenti dei criteri fungono da base per il suggerimento.
  • Deve essere più lungo del periodo minimo di osservazione dalla concessione del ruolo. Ciò garantisce che il motore per suggerimenti IAM disponga di dati sull'utilizzo sufficienti per generare un suggerimento. Per impostazione predefinita, il periodo di osservazione minimo è di 90 giorni, ma puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, consulta Configurare la generazione di suggerimenti per i ruoli.
  • Se l'entità a cui viene concesso il ruolo è un agente di servizio, il ruolo deve essere Proprietario, Editor o Visualizzatore. Il motore per suggerimenti IAM non genera suggerimenti sui ruoli per gli agenti di servizio con altri ruoli. Per maggiori dettagli, consulta Suggerimenti sui ruoli per gli agenti di servizio.

Se un ruolo è stato concesso troppo di recente o non dispone di insight, la colonna Autorizzazioni analizzate nella console Google Cloud mostra un'icona .

In alcuni casi il motore per suggerimenti IAM non genera suggerimenti sui ruoli per un ruolo, anche se è trascorso tempo sufficiente e al ruolo è associato un insight. Ciò può accadere per i seguenti motivi:

  • Non esistono ruoli IAM predefiniti più appropriati del ruolo attuale. Se un'entità ha già un ruolo predefinito che ne riduce al minimo le autorizzazioni o che include meno autorizzazioni rispetto ad altri ruoli predefiniti, il motore per suggerimenti IAM non può consigliare un ruolo predefinito diverso.

    Potresti riuscire a ridurre le autorizzazioni dell'entità creando un ruolo personalizzato per l'entità.

  • L'entità è un agente di servizio e il ruolo non è un ruolo di base. Il motore per suggerimenti IAM genera suggerimenti sui ruoli solo per gli agenti di servizio che hanno un ruolo di base (Proprietario, Editor o Visualizzatore). Per maggiori dettagli, consulta Suggerimenti sui ruoli per gli agenti di servizio.

  • Nessun'altra entità ha il ruolo di base Proprietario per il progetto. Almeno un'entità deve avere il ruolo Proprietario (roles/owner) per ogni progetto. Se solo un'entità ha questo ruolo, il motore per suggerimenti IAM non consiglierà di revocare o sostituire il ruolo.

In questi casi, la colonna Autorizzazioni analizzate nella console Google Cloud mostra l'utilizzo delle autorizzazioni dell'entità, ma non presenta un'icona Suggerimento disponibile .

I suggerimenti sui ruoli esistenti vengono aggiornati quotidianamente in base all'utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano i suggerimenti sui ruoli in genere sono indietro di due giorni rispetto all'utilizzo effettivo.

Priorità e gravità

La priorità e la gravità degli insight ti aiutano a comprendere l'urgenza di un suggerimento o di un insight e a definire le priorità di conseguenza.

Priorità dei suggerimenti dei ruoli

Ai suggerimenti vengono assegnati livelli di priorità in base alla loro urgenza percepita. I livelli di priorità vanno da P0 (priorità massima) a P4 (priorità più bassa).

La priorità di un suggerimento sul ruolo dipende dal ruolo a cui è destinato:

Dettagli suggerimento Priorità Spiegazione
Suggerimenti per i ruoli che concedono l'accesso pubblico ai bucket Cloud Storage P1 I bucket accessibili pubblicamente sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery P1 I set di dati pubblicamente accessibili sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi per un progetto, una cartella o un'organizzazione P2 I ruoli di base sono altamente permissivi e l'applicazione di suggerimenti per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso.
Suggerimenti che non concedono l'accesso pubblico o i ruoli di base P4 Sebbene questi suggerimenti ti aiutino a ridurre le autorizzazioni in eccesso, non rimuovono l'accesso pubblico o i ruoli di base altamente permissivi, il che li rende una priorità inferiore.

Gravità degli approfondimenti

Agli insight vengono assegnati livelli di gravità in base all'urgenza percepita. I livelli di gravità possono essere LOW, MEDIUM, HIGH o CRITICAL.

La gravità di un approfondimento sui criteri dipende dal ruolo a cui è destinato:

Dettagli insight Gravità Spiegazione
Insight per i ruoli che concedono l'accesso pubblico ai bucket Cloud Storage CRITICAL I bucket accessibili pubblicamente sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Insight per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery CRITICAL I set di dati pubblicamente accessibili sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Insight per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi per un progetto, una cartella o un'organizzazione HIGH I ruoli di base sono altamente permissivi e gestire gli insight per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso.
Insight che non concedono l'accesso pubblico o i ruoli di base LOW Sebbene questi insight mettano in evidenza autorizzazioni in eccesso, non prevedono l'accesso pubblico o ruoli di base altamente permissivi, il che li rende una priorità inferiore.

Tutti gli approfondimenti sul movimento laterale hanno una gravità pari a LOW.

Come vengono applicati i suggerimenti sui ruoli

Il motore per suggerimenti IAM non applica automaticamente i suggerimenti. Devi invece esaminare i consigli e decidere se applicarli o ignorarli. Per scoprire come rivedere, applicare e ignorare i suggerimenti sui ruoli, consulta una delle seguenti guide:

Audit logging

Quando applichi o ignori un suggerimento, il motore per suggerimenti IAM crea una voce di log. Puoi visualizzare queste voci nella cronologia dei suggerimenti oppure puoi visualizzarle negli audit log di Google Cloud.

Sottotipi di suggerimenti sui ruoli

I suggerimenti sui ruoli sono suddivisi in diversi sottotipi diversi in base all'azione consigliata. Se utilizzi gcloud CLI o l'API REST, puoi usare questi sottotipi per filtrare i suggerimenti.

Sottotipo Descrizione
REMOVE_ROLE Un suggerimento per rimuovere il ruolo dell'entità a livello di progetto, cartella o organizzazione.
REMOVE_ROLE_BIGQUERY_DATASET Un suggerimento per la rimozione del ruolo a livello di set di dati dell'entità.
REMOVE_ROLE_STORAGE_BUCKET Un suggerimento per la rimozione del ruolo a livello di bucket dell'entità.
REPLACE_ROLE Un suggerimento per sostituire il ruolo a livello di progetto, cartella o organizzazione dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente oppure uno o più ruoli predefiniti.
REPLACE_ROLE_CUSTOMIZABLE Un suggerimento per sostituire il ruolo dell'entità con un nuovo ruolo personalizzato meno permissivo rispetto al ruolo attuale.
REPLACE_ROLE_BIGQUERY_DATASET Un suggerimento per sostituire il ruolo a livello di set di dati dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti.
REPLACE_ROLE_STORAGE_BUCKET Un suggerimento per sostituire il ruolo a livello di bucket dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti.
SERVICE_AGENT_WITH_DEFAULT_ROLE Un suggerimento per sostituire il ruolo Proprietario, Editor o Visualizzatore di un agente di servizio con il ruolo concesso automaticamente all'account di servizio al momento della creazione. Per maggiori informazioni, consulta Suggerimenti sui ruoli per gli agenti di servizio.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Un suggerimento per sostituire il ruolo Proprietario, Editor o Visualizzatore di un agente di servizio con un ruolo meno permissivo. Per maggiori informazioni, consulta Suggerimenti sui ruoli per gli agenti di servizio.

Suggerimenti sui ruoli per gli agenti di servizio

Per gli agenti di servizio, il motore per suggerimenti IAM fornisce solo suggerimenti per i ruoli di base (Proprietario, Editor o Visualizzatore).

I suggerimenti per gli agenti di servizio sono suddivisi in due sottotipi di suggerimenti.

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni agenti di servizio viene automaticamente concesso un ruolo di agente di servizio per garantire che i servizi Google Cloud funzionino correttamente. Se sostituisci questo ruolo con un ruolo di base (Proprietario, Editor o Visualizzatore), un suggerimento sul ruolo potrebbe suggerire di ripristinare il ruolo di agente di servizio originale per rimuovere le autorizzazioni in eccesso, anche se il ruolo di agente di servizio dispone di autorizzazioni che non sono nel ruolo di base. Questi suggerimenti hanno il sottotipo SERVICE_AGENT_WITH_DEFAULT_ROLE. Ti aiutano a rimuovere in sicurezza le autorizzazioni in eccesso garantendo al contempo che tutti i servizi Google Cloud funzionino correttamente.

I suggerimenti SERVICE_AGENT_WITH_DEFAULT_ROLE sono l'unico tipo di suggerimento che potrebbe suggerire ruoli con autorizzazioni non incluse nel ruolo attuale.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

Se a un agente di servizio non viene concesso automaticamente un ruolo al momento della creazione, i suggerimenti per l'agente di servizio si basano esclusivamente sulle autorizzazioni utilizzate dall'agente di servizio. Questi suggerimenti hanno il sottotipo SERVICE_AGENT_WITHOUT_DEFAULT_ROLE.

Suggerimenti sui ruoli in Security Command Center

Se hai il livello Premium di Security Command Center, puoi visualizzare alcuni sottotipi di suggerimenti sui ruoli come risultati in Security Command Center. Ogni sottotipo è associato a un rilevatore:

Sottotipo di suggerimento Categoria risultati
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

Per ulteriori informazioni sulla visualizzazione dei suggerimenti sui ruoli in Security Command Center, consulta il motore per suggerimenti IAM nella documentazione di Security Command Center.

Prezzi

I suggerimenti sui ruoli a livello di progetto, cartella e organizzazione per i ruoli di base sono disponibili senza costi aggiuntivi.

Le seguenti funzionalità avanzate del motore per suggerimenti IAM richiedono un'attivazione a livello di organizzazione del livello premium di Security Command Center:

  • Suggerimenti per i ruoli non di base
  • Suggerimenti per i ruoli concessi per risorse diverse da organizzazioni, cartelle e progetti, ad esempio suggerimenti per i ruoli concessi nei bucket Cloud Storage
  • Consigli che suggeriscono ruoli personalizzati
  • Approfondimenti sulle norme
  • Informazioni sul movimento laterale

Per ulteriori informazioni, consulta la sezione Domande sulla fatturazione.

Esempi di suggerimenti sui ruoli

I seguenti esempi mostrano i tipi di consigli che puoi ricevere.

Revocare un ruolo esistente

All'utente my-user@example.com è stato concesso il ruolo Browser in un progetto. Il ruolo Browser include sei autorizzazioni che consentono all'utente di visualizzare le risorse nel progetto. Tuttavia, negli ultimi 90 giorni, my-user@example.com non ha visualizzato alcuna risorsa.

Di conseguenza, il motore per suggerimenti IAM genera un suggerimento per il ruolo che suggerisce di revocare il ruolo Browser da 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"
}

Sostituisci un ruolo esistente

A un account di servizio è stato concesso il ruolo Editor (roles/editor) su un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede l'accesso esteso al progetto. Tuttavia, negli ultimi 90 giorni, l'account di servizio ha utilizzato solo alcune di queste autorizzazioni.

Di conseguenza, il motore per suggerimenti IAM genera un suggerimento per il ruolo che suggerisce di revocare il ruolo Editor e sostituirlo con una combinazione di altri due ruoli, rimuovendo così migliaia di autorizzazioni in eccesso:

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"
}

Creazione di un ruolo personalizzato

All'utente my-user@example.com è stato concesso il ruolo Amministratore Cloud Trace (roles/cloudtrace.admin) su un progetto. Il ruolo include più di 10 autorizzazioni, ma un insight sui criteri indica che, negli ultimi 90 giorni, my-user@example.com ha utilizzato solo 4 di queste autorizzazioni.

Di conseguenza, il motore per suggerimenti IAM genera un suggerimento per il ruolo che consiglia di creare un ruolo personalizzato che includa solo le autorizzazioni effettivamente utilizzate da my-user@example.com:

Console

gcloud

Il sottotipo REPLACE_ROLE_CUSTOMIZABLE indica che il motore per suggerimenti IAM consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, [recupera l'approfondimento sui criteri associati][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

Il sottotipo REPLACE_ROLE_CUSTOMIZABLE indica che il motore per suggerimenti IAM consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, [recupera l'approfondimento sui criteri associati][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"
}

Il suggerimento sul ruolo suggerisce anche un'altra opzione, che è quella di sostituire il ruolo esistente con il ruolo Utente Cloud Trace (roles/cloudtrace.user). Questo ruolo predefinito include un numero leggermente inferiore di autorizzazioni rispetto al ruolo Amministratore di Cloud Trace.

Sostituzione dei ruoli con autorizzazioni suggerite dal machine learning

A un account di servizio è stato concesso il ruolo Editor (roles/editor) su un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede l'accesso esteso a un progetto. Tuttavia, un insight sui criteri indica che negli ultimi 90 giorni l'account di servizio ha utilizzato meno di 10 autorizzazioni.

L'approfondimento sulle norme evidenzia anche diverse autorizzazioni di cui probabilmente l'account di servizio avrà bisogno in futuro. Il motore per suggerimenti IAM ha identificato queste autorizzazioni utilizzando il machine learning.

Il motore per suggerimenti IAM genera un suggerimento sul ruolo che suggerisce di revocare il ruolo Editor e sostituirlo con il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin), che concede il controllo completo degli oggetti in un bucket Cloud Storage. Questa modifica rimuove migliaia di autorizzazioni in eccesso, pur continuando a includere sia le autorizzazioni utilizzate dall'account di servizio sia le autorizzazioni che l'account di servizio potrebbe aver bisogno in futuro:

Console

Il motore per suggerimenti IAM utilizza un'icona Machine learning per identificare le autorizzazioni aggiunte in base al machine learning del motore per suggerimenti IAM anziché sull'utilizzo delle autorizzazioni. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata in base al machine learning:

gcloud

Le autorizzazioni aggiunte in base al machine learning del motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. Vengono invece elencate negli insight sulle norme associati al consiglio. Tutte le autorizzazioni basate su ML sono elencate nel campo inferredPermissions dell'insight. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata in base al 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

Per scoprire come ottenere un approfondimento sui criteri, consulta [Esaminare gli insight sulle norme][get-policy-insight].

REST

Le autorizzazioni aggiunte in base al machine learning del motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. Vengono invece elencate negli insight sulle norme associati al consiglio. Tutte le autorizzazioni basate su ML sono elencate nel campo inferredPermissions dell'insight. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata in base al 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"
}

Per scoprire come ottenere un approfondimento sui criteri, consulta [Esaminare gli insight sulle norme][get-policy-insight].

Passaggi successivi