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 vengono generati dal motore per suggerimenti IAM. Il motore per suggerimenti IAM è uno dei suggerimenti 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 insight sui criteri. Gli insight sui criteri sono risultati basati su ML relativi all'utilizzo delle autorizzazioni di un'entità.

Alcuni consigli sono associati anche alle informazioni sullo spostamento laterale. Questi insight identificano i ruoli che consentono agli account di servizio in un progetto di impersonare account di servizio in un altro progetto. Per saperne di più, consulta Come vengono generati gli insight sul movimento laterale.

Come vengono generati gli insight sui criteri

Gli insight sui criteri evidenziano le autorizzazioni in un determinato ruolo che sono state effettivamente utilizzate da 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 l'associazione dei ruoli è stata creata meno di 90 giorni fa, il motore per suggerimenti IAM esamina l'utilizzo delle autorizzazioni dell'entità nel periodo successivo alla creazione dell'associazione.

Un'entità può utilizzare un'autorizzazione in alcuni 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, usi in modo efficace tutte le autorizzazioni che stai testando.

  • Indirettamente, utilizzando la console Google Cloud per lavorare con le risorse 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, il che richiede 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à che probabilmente avrà bisogno in futuro, anche se l'entità non ha utilizzato queste autorizzazioni di recente. Per ulteriori informazioni, consulta la sezione Machine learning per insight sui criteri in questa pagina.

Gli insight sui criteri non vengono generati per tutte le associazioni di ruoli IAM. Per saperne di più sul motivo per cui l'associazione di ruoli potrebbe non avere un insight sui criteri, consulta Disponibilità in questa pagina.

Per informazioni su 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 insight sui criteri

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:

  • Pattern di co-occorrenza comuni nella cronologia osservata: il fatto che in passato un utente abbia utilizzato le autorizzazioni A, B e C suggerisce che A, B e C potrebbero essere in qualche modo correlati e che sono necessari insieme per eseguire un'attività su Google Cloud. Se il modello ML osserva abbastanza spesso questo pattern, la prossima volta che un altro utente utilizza le autorizzazioni A e B, il modello suggerirà che anche l'utente potrebbe avere bisogno dell'autorizzazione C.

  • Conoscenza del dominio codificata nelle definizioni dei ruoli: IAM offre centinaia di diversi ruoli predefiniti specifici per il servizio. Se un ruolo predefinito contiene un insieme di autorizzazioni, è un segnale forte che quelle autorizzazioni devono essere concesse insieme.

Oltre a questi indicatori, il modello utilizza anche l'incorporamento di parole per calcolare quanto sono semanticamente simili le autorizzazioni. Dopo l'incorporamento, autorizzazioni semanticamente simili saranno "vicino" ed è più probabile che vengano 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 reidentificate. Per raggiungere questo livello di anonimato, eliminiamo tutte le informazioni che consentono l'identificazione personale (PII) come l'ID utente correlato a ogni modello di utilizzo delle autorizzazioni. Poi vengono eliminati tutti i pattern di utilizzo che non vengono visualizzati abbastanza di frequente su Google Cloud. Il modello globale viene addestrato con 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 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 potrebbe essere revocato o se esiste un altro ruolo più adatto. Se il ruolo può essere revocato, il motore per suggerimenti IAM genera un suggerimento relativo al ruolo per revocare il ruolo. Se c'è un altro ruolo più adatto, il motore per suggerimenti IAM genera un suggerimento per il ruolo per sostituire il ruolo con uno suggerito. Questo ruolo suggerito potrebbe essere un nuovo ruolo personalizzato, un ruolo personalizzato esistente o uno o più ruoli predefiniti. Ad eccezione del caso dei suggerimenti per gli account di servizio gestiti da Google, un suggerimento per il ruolo non suggerisce mai una modifica che aumenti il livello di accesso di un'entità.

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

Inoltre, i suggerimenti sui ruoli non vengono generati per tutte le associazioni di ruoli IAM. Per ulteriori informazioni sul motivo per cui l'associazione di ruoli potrebbe non avere un suggerimento per il ruolo, consulta Disponibilità in questa pagina.

Periodo di osservazione

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

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

Inoltre, il motore per suggerimenti IAM inizia a generare suggerimenti sui ruoli solo dopo aver accumulato dati sull'utilizzo delle autorizzazioni per un determinato numero di giorni. Questa durata è denominata periodo di osservazione minimo. Per impostazione predefinita, il periodo di osservazione minimo è 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 un valore inferiore a 90 giorni, riceverai consigli prima, ma la loro precisione potrebbe risentirne.

Se un'associazione di ruoli è precedente al periodo di osservazione minimo, ma successiva a 90 giorni, il periodo di osservazione corrisponde alla durata dell'associazione dei ruoli.

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 o uno o più ruoli predefiniti, che sembrano essere più adatti alle esigenze dell'entità.

Se il motore per suggerimenti IAM identifica un modello 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 per il ruolo personalizzato aggiungendo o rimuovendo le autorizzazioni.

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

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

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

  • È consigliabile 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 cinque nuovi ruoli personalizzati al giorno in ogni progetto e non più di 15 nuovi ruoli personalizzati nell'intera organizzazione.

Come vengono generate le informazioni sul movimento laterale

Lo spostamento laterale si verifica quando un account di servizio in un progetto dispone dell'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 rubare l'identità di un account di servizio nel progetto B.

Queste autorizzazioni possono comportare una catena di rappresentazioni tra progetti che concede alle entità un accesso involontario alle risorse. Ad esempio, se un'entità impersonifica l'account di servizio nel progetto A, può utilizzarlo per impersonare l'account di servizio nel progetto B. Se l'account di servizio nel progetto B dispone dell'autorizzazione per impersonare altri account di servizio in altri progetti dell'organizzazione, l'entità può continuare a utilizzare il furto dell'identità dell'account di servizio per passare da un progetto al progetto, ottenendo le autorizzazioni man mano che procedi.

Il motore per suggerimenti IAM genera insight sui movimenti laterali identificando le associazioni di ruoli che soddisfano i seguenti criteri:

  • L'entità nell'associazione dei ruoli è un account di servizio che non è stato creato nel progetto.
  • Il ruolo include una delle seguenti autorizzazioni, che consentono 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'associazione di ruoli soddisfa questi criteri, il motore per suggerimenti IAM genera un insight sullo spostamento laterale per l'associazione. Questo insight contiene informazioni sulle funzionalità di rappresentazione dell'account di servizio, inclusi gli account di servizio che può utilizzare e se sono state utilizzate autorizzazioni di rappresentazione negli ultimi 90 giorni.

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

Per scoprire come gestire le informazioni sul movimento laterale, vedi Gestire i dati sul movimento laterale.

Disponibilità

Gli insight sui criteri, gli insight sui movimenti laterali e i suggerimenti sui ruoli non vengono generati per ogni associazione di ruolo. Leggi le seguenti sezioni per comprendere le associazioni di ruoli per cui vengono generati gli insight sui criteri, gli approfondimenti sul movimento laterale e i suggerimenti.

Disponibilità degli insight sui criteri

Affinché il motore per suggerimenti IAM generi un insight sui criteri per un'associazione di ruoli, deve essere vero quanto segue:

  • Il criterio di autorizzazione IAM che contiene l'associazione dei ruoli 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 su queste risorse.

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

Potrebbero essere necessari fino a 10 giorni prima che il motore per suggerimenti IAM generi insight sui criteri per una nuova associazione di ruoli.

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 registrano un ritardo fino a due giorni rispetto all'utilizzo effettivo.

Disponibilità delle informazioni sul movimento laterale

Gli insight sugli spostamenti laterali vengono generati per le associazioni di ruoli nelle seguenti risorse:

  • Organizzazioni
  • Cartelle
  • Progetti
  • Account di servizio

Disponibilità dei suggerimenti sul ruolo

Affinché il motore per suggerimenti IAM generi un suggerimento sui ruoli per un'associazione di ruoli, deve essere vero quanto segue:

  • All'associazione dei ruoli deve essere associato un insight sui criteri. Queste informazioni sulle norme costituiscono la base del consiglio.
  • L'associazione dei ruoli deve essere precedente al periodo minimo di osservazione. Ciò garantisce che il motore per suggerimenti IAM disponga di dati sull'utilizzo sufficienti per formulare 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 sui ruoli.
  • Se l'entità nell'associazione dei ruoli è un account di servizio gestito da Google, l'associazione dei ruoli deve essere Proprietario, Editor o Visualizzatore. Il motore per suggerimenti IAM non genera suggerimenti sui ruoli per gli account di servizio gestiti da Google con altri ruoli. Per ulteriori dettagli, consulta Suggerimenti sui ruoli per gli account di servizio gestiti da Google.

Se un'associazione di ruoli è troppo nuova o non dispone di insight, la colonna Autorizzazioni analizzate nella console Google Cloud mostrerà un'icona .

In alcuni casi il motore per suggerimenti IAM non genera suggerimenti sui ruoli per l'associazione di un ruolo, anche se è abbastanza vecchio e ha informazioni associate. 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 agli 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 account di servizio gestito da Google e il ruolo non è un ruolo di base. Il motore per suggerimenti IAM genera suggerimenti sui ruoli per gli account di servizio gestiti da Google solo se l'account di servizio ha un ruolo di base (Proprietario, Editor o Visualizzatore). Per ulteriori dettagli, consulta Suggerimenti sui ruoli per gli account di servizio gestiti da Google.

  • Nessun altra entità ha il ruolo Proprietario di base per il progetto. Almeno un'entità deve avere il ruolo Proprietario (roles/owner) per ogni progetto. Se questo ruolo ha questo ruolo solo per un'entità, il motore per suggerimenti IAM non ti 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 l'icona Consiglio 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 registrano un ritardo di massimo due giorni rispetto all'utilizzo effettivo.

Priorità e gravità

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

Priorità dei suggerimenti del ruolo

Ai consigli vengono assegnati livelli di priorità in base alla loro urgenza percepita. I livelli di priorità sono compresi tra P0 (priorità più alta) e P4 (priorità più bassa).

La priorità di un suggerimento per i ruoli dipende dall'associazione dei ruoli per cui si riferisce il suggerimento:

Dettagli suggerimento Priorità Spiegazione
Suggerimenti per le associazioni di ruoli che concedono l'accesso pubblico ai bucket Cloud Storage P1 Chiunque può accedere ai bucket accessibili pubblicamente su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per le associazioni di ruoli che concedono l'accesso pubblico ai set di dati BigQuery P1 I set di dati accessibili pubblicamente sono accessibili da chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per le associazioni di ruoli che concedono ruoli di base (Proprietario, Editor e Visualizzatore) in un progetto, una cartella o un'organizzazione P2 I ruoli di base sono altamente permissivi e l'applicazione dei suggerimenti per questi ruoli può ridurre notevolmente le autorizzazioni concesse in eccesso.
Suggerimenti che non concedono accesso pubblico o ruoli di base P4 Anche se questi suggerimenti aiutano 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à insight

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 insight dei criteri dipende dall'associazione dei ruoli per cui si riferisce l'insight:

Dettagli insight Gravità Spiegazione
Insight per le associazioni di ruoli che concedono l'accesso pubblico ai bucket Cloud Storage CRITICAL Chiunque può accedere ai bucket accessibili pubblicamente su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Insight per le associazioni di ruoli che concedono l'accesso pubblico ai set di dati BigQuery CRITICAL I set di dati accessibili pubblicamente sono accessibili da chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Insight sulle associazioni di ruoli che concedono ruoli di base (Proprietario, Editor e Visualizzatore) in un progetto, una cartella o un'organizzazione HIGH I ruoli di base sono altamente permissivi e l'utilizzo degli insight per questi ruoli può ridurre notevolmente le autorizzazioni concesse in eccesso.
Insight che non concedono accesso pubblico o ruoli di base LOW Anche se questi insight evidenziano 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à di 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 informazioni su come esaminare, 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 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 rimuovere il ruolo a livello di set di dati dell'entità.
REMOVE_ROLE_STORAGE_BUCKET Un suggerimento per rimuovere il 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 o 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 account di servizio gestito da Google con il ruolo concesso automaticamente all'account di servizio al momento della creazione. Per maggiori informazioni, consulta Suggerimenti per gli account di servizio gestiti da Google.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Un suggerimento per sostituire il ruolo Proprietario, Editor o Visualizzatore di un account di servizio gestito da Google con un ruolo meno permissivo. Per maggiori informazioni, consulta la sezione Suggerimenti per gli account di servizio gestiti da Google.

Suggerimenti sui ruoli per gli account di servizio gestiti da Google

Per gli account di servizio gestiti da Google, il motore per suggerimenti IAM fornisce solo suggerimenti per le associazioni di ruoli con ruoli di base (Proprietario, Editor o Visualizzatore).

I suggerimenti per gli account di servizio gestiti da Google sono suddivisi in due sottotipi di suggerimenti.

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni account di servizio gestiti da Google viene concesso automaticamente un ruolo di agente di servizio per garantire il corretto funzionamento dei servizi Google Cloud. Se sostituisci questo ruolo con uno di base (Proprietario, Editor o Visualizzatore), un suggerimento per il ruolo potrebbe suggerire di ripristinare il ruolo originale di agente di servizio per rimuovere le autorizzazioni in eccesso, anche se il ruolo di agente di servizio dispone di autorizzazioni che non rientrano nel ruolo di base. Questi consigli 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 che non rientrano nel ruolo attuale.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

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

Suggerimenti sui ruoli in Security Command Center

Se disponi del livello Premium di Security Command Center, puoi visualizzare alcuni sottotipi di suggerimenti 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 sulla visualizzazione dei suggerimenti sui ruoli in Security Command Center, consulta il motore per suggerimenti IAM nella documentazione di Security Command Center.

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

Sostituire un ruolo esistente

A un account di servizio è stato concesso il ruolo Editor (roles/editor) per un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede un 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 di sostituirlo con una combinazione di altri due ruoli, rimuovendo 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) per un progetto. Il ruolo include più di 10 autorizzazioni, ma un insight sui criteri indica che, nel corso degli ultimi 90 giorni, my-user@example.com ne ha utilizzate solo 4.

Di conseguenza, il motore per suggerimenti IAM genera un suggerimento sul ruolo che suggerisce 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, richiedi le informazioni sui criteri associati.

{
  "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, richiedi le informazioni sui criteri associati.

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

Sostituzione dei ruoli con autorizzazioni suggerite dal machine learning

A un account di servizio è stato concesso il ruolo Editor (roles/editor) per un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede 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'insight sui criteri evidenzia anche diverse autorizzazioni di cui l'account di servizio probabilmente 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 per il ruolo che suggerisce di revocare il ruolo Editor e di sostituirlo con il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin), che garantisce 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 quelle di cui probabilmente l'account di servizio avrà bisogno in futuro:

Console

Il motore per suggerimenti IAM utilizza un'icona Machine learning per identificare le autorizzazioni che sono state aggiunte in base al machine learning del motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni. In questo esempio, è stata consigliata l'autorizzazione resourcemanager.projects.get 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 suggerimento. 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 informazioni su come ottenere gli approfondimenti sulle norme, consulta Esaminare gli approfondimenti sulle norme.

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 suggerimento. 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 informazioni su come ottenere gli approfondimenti sulle norme, consulta Esaminare gli approfondimenti sulle norme.

Passaggi successivi