Panoramica dei suggerimenti sui ruoli

I suggerimenti sui ruoli ti aiutano a identificare e rimuovere le autorizzazioni in eccesso dal tuo il deployment, migliorando le risorse configurazioni di sicurezza.

Panoramica dei suggerimenti sui ruoli

I suggerimenti sui ruoli vengono generati dal motore per suggerimenti IAM. La Il motore per suggerimenti IAM è uno di quelli che Offerte del motore per suggerimenti.

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

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

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

Come vengono generati gli insight sulle norme

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

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à può utilizzare un'autorizzazione in diversi modi:

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

    Ad esempio, il metodo roles.list nel L'API REST IAM richiede l'autorizzazione iam.roles.list. Quando chiami il metodo roles.list, usi il metodo iam.roles.list autorizzazione.

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

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

    Ad esempio, nella console Google Cloud, puoi modificare un'istanza di macchina virtuale (VM), che richiede autorizzazioni diverse in base le impostazioni che modifichi. 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, usa l'autorizzazione compute.instances.get.

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.

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

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

Machine learning per approfondimenti sulle norme

In alcuni casi, è probabile che un entità abbia bisogno di determinate autorizzazioni incluse nei suoi ruoli attuali, ma che non ha utilizzato di recente. A a identificare queste autorizzazioni, il motore per suggerimenti IAM utilizza (ML) durante la generazione di insight sui criteri.

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

  • Modelli di co-occorrenza 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, è per indicare 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 saranno molto vicine tra loro dopo l'incorporamento.

Tutti i dati utilizzati nella pipeline di machine learning del motore per suggerimenti IAM ha k-anonymity, ovvero gli individui in il set di dati anonimizzato non può essere identificato nuovamente. Per raggiungere questo livello anonimato, ritiriamo tutte le informazioni che consentono l'identificazione personale (PII), quali ID utente relativo a ogni pattern di utilizzo delle autorizzazioni. Quindi eliminiamo tutti gli utilizzi che non si verificano con sufficiente frequenza 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 suo 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 suggerimenti 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 prendono in considerazione altri tipi di controlli dell'accesso, come elenchi di controllo dell'accesso (ACL) e accesso basato sui ruoli di Kubernetes di controllo (RBAC). Se usi altri tipi di controlli dell'accesso, prendi in considerazione è importante quando esamini i tuoi consigli e valuta in che modo questi accedono i controlli relativi ai 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 suggerimento per il ruolo. Consulta Disponibilità su questo .

Periodo di osservazione

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

Il periodo massimo di osservazione per i suggerimenti sui ruoli è per 90 giorni. Ciò significa che il motore per suggerimenti IAM utilizza, gli ultimi 90 giorni di dati sull'utilizzo delle autorizzazioni generare suggerimenti 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 numero minimo di osservazione è di 90 giorni, ma per il ruolo a livello di progetto consigli, puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, vedi Configura la generazione di suggerimenti per i 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 delle sostituzioni per un ruolo, suggerisce sempre un ruolo personalizzato esistente o uno o più ruoli predefiniti 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 sono associati a un ruolo predefinito o personalizzato esistente, potrebbe anche consigliare di creare un nuovo progetto ruolo personalizzato. Questo ruolo personalizzato include solo il parametro le autorizzazioni consigliate. Puoi modificare il suggerimento sul 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 a livello di progetto. L'utente è responsabile della manutenzione e dell'aggiornamento ruoli personalizzati per i tuoi progetti.

Se preferisci utilizzare un ruolo che viene mantenuto, scegli l'impostazione predefinita ruolo. 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 predefinito, l'entità continua ad avere almeno alcune autorizzazioni e potenzialmente un numero elevato di autorizzazioni che non hanno utilizzato.

Il motore per suggerimenti IAM consiglia nuovi ruoli personalizzati solo per i ruoli concessi su 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à 100 o più ruoli personalizzati.
  • Il progetto ha già 25 o più ruoli personalizzati.

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

Come vengono generati gli insight sul movimento laterale

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

Queste autorizzazioni possono comportare una catena di furti d'identità nei progetti che consente alle entità di accedere in modo indesiderato alle risorse. Ad esempio, se un'entità assume il ruolo di un account di servizio nel progetto A, può utilizzare quell'account di servizio per assumere il ruolo di un 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, ottenendo le autorizzazioni man mano che procede.

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

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

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

Se un ruolo soddisfa questi criteri, il motore per suggerimenti IAM genera un informazioni sul movimento per il ruolo. Questo insight contiene informazioni sugli la capacità di rappresentazione degli account di servizio, incluso gli account di servizio può rappresentare e se ha utilizzato autorizzazioni di rappresentazione negli ultimi per 90 giorni.

Il motore per suggerimenti ruolo IAM non utilizza autonomamente gli approfondimenti sui movimenti laterali per generare nuovi consigli sui ruoli. Il motivo è che, se un account di servizio usando le proprie autorizzazioni di rappresentazione, il motore per suggerimenti IAM suggeriamo di rimuoverli. 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 insight sulle norme, gli insight sui movimenti laterali e i suggerimenti sui ruoli non sono 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à degli insight sulle norme

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

  • 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 motore per suggerimenti IAM genera insight sui criteri 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 sui criteri per associazioni di ruoli condizionali.

  • L'entità a cui viene concesso il ruolo deve essere una delle seguenti tipi di entità:

    • Utente
    • Service account
    • Gruppo
    • allUsers
    • allAuthenticatedUsers
    • Valori di convenienza di Cloud Storage
    • Iscrizione a gruppi speciali BigQuery
    • Uno dei seguenti tipi di identità federate:

      • Tutte le identità in un pool di identità per i carichi di lavoro
      • Un'unica identità in un pool di identità per i carichi di lavoro
      • 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 di 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.

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

Gli insight sui criteri esistenti vengono aggiornati quotidianamente in base alla tua autorizzazione recente all'utilizzo delle risorse. 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 insight sul criterio. Queste norme e insight è la base per il suggerimento.
  • Deve essere stato più lungo del limite minimo di osservazione da quando è stato concesso il ruolo. In questo modo, il Recommender IAM ha dati di utilizzo sufficienti per fornire un consiglio. Di predefinito, il periodo minimo di osservazione è di 90 giorni, ma puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, vedi Configura la generazione di suggerimenti sul ruolo.
  • Se l'entità a cui è stato concesso il ruolo è un agente di servizio, il ruolo deve essere Proprietario, Editor o Visualizzatore. Motore per suggerimenti IAM e non genera suggerimenti sui ruoli 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 dispone di insight, La colonna Autorizzazioni analizzate della console Google Cloud mostra .

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

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

    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 solo il ruolo per gli agenti di servizio con un ruolo di base (Proprietario, Editor Visualizzatore). Per maggiori dettagli, consulta Suggerimenti sui ruoli per il servizio agenti.

  • Nessun'altra entità ha il ruolo di base Proprietario per il progetto. Minimo un'entità deve avere il ruolo Proprietario (roles/owner) per ciascun progetto. 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à dei suggerimenti e la gravità degli insight ti aiutano a comprendere l'urgenza di un suggerimento o di un insight e definire le priorità di conseguenza.

Priorità del suggerimento sul ruolo

Ai suggerimenti vengono assegnati livelli di priorità in base alla loro urgenza percepita. I livelli di priorità vanno da P1 (priorità massima) 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.
Suggerimenti per i ruoli che concedono l'accesso pubblico a Set di dati BigQuery P1 I set di dati pubblicamente accessibili sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per i ruoli di base (Proprietario, Editor e Visualizzatore) concessa per un progetto, una cartella o 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 consigli ti aiutino a ridurre le autorizzazioni in eccesso, non rimuovono l'accesso pubblico né i ruoli di base altamente permissivi, il che li rende una priorità più bassa.

Gravità degli approfondimenti

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

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

Dettagli insight Gravità Spiegazione
Insight per i ruoli che concedono l'accesso pubblico a Cloud Storage bucket CRITICAL I bucket accessibili pubblicamente sono accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Insight per i ruoli che concedono l'accesso pubblico a 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 per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi in un progetto, una cartella o un'organizzazione HIGH I ruoli di base sono molto permissivi e l'utilizzo di approfondimenti 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 ignorarle. Per scoprire come rivedere, 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 suggerimenti sui ruoli sono suddivisi in diversi sottotipi in base al l'azione consigliata. Se utilizzi gcloud CLI o REST API, puoi utilizzare questi sottotipi per filtrare i suggerimenti.

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 suggerimento per la rimozione del ruolo a livello di set di dati dell'entità.
REMOVE_ROLE_STORAGE_BUCKET Un suggerimento per la rimozione del ruolo a livello di bucket dell'entità.
REPLACE_ROLE Un 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 suggerimento per sostituire il ruolo a livello di bucket dell'entità con un ruolo permissivo. La sostituzione consigliata potrebbe essere una sostituzione 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 suggerimento per sostituire il proprietario, l'editor o il 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 suggerimenti per gli agenti di servizio sono suddivisi in due sottotipi di suggerimenti.

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni agenti di servizio viene concesso automaticamente un agente di servizio per assicurarti che i servizi Google Cloud funzionino correttamente. 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 suggerimenti hanno il sottotipo SERVICE_AGENT_WITHOUT_DEFAULT_ROLE.

Suggerimenti sui ruoli in Security Command Center

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

Prezzi

Suggerimenti sul ruolo a livello di progetto, cartella e organizzazione per i ruoli di base sono disponibili senza costi aggiuntivi.

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

  • Suggerimenti per i ruoli non di base
  • 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
  • Informazioni sul movimento laterale

Per ulteriori informazioni, consulta la pagina 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.

Pertanto, il motore per suggerimenti IAM genera un suggerimento sul 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) su un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede l'accesso esteso al progetto. Tuttavia, negli ultimi 90 giorni, l'account 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 approfondimento sui criteri indica che, nel passato 90 giorni, di cui my-user@example.com ne ha usati solo 4 autorizzazioni aggiuntive.

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 motore per suggerimenti IAM consiglia di creare un ruolo personalizzato con autorizzazioni aggiuntive. 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 IAM consiglia di creare un ruolo personalizzato con autorizzazioni aggiuntive. Per vedere le autorizzazioni utilizzate, richiedi il criterio associato informazioni.

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

Il suggerimento sul ruolo suggerisce anche un'altra opzione, ovvero la sostituzione il ruolo esistente con il ruolo Utente Cloud Trace (roles/cloudtrace.user). Questo ruolo predefinito include autorizzazioni aggiuntive 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) su un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede l'accesso esteso a un progetto. Tuttavia, un approfondimento sulle norme indica che, nel passato Per 90 giorni, l'account di servizio ha utilizzato meno di 10 autorizzazioni aggiuntive.

L'approfondimento sulle norme evidenzia anche diverse autorizzazioni dell'account di servizio probabilmente ne serviranno 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 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 comunque sia le autorizzazioni utilizzate dall'account di servizio autorizzazioni necessarie per l'account di servizio in futuro:

Console

Il motore per suggerimenti IAM utilizza un modello di machine learning per identificare le autorizzazioni aggiunte in base machine learning del motore per suggerimenti IAM anziché sull'utilizzo delle autorizzazioni. In questo esempio, è stata consigliata l'autorizzazione resourcemanager.projects.get basate sul 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, il valore resourcemanager.projects.get l'autorizzazione è stata consigliata in base al machine learning:

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

Per scoprire come ottenere un approfondimento sulle norme, consulta una delle seguenti pagine:

REST

Autorizzazioni aggiunte in base alla macchina del motore per suggerimenti IAM l'apprendimento anziché l'utilizzo delle autorizzazioni non sono elencati nel suggerimento per trovare le regole. Vengono invece elencate negli approfondimenti sulle norme associati al un consiglio per i nostri esperti. Tutte le autorizzazioni basate su ML sono elencate nella inferredPermissions campo dell'insight. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata in base al machine learning:

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

Per scoprire come ottenere informazioni sulle norme, consulta uno dei seguenti articoli:

Passaggi successivi