Panoramica dei suggerimenti sui ruoli

I suggerimenti sui ruoli ti aiutano a 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 vengono generati dal motore per suggerimenti IAM. Il motore per suggerimenti IAM è uno dei motori per suggerimenti offerti da Recommender.

Ogni suggerimento per il ruolo ti consiglia di rimuovere o sostituire un ruolo che concede alle entità autorizzazioni in eccesso. Su larga scala, questi suggerimenti semplificano l'applicazione del 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 approfondimenti sui criteri. Gli insight sui criteri sono risultati basati su ML che riguardano l'utilizzo delle autorizzazioni da parte di un entità.

Alcuni consigli sono associati anche alle informazioni sul movimento laterale. Questi approfondimenti identificano i ruoli che consentono agli account di servizio in un progetto di simulare l'identità di account di servizio in un altro progetto. Per ulteriori informazioni, consulta In che modo vengono generati gli approfondimenti sui movimenti laterali.

Come vengono generati gli insight sui criteri

Gli approfondimenti sui criteri mettono in evidenza le autorizzazioni nei ruoli di un'entità che non vengono utilizzate dall'entità stessa.

Il motore per suggerimenti IAM genera approfondimenti sui criteri confrontando il numero totale di autorizzazioni di un ruolo con le autorizzazioni utilizzate dal ruolo negli ultimi 90 giorni. Se il ruolo è stato concesso da meno di 90 giorni, il Motore per suggerimenti IAM esamina l'utilizzo delle autorizzazioni dell'entità IAM nel periodo di tempo successivo alla concessione del ruolo.

Un entità principale 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.

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

  • In modo indiretto, utilizzando la console Google Cloud per lavorare con le risorse Google Cloud

    Ad esempio, nella console Google Cloud puoi modificare un'istanza di 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.

Per determinare le autorizzazioni utilizzate dall'entità, il motore per suggerimenti IAM utilizza i dati di accesso IAM aggregati. Per scoprire come esportare i dati utilizzati dal Recommender IAM per questi approfondimenti, consulta Esportare i dati per i suggerimenti sui ruoli.

Il motore per suggerimenti IAM utilizza anche il machine learning per identificare le autorizzazioni nel ruolo corrente di un'entità di cui l'entità potrebbe aver bisogno in futuro, anche se non le ha utilizzate di recente. Per ulteriori informazioni, consulta Machine learning per approfondimenti sulle norme in questa pagina.

Gli approfondimenti sui criteri non vengono generati per tutti i ruoli IAM concessi alle entità. Per ulteriori informazioni sul motivo per cui un ruolo potrebbe non avere un'informazione sulle norme, consulta la sezione Disponibilità in questa pagina.

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

Machine learning per gli approfondimenti sui criteri

In alcuni casi, è probabile che un entità abbia bisogno di determinate autorizzazioni incluse nei suoi ruoli attuali, ma che non ha utilizzato di recente. Per identificare queste autorizzazioni, il motore per suggerimenti IAM utilizza un modello di machine learning (ML) quando genera insight sui criteri.

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

  • Modelli di cooccorrenza 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 correlate in qualche modo e che sono necessarie insieme per eseguire un attività su Google Cloud. Se il modello di ML osserva questo schema abbastanza spesso, la volta successiva che un utente diverso utilizza le autorizzazioni A e B, il modello suggerirà che l'utente potrebbe aver bisogno anche dell'autorizzazione C.

  • Conoscenza del dominio 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 insieme.

Oltre a questi indicatori, il modello utilizza anche l'embedding delle parole per calcolare quanto siano semanticamente simili le autorizzazioni. Le autorizzazioni semanticamente simili saranno "vicine" tra loro dopo l'inserimento e avranno maggiori probabilità di essere concesse insieme. Ad esempio, bigquery.datasets.get e bigquery.tables.list si troveranno molto vicini dopo l'inserimento.

Tutti i dati utilizzati nella pipeline di machine learning del recommender IAM sono k-anonimi, il che significa che le persone nel set di dati anonimizzato non possono essere reidentificate. Per raggiungere questo livello di anonimità, eliminiamo tutte le informazioni che consentono l'identificazione personale (PII), come l'ID utente relativo a ogni modello di utilizzo delle autorizzazioni. Dopodiché eliminiamo tutti i pattern di utilizzo che non si verificano abbastanza di frequente in Google Cloud. Il modello globale viene addestrato su questi dati anonimizzati.

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

Come vengono generati i suggerimenti sui ruoli

Se un'informazione sulle norme indica che un'entità non ha bisogno di tutte le autorizzazioni nel proprio ruolo, il motore per suggerimenti ruolo IAM valuta il ruolo per determinare se può essere revocato o se esiste un altro ruolo più adatto. Se il ruolo può essere revocato, il motore per suggerimenti IAM genera un suggerimento per revocarlo. Se esiste un altro ruolo più adatto, il motore per suggerimenti IAM genera un suggerimento per sostituire il ruolo con un ruolo suggerito. Questo ruolo suggerito può essere un nuovo ruolo personalizzato, un ruolo personalizzato esistente o uno o più ruoli predefiniti. Ad eccezione dei consigli per agenti di servizio, un suggerimento per il ruolo non suggerisce mai una modifica che aumenti il livello di accesso di un'entità.

I consigli sui ruoli vengono generati in base solo ai controlli di accesso IAM. Non tengono conto di altri tipi di controlli di accesso, come gli elenchi di controllo dell'accesso (ACL) e il controllo degli accessi basato su ruoli (RBAC) di Kubernetes. Se utilizzi altri tipi di controlli di accesso, presta particolare attenzione quando esamini i consigli e valuta il rapporto tra questi controlli di accesso e i tuoi criteri di autorizzazione.

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

Periodo di osservazione

Il periodo di osservazione di un consiglio per i ruoli è il numero di giorni di dati sull'utilizzo delle autorizzazioni su cui si basa il consiglio.

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

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

Se sono trascorsi 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 sostituzioni per un ruolo, suggerisce sempre un ruolo personalizzato esistente o uno o più ruoli predefiniti che sembrano essere più adatti alle esigenze dell'entità.

Se il Recommender IAM identifica un pattern di utilizzo delle autorizzazioni comune nella tua organizzazione che non corrisponde a un ruolo predefinito o personalizzato esistente, potrebbe anche consigliarti di creare un nuovo ruolo personalizzato a livello di progetto. Questo ruolo personalizzato include solo le autorizzazioni consigliate. Puoi modificare il consiglio per il ruolo personalizzato aggiungendo o rimuovendo autorizzazioni.

Se vuoi applicare il principio del privilegio minimo nel modo più rigoroso possibile, scegli il nuovo ruolo personalizzato. Il consigliatore IAM crea il ruolo personalizzato a livello di progetto. Sei responsabile della gestione e dell'aggiornamento dei ruoli personalizzati per i tuoi progetti.

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

Il motore per suggerimenti ruolo IAM consiglia nuovi ruoli personalizzati solo per i ruoli concessi in un progetto. Non consiglia nuovi ruoli personalizzati per i ruoli concessi su altre risorse, come cartelle o organizzazioni.

Inoltre, il motore per suggerimenti IAM non consiglia nuovi ruoli personalizzati nei seguenti casi:

  • La tua organizzazione ha già almeno 100 ruoli personalizzati.
  • Il tuo progetto ha già almeno 25 ruoli personalizzati.

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

Come vengono generati gli insight sul movimento laterale

Il movimento laterale si verifica quando un account di servizio in un progetto è autorizzato a simulare l'identità di un account di servizio in un altro progetto. Ad esempio, un account di servizio potrebbe essere stato creato nel progetto A, ma avere autorizzazioni per simulare l'identità di un account di servizio nel progetto B.

Queste autorizzazioni possono comportare una catena di furti d'identità nei progetti che dà alle entità l'accesso non intenzionale alle risorse. Ad esempio, se un'entità assume il ruolo dell'account di servizio nel progetto A, può utilizzare quell'account di servizio per assumere il ruolo dell'account di servizio nel progetto B. Se l'account di servizio nel progetto B ha l'autorizzazione per simulare l'identità di altri account di servizio in altri progetti della tua organizzazione, il principale può continuare a utilizzare la simulazione dell'identità dell'account di servizio per spostarsi da un progetto all'altro, acquisendo le autorizzazioni man mano che procede.

Il Recommender IAM genera approfondimenti sul lateral movement identificando i ruoli che soddisfano i seguenti criteri:

  • L'entità a cui è stato concesso il ruolo è un account di servizio non creato nel progetto.
  • Il ruolo include una delle seguenti autorizzazioni, che consentono a un'entità di rappresentare 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 ruolo IAM genera un insight sul movimento laterale per il ruolo. Questa informazione contiene informazioni sulle funzionalità di furto d'identità dell'account di servizio, inclusi gli account di servizio di cui può assumere l'identità e se ha utilizzato autorizzazioni di furto d'identità negli ultimi 90 giorni.

Il motore per suggerimenti ruolo IAM non utilizza autonomamente gli approfondimenti sui movimenti laterali per generare nuovi consigli sui ruoli. Questo perché, se un account di servizio utilizza le autorizzazioni di rappresentazione, il Recommender IAM non può suggerire di rimuoverle in sicurezza. Tuttavia, se un consiglio sul ruolo suggerisce di rimuovere queste autorizzazioni perché non vengono utilizzate, il Recommender IAM collegherà l'informazione sul movimento laterale a quel consiglio. Questo collegamento ti aiuta a dare la priorità ai consigli sui ruoli per gli account di servizio che dispongono di autorizzazioni di rappresentazione potenti e inutilizzate nei progetti.

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

Disponibilità

Gli approfondimenti sulle norme, sugli spostamenti laterali e sui consigli per i ruoli non vengono generati per tutti i ruoli concessi alle entità. Leggi le seguenti sezioni per comprendere i ruoli per i quali vengono generati approfondimenti sulle norme, sugli spostamenti laterali e sui consigli.

Disponibilità di informazioni sulle norme

Affinché il motore per suggerimenti ruolo IAM generi un insight del criterio per un ruolo, deve verificarsi quanto segue:

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

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

    Il Recommender IAM genera approfondimenti sulle norme solo per i ruoli concessi su queste risorse.

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

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

    • Utente
    • Service account
    • Gruppo
    • allUsers
    • allAuthenticatedUsers
    • Valori di convenienza di Cloud Storage
    • Adempimento a un gruppo speciale BigQuery
    • Uno dei seguenti tipi di identità federate:

      • Tutte le identità in un pool di identità del workload
      • Un'unica identità in un pool di identità del workload
      • Tutte le identità in un pool di identità della forza lavoro
      • Un'unica identità in un pool di identità per la forza lavoro
      • Tutti i pod Google Kubernetes Engine che utilizzano un account di servizio Kubernetes specifico

    Per informazioni dettagliate sul formato dell'identificatore per ogni tipo di principale, consulta Identificatori principali.

Potrebbero essere necessari fino a 10 giorni prima che il Recommender IAM genere insight sui criteri per un ruolo appena concesso.

Gli approfondimenti esistenti sulle norme vengono aggiornati quotidianamente in base al tuo utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano gli approfondimenti sulle norme in genere sono in ritardo fino a due giorni rispetto all'utilizzo effettivo.

Disponibilità degli approfondimenti sul movimento laterale

Gli insight sul lateral movement vengono generati per i ruoli concessi sulle seguenti risorse:

  • Organizzazioni
  • Cartelle
  • Progetti
  • Account di servizio

Disponibilità dei suggerimenti sui ruoli

Affinché il motore per suggerimenti IAM generi un suggerimento per un ruolo, deve verificarsi quanto segue:

  • Al ruolo deve essere associato un'informazione sui criteri. Questa informazione sulle norme costituisce la base del consiglio.
  • Deve essere trascorso più del periodo di osservazione minimo dalla concessione del ruolo. In questo modo, il Recommender IAM ha dati di utilizzo sufficienti per fornire un consiglio. Per impostazione predefinita, il periodo di osservazione minimo è di 90 giorni, ma puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, vedi Configurare la generazione di consigli sui ruoli.
  • Se l'entità a cui è stato concesso il ruolo è un agente di servizio, il ruolo deve essere Proprietario, Editor o Visualizzatore. Il motore per suggerimenti ruolo IAM non genera suggerimenti di ruolo per gli agenti di servizio con altri ruoli. Per maggiori dettagli, vedi Suggerimenti sui ruoli per gli agenti di servizio.

Se un ruolo è stato concesso troppo di recente o non contiene informazioni, la colonna Autorizzazioni analizzate in Google Cloud Console mostra un'icona .

In alcuni casi, il motore per suggerimenti ruolo IAM non genera consigli per un ruolo, anche se è trascorso tempo sufficiente e al ruolo è associato un'informazione. Questo può accadere per i seguenti motivi:

  • Non esistono ruoli IAM predefiniti più appropriati del ruolo corrente. Se un entità ha già un ruolo predefinito che riduce al minimo le autorizzazioni o che include meno autorizzazioni rispetto ad altri ruoli predefiniti, il consigliatore 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 è 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, vedi Suggerimenti sui ruoli per gli agenti di servizio.

  • Nessun'altra entità ha il ruolo di base Proprietario per il progetto. Per ogni progetto deve essere presente almeno un'entità con il ruolo Proprietario (roles/owner). Se solo un'entità ha questo ruolo, il motore per suggerimenti ruolo 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 del principale, ma non ha un'icona Consiglio disponibile .

I consigli sui ruoli esistenti vengono aggiornati quotidianamente in base al tuo utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano i consigli sui ruoli tipicamente sono in ritardo fino a due giorni rispetto all'utilizzo effettivo.

Priorità e gravità

La priorità del consiglio e la gravità dell'approfondimento ti aiutano a capire l'urgenza di un consiglio o di un approfondimento e a stabilire le priorità di conseguenza.

Priorità del suggerimento sul ruolo

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

La priorità di un consiglio per i ruoli dipende dal ruolo per cui è rivolto:

Dettagli suggerimento Priorità Spiegazione
Consigli 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.
Consigli per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery P1 I set di dati accessibili pubblicamente sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Consigli per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi a un progetto, a una cartella o a un'organizzazione P2 I ruoli di base sono molto permissivi e l'applicazione dei consigli per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso.
Consigli 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 ne riduce la priorità.

Gravità degli approfondimenti

Agli approfondimenti vengono assegnati livelli di gravità in base alla loro urgenza percepita. I livelli di gravità possono essere LOW, MEDIUM, HIGH o CRITICAL.

La gravità di un'informazione sulle norme dipende dal ruolo a cui è destinata:

Dettagli insight Gravità Spiegazione
Approfondimenti sui 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.
Approfondimenti per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery CRITICAL I set di dati accessibili pubblicamente sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Approfondimenti sui ruoli di base (Proprietario, Editor e Visualizzatore) concessi a un progetto, a una cartella o a un'organizzazione HIGH I ruoli di base sono molto permissivi e l'utilizzo di informazioni per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso.
Approfondimenti che non concedono l'accesso pubblico o i ruoli di base LOW Sebbene questi approfondimenti mettano in evidenza autorizzazioni in eccesso, non comportano l'accesso pubblico o ruoli di base altamente permissivi, il che li rende una priorità più bassa.

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 consigli. Devi invece esaminare i consigli e decidere se applicarli o ignorarli. Per scoprire come esaminare, applicare e ignorare i consigli sui ruoli, consulta una delle seguenti guide:

Audit logging

Quando applichi o ignori un consiglio, il motore per suggerimenti IAM crea una voce di log. Puoi visualizzare queste voci nella cronologia dei consigli o nei log di controllo di Google Cloud.

Sottotipi di suggerimenti sui ruoli

I consigli sui ruoli sono suddivisi in diversi sottotipi in base all'azione consigliata. Se utilizzi l'interfaccia a riga di comando gcloud o l'API REST, puoi utilizzare questi sottotipi per filtrare i consigli.

Sottotipo Descrizione
REMOVE_ROLE Un consiglio per rimuovere il ruolo dell'entità a livello di progetto, di cartella o di organizzazione.
REMOVE_ROLE_BIGQUERY_DATASET Un consiglio per rimuovere il ruolo a livello di set di dati dell'entità.
REMOVE_ROLE_STORAGE_BUCKET Un consiglio per rimuovere il ruolo a livello di bucket dell'entità.
REPLACE_ROLE Un consiglio per sostituire il ruolo dell'entità a livello di progetto, di cartella o di organizzazione con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti.
REPLACE_ROLE_CUSTOMIZABLE Un consiglio per sostituire il ruolo dell'entità con un nuovo ruolo personalizzato meno permissivo rispetto al suo ruolo attuale.
REPLACE_ROLE_BIGQUERY_DATASET Un consiglio 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 consiglio 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 consiglio 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 ulteriori informazioni, consulta Suggerimenti sui ruoli per gli agenti di servizio.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Un consiglio per sostituire il ruolo Proprietario, Editor o Visualizzatore di un agente di servizio con un ruolo meno permissivo. Per ulteriori 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 consigli per i ruoli di base (Proprietario, Editor o Visualizzatore).

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

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni agenti di servizio viene assegnato automaticamente un ruolo agente di servizio per garantire il corretto funzionamento dei servizi Google Cloud. Se sostituisci questo ruolo con un ruolo di base (Proprietario, Editor o Visualizzatore), un suggerimento per il ruolo potrebbe suggerirti di ripristinare il ruolo agente di servizio originale per rimuovere le autorizzazioni in eccesso, anche se il ruolo agente di servizio ha autorizzazioni non presenti nel ruolo di base. Questi consigli hanno il tipo SERVICE_AGENT_WITH_DEFAULT_ROLE. Ti aiutano a rimuovere in sicurezza le autorizzazioni in eccesso, garantendo al contempo il corretto funzionamento di tutti i servizi Google Cloud.

I consigli SERVICE_AGENT_WITH_DEFAULT_ROLE sono l'unico tipo di consigli che potrebbe suggerire ruoli con autorizzazioni non presenti nel ruolo corrente.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

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

Consigli sui ruoli in Security Command Center

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

Sottotipo di consiglio 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 su come visualizzare i suggerimenti sui ruoli in Security Command Center, consulta Motore per suggerimenti IAM nella documentazione di Security Command Center.

Prezzi

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

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
  • Consigli per i ruoli concessi a risorse diverse da organizzazioni, cartelle e progetti, ad esempio consigli per i ruoli concessi nei bucket Cloud Storage
  • Consigli che suggeriscono ruoli personalizzati
  • Approfondimenti sulle norme
  • Approfondimenti sul movimento laterale

Per ulteriori informazioni, vedi Domande sulla fatturazione.

Esempi di suggerimenti sui ruoli

Gli esempi riportati di seguito mostrano i tipi di consigli che puoi ricevere.

Revocare un ruolo esistente

All'utente my-user@example.com è stato assegnato 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 suggerendo 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"
}

Sostituire un ruolo esistente

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

Pertanto, il motore per suggerimenti IAM genera un suggerimento per il ruolo suggerendo di revocare il ruolo Editor e sostituirlo con una combinazione di altri due ruoli, che rimuove 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"
}

Creare un ruolo personalizzato

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

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

Console

gcloud

Il sottotipo REPLACE_ROLE_CUSTOMIZABLE indica che il Recommender IAM consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, visualizza l'approfondimento relativo alle norme associate.

{
  "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 ruolo IAM consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, visualizza l'approfondimento relativo alle norme associate.

{
  "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 consiglio sul ruolo suggerisce anche un'altra opzione, ovvero 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 Cloud Trace.

Sostituzione del ruolo con le autorizzazioni suggerite dal machine learning

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

L'analisi delle norme mette in evidenza anche diverse autorizzazioni di cui l'account di servizio potrebbe avere bisogno in futuro. Il Recommender IAM ha identificato queste autorizzazioni utilizzando il machine learning.

Il motore per suggerimenti ruolo IAM genera un suggerimento di ruolo che ti consiglia di revocare il ruolo Editor e di 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, includendo al contempo sia le autorizzazioni utilizzate dall'account di servizio sia quelle di cui 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é all'utilizzo delle autorizzazioni. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata sulla base del machine learning:

gcloud

Le autorizzazioni aggiunte in base all'apprendimento automatico del Motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. ma sono elencate nelle informazioni sulle norme associate al suggerimento. Tutte le autorizzazioni basate sull'IA sono elencate nel inferredPermissions campo dell'approfondimento. 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 informazioni sulle norme, consulta uno dei seguenti articoli:

REST

Le autorizzazioni aggiunte in base all'apprendimento automatico del Motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. ma sono elencate nelle informazioni sulle norme associate al suggerimento. Tutte le autorizzazioni basate sull'IA sono elencate nel inferredPermissions campo dell'approfondimento. 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 informazioni sulle norme, consulta uno dei seguenti articoli:

Passaggi successivi