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 sono 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 delle 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 i criteri e insight. Gli insight sui criteri sono risultati basati su ML relativi all'autorizzazione di un'entità all'utilizzo delle risorse.

Alcuni consigli sono anche associati a informazioni sul movimento laterale. Questi insight identificano i ruoli che consentono agli account di servizio in un progetto di rappresentare gli account di servizio in un altro progetto. Per ulteriori informazioni, vedi Come vengono 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 insight sui criteri confrontando un numero totale di autorizzazioni dell'entità con le autorizzazioni utilizzate negli ultimi 90 giorni. Se al ruolo è stato concesso meno di 90 giorni fa, il motore per suggerimenti IAM esamina le l'utilizzo dell'autorizzazione dell'entità nel momento in cui all'entità è stato concesso 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.

    Allo stesso modo, quando chiami il metodo testIamPermissions per una risorsa, utilizzare 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 compute.instances.get autorizzazione.

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

Il motore per suggerimenti IAM usa anche il machine learning per identificare le autorizzazioni nel ruolo attuale di un'entità di cui probabilmente quest'ultima avrà bisogno anche se l'entità non ha utilizzato queste autorizzazioni di recente. Per ulteriori informazioni informazioni, consulta Machine learning per gli insight sui criteri 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 incluso nei suoi ruoli attuali, ma che non ha usato 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 coesistenza comuni nella cronologia osservata: il fatto che un in passato l'utente ha usato le autorizzazioni A, B e C, il che suggerisce che A, B e C potrebbero essere correlati in qualche modo e che sono necessari insieme per svolgere su Google Cloud. Se il modello ML osserva frequentemente questo pattern abbastanza, la volta successiva che un altro utente utilizza le autorizzazioni A e B, il modello suggerisce che anche all'utente potrebbe essere necessaria l'autorizzazione C.

  • Conoscenza del dominio come codificata nelle definizioni dei ruoli: IAM offre centinaia di diversi ruoli predefiniti specifici del servizio. 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 incorporamento di parole per calcolare come semanticamente simili alle autorizzazioni. Le autorizzazioni semanticamente simili essere "chiudi" dopo l'incorporamento e hanno maggiori probabilità di ottenere in sinergia. 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. La viene addestrato con questi dati anonimizzati.

Il modello globale può essere ulteriormente personalizzato per ogni organizzazione utilizzando federated learning, una piattaforma che addestra i modelli di machine learning senza esportare dati.

Come vengono generati i suggerimenti sui ruoli

Se un insight sui criteri indica che un'entità non ha bisogno di tutte le autorizzazioni nel proprio ruolo, il motore per suggerimenti IAM determinare se può essere revocato o se esiste un altro ruolo adatta. Se il ruolo può essere revocato, il motore per suggerimenti IAM genera un ruolo di revocare il ruolo. Se esiste un altro ruolo più adatto, il motore per suggerimenti IAM genera un suggerimento sul ruolo per sostituire il ruolo con un ruolo suggerito. Questo ruolo suggerito può essere un nuovo ruolo personalizzato, un ruolo personalizzato esistente o uno o più ruoli predefiniti. Ad eccezione dei consigli per di servizio, un suggerimento sui ruoli non suggerisce mai modifica che aumenta il livello di accesso di un'entità.

I suggerimenti sui ruoli vengono generati solo in base all'accesso IAM i controlli di sicurezza. 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, non vengono generati suggerimenti per tutti i ruoli IAM, e i ruoli concessi alle entità. Per ulteriori informazioni sul motivo per cui un ruolo potrebbe non avere un suggerimento per il ruolo. Consulta la sezione 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 motore per suggerimenti IAM non inizia a generare suggerimenti sui ruoli fino a quando non avrà ottenuto un determinato numero di giorni di dati sull'utilizzo delle autorizzazioni. Questa durata è chiamato periodo minimo di osservazione. 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 il parametro minimo di osservazione a meno di 90 giorni, otterrai i consigli in tempi più rapidi, ma la precisione dei consigli potrebbe interessati.

Se è stato superiore al periodo di osservazione minimo, ma inferiore a 90 giorni dalla concessione del ruolo, il periodo di osservazione indica da quanto tempo è stato concesso il 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 il più rigorosamente 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 autorizzazioni aggiuntive. Per ricevere notifiche su questi aggiornamenti, iscriviti al feed di notizie per nel log delle modifiche delle 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 non consiglia nuovi ruoli personalizzati nel i seguenti casi:

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

Inoltre, 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 generate le informazioni sui movimenti laterali

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 rappresentazioni tra progetti concede alle entità un accesso involontario alle risorse. Ad esempio, se un'entità impersona l'account di servizio nel progetto A, possono utilizzare questo account di servizio per rappresentare l'account di servizio nel progetto B. Se l'account di servizio il progetto B ha l'autorizzazione per impersonare altri account di servizio in altri progetti Nella tua organizzazione, l'entità può continuare a utilizzare l'account di servizio la rappresentazione per passare da un progetto all'altro, ottenendo le autorizzazioni a mano a mano che si presentano.

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 IAM non utilizza autonomamente gli insight sul movimento laterale per generare nuovi suggerimenti 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 suggerimento sul ruolo suggerisce di rimuovere questi elementi perché non sono usate, il motore per suggerimenti IAM collegherà l'approfondimento sul movimento laterale a quel suggerimento. Questo collegamento consente di dare priorità ai suggerimenti sui ruoli per gli account di servizio autorizzazioni di rappresentazione potenti e inutilizzate tra progetti.

Per scoprire come gestire le informazioni sul movimento laterale, vedi Gestire il movimento laterale e insight.

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 quanto segue sezioni per comprendere il ruolo che gli insight sulle politiche, lo spostamento laterale per cui vengono generati insight e suggerimenti.

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

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

    Per saperne di più sui tipi di entità, consulta Entità identificatori.

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 insight sulle norme solitamente sono in ritardo. fino a due giorni rispetto all'utilizzo effettivo.

Disponibilità di insight sui movimenti laterali

Gli insight sul movimento laterale vengono generati per i ruoli concessi nella 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 essere vero quanto segue:

  • Al ruolo deve essere associato un insight sul criterio. Queste norme e insight sono la base per il suggerimento.
  • Deve essere stato più lungo del limite minimo di osservazione da quando è stato concesso il ruolo. Ciò garantisce che Il motore per suggerimenti IAM ha dati sufficienti sull'utilizzo per generare un suggerimento. 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 viene 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 Per maggiori dettagli, consulta Suggerimenti sui ruoli per gli agenti di servizio.

Se un ruolo è stato concesso troppo di recente o non dispone di insight, La colonna Autorizzazioni analizzate della console Google Cloud mostra .

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

  • Non esistono ruoli IAM predefiniti rispetto al ruolo attuale. 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 è un ruolo 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 IAM non di revocare o sostituire il ruolo.

In questi casi, nella colonna Autorizzazioni analizzate della La console Google Cloud mostra l'utilizzo delle autorizzazioni dell'entità, ma non Un Consiglio disponibile .

I suggerimenti sui ruoli esistenti vengono aggiornati quotidianamente in base ai l'utilizzo delle autorizzazioni. Tuttavia, i dati su cui si basano i suggerimenti sui ruoli in genere è indietro di 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à dei suggerimenti dei ruoli

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

La priorità di un suggerimento per il ruolo dipende dal ruolo del suggerimento per:

Dettagli suggerimento Priorità Spiegazione
Suggerimenti per i ruoli che concedono l'accesso pubblico a 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 altamente permissivi e l'applicazione dei suggerimenti questi ruoli possono ridurre notevolmente le autorizzazioni in eccesso.
Suggerimenti 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 pubblicamente accessibili 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 altamente permissivi e forniscono informazioni per questi possono ridurre notevolmente le autorizzazioni in eccesso.
Insight che non concedono l'accesso pubblico o i ruoli di base LOW Sebbene questi approfondimenti mettano in evidenza le autorizzazioni in eccesso, prevedono 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 suggerimenti. 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 suggerimento, il motore per suggerimenti IAM crea una voce di log. Puoi visualizzare queste voci nei consigli per te cronologia oppure puoi visualizzale negli audit log 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 suggerimento per rimuovere gli elementi a livello di progetto, cartella a livello 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 suggerimento per sostituire i valori a livello di progetto, cartella a livello di organizzazione e con un ruolo meno permissivo. Il tipo di la sostituzione potrebbe essere un ruolo personalizzato esistente o uno o più ruoli.
REPLACE_ROLE_CUSTOMIZABLE Un suggerimento per sostituire il ruolo dell'entità con un nuovo ruolo personalizzato meno permissivo rispetto alla ruolo attuale.
REPLACE_ROLE_BIGQUERY_DATASET Un suggerimento per sostituire il ruolo a livello di set di dati dell'entità con un ruolo permissivo. La sostituzione consigliata potrebbe essere una sostituzione 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 suggerimento per sostituire il proprietario, l'editor o il visualizzatore di un agente di servizio con il ruolo concesso automaticamente all'account di servizio quando è stato creato. Per ulteriori informazioni, vedi 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, vedi Suggerimenti sui ruoli per gli agenti di servizio.

Suggerimenti sui ruoli per gli agenti di servizio

Per gli agenti di servizio, Il motore per suggerimenti IAM fornisce solo suggerimenti per le funzionalità di base ruoli (Proprietario, Editor o Visualizzatore).

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

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni agenti di servizio viene automaticamente assegnato 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 sul ruolo potrebbe suggerire di ripristinare l'agente di servizio originale per rimuovere le autorizzazioni in eccesso, anche se il ruolo di agente di servizio ha autorizzazioni non associate al ruolo di base. Questi consigli presentano sottotipo SERVICE_AGENT_WITH_DEFAULT_ROLE. Ti aiutano a rimuovere in sicurezza gli oggetti in eccesso garantendo al contempo che tutti i servizi Google Cloud funzionino correttamente.

SERVICE_AGENT_WITH_DEFAULT_ROLE di consigli sono l'unico tipo di suggerimento che potrebbe suggerire ruoli con autorizzazioni non ruolo.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

Se a un agente di servizio non viene concesso automaticamente un ruolo al momento della creazione, I suggerimenti per l'agente di servizio si basano esclusivamente sulle autorizzazioni usate dall'agente 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 ruoli come risultati in Security Command Center. Ogni sottotipo è associato a un rilevatore:

Sottotipo di suggerimento Categoria risultati
REMOVE_ROLE Unused IAM role
REPLACE_ROLE IAM role has excessive permissions
SERVICE_AGENT_WITH_DEFAULT_ROLE Service agent role replaced with basic role
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Service agent granted basic role

Per 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 l'attivazione a livello di organizzazione del livello Premium di Security Command Center:

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

Per ulteriori informazioni, consulta la sezione Domande sulla fatturazione.

Esempi di suggerimenti sui ruoli

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

Revocare un ruolo esistente

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

Di conseguenza, il motore per suggerimenti IAM genera un suggerimento sul ruolo. suggerimento di revocare il ruolo Browser da my-user@example.com:

Console

gcloud

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

REST

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

Sostituisci un ruolo esistente

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

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

Console

gcloud

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

REST

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

Creare un ruolo personalizzato

All'utente my-user@example.com è stato concesso 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 sul ruolo. suggerendo di creare un ruolo personalizzato che includa solo le autorizzazioni my-user@example.com effettivamente in uso:

Console

gcloud

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, [scarica il criterio associato] insight][get-policy-insight].

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

REST

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, [scarica il criterio associato] insight][get-policy-insight].

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

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 dei ruoli con autorizzazioni suggerite dal machine learning

A un account di servizio è stato concesso il ruolo Editor (roles/editor) su un progetto. Questo ruolo di base include più di 3000 autorizzazioni e concede l'accesso esteso a un progetto. Tuttavia, un 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 motore per suggerimenti IAM ha identificato questi autorizzazioni utilizzando il machine learning.

Il motore per suggerimenti IAM genera un suggerimento sul ruolo che suggerisce Revocare il ruolo Editor e sostituirlo con il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin), che garantisce il controllo completo degli oggetti in un nel 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

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, 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 [Esamina gli approfondimenti sulle norme][get-policy-insight].

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, il valore resourcemanager.projects.get l'autorizzazione è stata consigliata in base al machine learning:

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

Per scoprire come ottenere un approfondimento sulle norme, consulta [Esamina gli approfondimenti sulle norme][get-policy-insight].

Passaggi successivi