I suggerimenti sui ruoli ti aiutano a identificare e rimuovere le autorizzazioni in eccesso dalle tue entità, migliorando le configurazioni di sicurezza delle risorse.
Panoramica dei suggerimenti sui ruoli
I suggerimenti sui ruoli vengono generati dal motore per suggerimenti IAM. Il motore per suggerimenti IAM è uno dei motori per suggerimenti offerti da Recommender.
Ogni suggerimento per il ruolo ti consiglia di rimuovere o sostituire un ruolo che concede autorizzazioni in eccesso alle entità. Su larga scala, questi suggerimenti ti aiutano ad applicare il principio del privilegio minimo assicurando che le entità dispongano solo delle autorizzazioni di cui hanno effettivamente bisogno.
Il motore per suggerimenti IAM identifica le autorizzazioni in eccesso utilizzando gli insight sui criteri. Gli insight sui criteri sono risultati basati su ML che riguardano l'utilizzo delle autorizzazioni di un'entità.
Alcuni consigli sono associati anche agli approfondimenti sul movimento laterale. Questi approfondimenti identificano i ruoli che consentono ai service account di un progetto di rappresentare i service account di un altro progetto. Per ulteriori informazioni, consulta Come vengono generati gli approfondimenti sul movimento laterale.
Come vengono generati gli approfondimenti sulle norme
Gli insight sui criteri evidenziano le autorizzazioni nei ruoli di un'entità che l'entità non utilizza.
Il motore per suggerimenti IAM genera insight sui criteri confrontando il numero totale di autorizzazioni di un principal con le autorizzazioni che il principal ha utilizzato negli ultimi 90 giorni. Se il ruolo è stato concesso meno di 90 giorni fa, il motore per suggerimenti IAM esamina l'utilizzo delle autorizzazioni dell'entità nel periodo di tempo trascorso da quando le è stato concesso il ruolo.
Un principal può utilizzare un'autorizzazione in diversi modi:
Direttamente, chiamando un'API che richiede l'autorizzazione
Ad esempio, il metodo
roles.list
nell'API REST IAM richiede l'autorizzazioneiam.roles.list
. Quando chiami il metodoroles.list
, utilizzi l'autorizzazioneiam.roles.list
.Allo stesso modo, quando chiami il metodo
testIamPermissions
per una risorsa, utilizzi effettivamente tutte le autorizzazioni che stai testando.Indirettamente, utilizzando la console Google Cloud per lavorare con le risorse Google Cloud
Ad esempio, nella console Google Cloud puoi modificare un'istanza di macchina virtuale (VM) Compute Engine, che richiede autorizzazioni diverse in base alle impostazioni 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 , utilizzi l'autorizzazione
compute.instances.get
.
Per determinare le autorizzazioni utilizzate dall'entità, il motore per suggerimenti IAM utilizza dati di accesso IAM aggregati. Per scoprire come esportare i dati utilizzati da IAM Recommender per questi approfondimenti, consulta Esportare i dati per i suggerimenti sui ruoli.
Il motore per suggerimenti IAM utilizza anche il machine learning per identificare le autorizzazioni nel ruolo attuale di un'entità che l'entità probabilmente dovrà utilizzare in futuro, anche se non le ha utilizzate di recente. Per ulteriori informazioni, vedi Machine learning per approfondimenti sulle norme in questa pagina.
Gli approfondimenti sui criteri non vengono generati per tutti i ruoli IAM concessi alle entità. Per ulteriori informazioni sul motivo per cui un ruolo potrebbe non avere un approfondimento sulle norme, consulta la sezione Disponibilità in questa pagina.
Per scoprire come gestire gli approfondimenti sui criteri, consulta Gestire gli approfondimenti sui criteri per progetti, cartelle e organizzazioni o Gestire gli approfondimenti sui criteri per i bucket Cloud Storage.
Machine learning per gli approfondimenti sui criteri
In alcuni casi, un'entità probabilmente ha bisogno di determinate autorizzazioni incluse nei suoi ruoli attuali, ma che non ha utilizzato di recente. Per identificare queste autorizzazioni, il motore per suggerimenti IAM utilizza un modello di machine learning (ML) durante la generazione di insight sui criteri.
Questo modello di machine learning viene addestrato su più set di indicatori:
Pattern 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 svolgere un'attività su Google Cloud. Se il modello di ML osserva questo pattern con una frequenza sufficiente, la volta successiva che un altro utente 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 fornisce centinaia di ruoli predefiniti diversi specifici per il servizio. Se un ruolo predefinito contiene un insieme di autorizzazioni, è un forte segnale che queste autorizzazioni devono essere concesse insieme.
Oltre a questi indicatori, il modello utilizza anche
l'incorporamento di parole per calcolare il grado di
somiglianza semantica delle autorizzazioni. Le autorizzazioni semanticamente simili saranno "vicine" tra loro dopo l'incorporamento e più propense a essere concesse insieme. Ad esempio, bigquery.datasets.get
e bigquery.tables.list
saranno molto vicini tra loro dopo l'incorporamento.
Tutti i dati utilizzati nella pipeline di machine learning di IAM Recommender sono caratterizzati da k-anonymity, il che significa che le persone nel set di dati anonimizzati non possono essere reidentificate. Per raggiungere questo livello di anonimato, eliminiamo tutte le informazioni che consentono l'identificazione personale (PII), come l'ID utente correlato a ogni pattern di utilizzo delle autorizzazioni. Poi eliminiamo tutti i pattern di utilizzo che non vengono visualizzati con frequenza sufficiente su 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 approfondimento sui criteri indica che un'entità non ha bisogno di tutte le autorizzazioni nel suo ruolo, il motore per suggerimenti IAM valuta il ruolo per determinare se potrebbe essere revocato o se esiste un altro ruolo più adatto. Se il ruolo può essere revocato, il motore per suggerimenti IAM genera un suggerimento per revocare il ruolo. 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 potrebbe essere un nuovo ruolo personalizzato, un ruolo personalizzato esistente o uno o più ruoli predefiniti. Ad eccezione dei suggerimenti per gli agenti di servizio, un suggerimento per il ruolo non propone mai una modifica che aumenti il livello di accesso di un'entità.
I suggerimenti per i ruoli vengono generati in base solo ai controlli dell'accesso IAM. Non tengono conto di altri tipi di controlli dell'accesso, come gli elenchi di controllo dell'accesso (ACL) e il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes. Se utilizzi altri tipi di controlli dell'accesso, presta particolare attenzione quando esamini i suggerimenti e valuta in che modo questi controlli dell'accesso si rapportano alle tue norme di autorizzazione.
Inoltre, i suggerimenti per i ruoli non vengono generati per tutti i ruoli IAM concessi alle entità. Per saperne di più sul motivo per cui un ruolo potrebbe non avere un suggerimento, consulta la sezione Disponibilità di questa pagina.
Periodo di osservazione
Il periodo di osservazione di un suggerimento per un ruolo è il numero di giorni di dati sull'utilizzo delle autorizzazioni su cui si basa il suggerimento.
Il periodo di osservazione massimo per i suggerimenti sui ruoli è 90 giorni. Ciò significa che IAM Recommender utilizza, al massimo, i dati sull'utilizzo delle autorizzazioni degli ultimi 90 giorni per generare consigli sui ruoli.
Inoltre, il motore per suggerimenti IAM non inizia a generare suggerimenti sui ruoli finché non dispone di un determinato numero di giorni di dati sull'utilizzo delle autorizzazioni. Questa durata è chiamata periodo di osservazione minimo. Per impostazione predefinita, il periodo di osservazione minimo è di 90 giorni, ma, per i suggerimenti sui ruoli a livello di progetto, puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, vedi Configurare la generazione di consigli sui ruoli. Se imposti il periodo di osservazione minimo su un valore inferiore a 90 giorni, riceverai i consigli prima, ma la loro precisione potrebbe risentirne.
Se è trascorso più tempo del periodo di osservazione minimo, ma meno di 90 giorni da quando è stato concesso il ruolo, il periodo di osservazione corrisponde al periodo di tempo trascorso da quando è stato concesso il ruolo.
Nuovi ruoli personalizzati nei suggerimenti sui ruoli
Quando il motore per suggerimenti IAM suggerisce sostituzioni per un ruolo, suggerisce sempre un ruolo personalizzato esistente o uno o più ruoli predefiniti che sembrano più adatti alle esigenze dell'entità.
Se il sistema di suggerimenti IAM identifica un pattern di utilizzo delle autorizzazioni comune nella tua organizzazione che non corrisponde a un ruolo predefinito o personalizzato esistente, potrebbe anche consigliarti di creare un nuovo ruolo personalizzato a livello di progetto. Questo ruolo personalizzato include solo le autorizzazioni consigliate. Puoi modificare il suggerimento per il ruolo personalizzato aggiungendo o rimuovendo le autorizzazioni.
Se vuoi applicare il principio del privilegio minimo nel modo più rigoroso possibile, scegli il nuovo ruolo personalizzato. IAM Recommender crea il ruolo personalizzato a livello di progetto. Sei responsabile della manutenzione e dell'aggiornamento dei ruoli personalizzati per i tuoi progetti.
Se preferisci utilizzare un ruolo gestito per te, scegli il ruolo predefinito. Google Cloud aggiorna regolarmente questi ruoli aggiungendo o rimuovendo autorizzazioni. Per ricevere una notifica di questi aggiornamenti, iscriviti al feed di notizie del log delle modifiche alle autorizzazioni. Quando scegli il ruolo predefinito, l'entità continua ad avere almeno alcune autorizzazioni, e potenzialmente un numero elevato di autorizzazioni, che non ha utilizzato.
Il motore per suggerimenti IAM consiglia nuovi ruoli personalizzati solo per i ruoli concessi in un progetto. Non consiglia nuovi ruoli personalizzati per i ruoli concessi su altre risorse, come cartelle o organizzazioni.
Inoltre, il motore per suggerimenti IAM non consiglia nuovi ruoli personalizzati nei seguenti casi:
- La tua organizzazione ha già 100 o più ruoli personalizzati.
- Il tuo progetto ha già 25 o più ruoli personalizzati.
Il motore per suggerimenti IAM consiglia non più di 5 nuovi ruoli personalizzati al giorno in ogni progetto e non più di 15 nuovi ruoli personalizzati nell'intera organizzazione.
Come vengono generati gli insight sul movimento laterale
Il movimento laterale si verifica quando un account di servizio in un progetto è autorizzato a simulare l'identità di un account di servizio in un altro progetto. Ad esempio, un account di servizio potrebbe essere stato creato nel progetto A, ma avere le autorizzazioni per simulare l'identità di un account di servizio nel progetto B.
Queste autorizzazioni possono comportare una catena di rappresentazioni nei progetti che concede alle entità un accesso non intenzionale alle risorse. Ad esempio, se un principal rappresenta il account di servizio nel progetto A, può utilizzare questo account di servizio per rappresentare il account di servizio nel progetto B. Se il account di servizio nel progetto B è autorizzato a rappresentare altri service account in altri progetti della tua organizzazione, il principal può continuare a utilizzare la rappresentazione 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 lateral movement identificando i ruoli che soddisfano i seguenti criteri:
- L'entità a cui è stato concesso il ruolo è un account di servizio non creato nel progetto.
Il ruolo include una delle seguenti autorizzazioni, che consentono a un'entità di rappresentare un account di servizio:
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
Se un ruolo soddisfa questi criteri, il motore per suggerimenti IAM genera un approfondimento sul movimento laterale per il ruolo. Questo approfondimento contiene informazioni sulle capacità di rappresentazione dell'account di servizio, inclusi gli account di servizio che può rappresentare e se ha utilizzato autorizzazioni di rappresentazione negli ultimi 90 giorni.
Il motore per suggerimenti IAM non utilizza gli insight sul movimento laterale da soli per generare nuovi suggerimenti per i ruoli. Questo perché, se un account di servizio utilizza le proprie autorizzazioni di rappresentazione, IAM Recommender non può suggerire in modo sicuro di rimuoverle. Tuttavia, se un suggerimento per un ruolo consiglia di rimuovere queste autorizzazioni perché non vengono utilizzate, IAM Recommender collegherà l'approfondimento sul movimento laterale a questo suggerimento. Questo collegamento ti aiuta a dare la priorità ai suggerimenti sui ruoli per i service account che dispongono di autorizzazioni di rappresentazione potenti e inutilizzate nei vari progetti.
Per scoprire come gestire gli insight sul movimento laterale, vedi Gestire gli insight sul movimento laterale.
Disponibilità
Gli approfondimenti sui criteri, gli approfondimenti sul movimento laterale e i suggerimenti per i ruoli non vengono generati per tutti i ruoli concessi alle entità. Leggi le sezioni seguenti per comprendere i ruoli per cui vengono generati approfondimenti sulle norme, approfondimenti sul movimento laterale e consigli.
Disponibilità di approfondimenti sulle policy
Affinché il motore per suggerimenti IAM generi un insight sui criteri per un ruolo, devono verificarsi le seguenti condizioni:
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 sulle policy 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 IAM non genera insight sulle policy per le associazioni di ruoli condizionali.
L'entità a cui viene concesso il ruolo deve essere uno dei seguenti tipi di entità:
- Utente
- Service account
- Gruppo
allUsers
allAuthenticatedUsers
- Valori di praticità di Cloud Storage
- Appartenenza a gruppi speciali BigQuery
Uno dei seguenti tipi di identità federate:
- Tutte le identità in un pool di identità del workload
- Singola identità in un pool di identità del workload
- Tutte le identità in un pool di identità per la forza lavoro
- Singola identità in un pool di identità per la forza lavoro
Tutti i pod Google Kubernetes Engine che utilizzano un account di servizio Kubernetes specifico
Per informazioni dettagliate sul formato dell'identificatore per ogni tipo di entità, vedi Identificatori delle entità.
Possono essere necessari fino a 10 giorni prima che IAM Recommender generi insight sui criteri per un ruolo appena concesso.
Gli approfondimenti sui criteri esistenti vengono aggiornati quotidianamente in base all'utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano gli approfondimenti sulle norme in genere sono in ritardo fino a due giorni rispetto al tuo utilizzo effettivo.
Disponibilità degli insight 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, devono verificarsi le seguenti condizioni:
- Al ruolo deve essere associata una visione d'insieme dei criteri. Questo approfondimento sulle norme funge da base per il consiglio.
- Deve essere trascorso un periodo di tempo superiore al periodo di osservazione minimo da quando è stato concesso il ruolo. In questo modo, il motore per suggerimenti IAM dispone di dati di utilizzo sufficienti per formulare un suggerimento. Per impostazione predefinita, il periodo di osservazione minimo è di 90 giorni, ma puoi impostarlo manualmente su 30 o 60 giorni. Per maggiori dettagli, vedi Configurare la generazione di consigli sui ruoli.
- Se l'entità a cui viene concesso il ruolo è un agente di servizio, il ruolo deve essere Proprietario, Editor o Visualizzatore. Il motore per suggerimenti IAM non genera suggerimenti per i 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 ha insight, la colonna Autorizzazioni analizzate nella console Google Cloud mostra un'icona
.Esistono alcuni casi in cui il motore per suggerimenti IAM non genera suggerimenti per un ruolo, anche se è trascorso un periodo di tempo sufficiente e il ruolo ha un approfondimento associato. Questo può verificarsi per i seguenti motivi:
Non esistono ruoli IAM predefiniti più appropriati del ruolo attuale. Se un'entità ha già un ruolo predefinito che riduce al minimo le sue autorizzazioni o che include meno autorizzazioni rispetto ad altri ruoli predefiniti, IAM Recommender non può consigliare un ruolo predefinito diverso.
Potresti essere in grado di 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 suggerimenti sui ruoli per gli agenti di servizio che hanno un ruolo di base (Proprietario, Editor o Visualizzatore). Per maggiori dettagli, vedi Suggerimenti sui ruoli per gli agenti di servizio.
Nessun'altra entità ha il ruolo di base Proprietario per il progetto. Almeno un'entità deve avere il ruolo Proprietario (
roles/owner
) per ogni progetto. Se solo un'entità ha questo ruolo, il motore per suggerimenti IAM non consiglierà di revocare o sostituire il ruolo.
In questi casi, la colonna Autorizzazioni analizzate nella consoleGoogle Cloud mostra l'utilizzo delle autorizzazioni del principal, ma non ha un'icona Consiglio disponibile
.I suggerimenti per i ruoli esistenti vengono aggiornati quotidianamente in base all'utilizzo recente delle autorizzazioni. Tuttavia, i dati su cui si basano i consigli sui ruoli in genere sono in ritardo di un massimo di due giorni rispetto all'utilizzo effettivo.
Priorità e gravità
La priorità dei consigli e la gravità degli approfondimenti ti aiutano a comprendere l'urgenza di un consiglio o di un approfondimento e a stabilire le priorità di conseguenza.
Priorità dei suggerimenti sui ruoli
Ai consigli vengono assegnati livelli di priorità in base alla loro urgenza percepita.
I livelli di priorità vanno da P1
(priorità più alta) a P4
(priorità più bassa).
La priorità di un suggerimento sul ruolo dipende dal ruolo a cui si riferisce:
Dettagli suggerimento | Priorità | Spiegazione |
---|---|---|
Consigli sui ruoli che concedono l'accesso pubblico ai bucket Cloud Storage | P1 |
I bucket accessibili pubblicamente possono essere accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati. |
Consigli per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery | P1 |
I set di dati accessibili pubblicamente possono essere consultati da chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati. |
Suggerimenti per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi a un progetto, una cartella o un'organizzazione | P2 |
I ruoli di base sono molto permissivi e l'applicazione dei suggerimenti per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso. |
Consigli che non concedono l'accesso pubblico o ruoli di base | P4 |
Sebbene questi suggerimenti ti aiutino a ridurre le autorizzazioni in eccesso, non rimuovono l'accesso pubblico o i ruoli di base altamente permissivi, il che li rende una priorità inferiore. |
Gravità dell'approfondimento
Gli approfondimenti vengono assegnati a livelli di gravità in base alla loro urgenza percepita. I livelli di gravità possono essere LOW
, MEDIUM
, HIGH
o CRITICAL
.
La gravità di un approfondimento sulle norme dipende dal ruolo a cui è destinato:
Dettagli insight | Gravità | Spiegazione |
---|---|---|
Approfondimenti per i ruoli che concedono l'accesso pubblico ai bucket Cloud Storage | CRITICAL |
I bucket accessibili pubblicamente possono essere accessibili a chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati. |
Approfondimenti per i ruoli che concedono l'accesso pubblico ai set di dati BigQuery | CRITICAL |
I set di dati accessibili pubblicamente possono essere consultati da chiunque su internet. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati. |
Insight per i ruoli di base (Proprietario, Editor e Visualizzatore) concessi su un progetto, una cartella o un'organizzazione | HIGH |
I ruoli di base sono molto permissivi e la gestione degli approfondimenti per questi ruoli può ridurre notevolmente le autorizzazioni in eccesso. |
Approfondimenti che non concedono l'accesso pubblico o ruoli di base | LOW |
Sebbene questi approfondimenti evidenzino le autorizzazioni in eccesso, non riguardano l'accesso pubblico o i ruoli di base altamente permissivi, il che li rende una priorità inferiore. |
Tutti gli insight sul movimento laterale hanno un livello di gravità LOW
.
Come vengono applicati i suggerimenti sui ruoli
Il motore per suggerimenti IAM non applica automaticamente i consigli. Devi invece esaminare i consigli e decidere se applicarli o ignorarli. Per scoprire come esaminare, applicare e ignorare i suggerimenti per i ruoli, consulta una delle seguenti guide:
- Esaminare e applicare i consigli sui ruoli per progetti, cartelle e organizzazioni
- Esamina e applica i suggerimenti sui ruoli per i bucket Cloud Storage
- Esaminare e applicare i suggerimenti sui ruoli per i set di dati BigQuery
Audit logging
Quando applichi o ignori un suggerimento, il motore per suggerimenti IAM crea una voce di log. Puoi visualizzare queste voci nella cronologia dei consigli oppure puoi visualizzarle nei Google Cloud audit log.
Sottotipi di suggerimenti sui ruoli
I suggerimenti sui ruoli sono suddivisi in diversi sottotipi in base all'azione che consigliano. Se utilizzi gcloud CLI o l'API REST, puoi utilizzare questi sottotipi per filtrare i suggerimenti.
Sottotipo | Descrizione |
---|---|
REMOVE_ROLE |
Un suggerimento per rimuovere il ruolo dell'entità a livello di progetto, cartella o organizzazione. |
REMOVE_ROLE_BIGQUERY_DATASET |
Un suggerimento per rimuovere il ruolo a livello di dataset dell'entità. |
REMOVE_ROLE_STORAGE_BUCKET |
Un suggerimento per rimuovere il ruolo a livello di bucket dell'entità. |
REPLACE_ROLE |
Un suggerimento per sostituire il ruolo a livello di progetto, cartella o organizzazione dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti. |
REPLACE_ROLE_CUSTOMIZABLE |
Un suggerimento per sostituire il ruolo dell'entità con un nuovo ruolo personalizzato meno permissivo del ruolo attuale. |
REPLACE_ROLE_BIGQUERY_DATASET |
Un suggerimento per sostituire il ruolo a livello di set di dati dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti. |
REPLACE_ROLE_STORAGE_BUCKET |
Un suggerimento per sostituire il ruolo a livello di bucket dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti. |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Un suggerimento per sostituire il ruolo Proprietario, Editor o Visualizzatore di un agente di servizio con il ruolo concesso automaticamente all'account di servizio al momento della creazione. Per saperne di più, consulta Suggerimenti sui ruoli per gli agenti di servizio. |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Un suggerimento per sostituire il ruolo Proprietario, Editor o Visualizzatore di un agente di servizio con un ruolo meno permissivo. Per saperne di più, 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 suggerimenti solo per i ruoli di base (Proprietario, Editor o Visualizzatore).
I consigli per gli agenti di servizio sono suddivisi in due sottotipi.
SERVICE_AGENT_WITH_DEFAULT_ROLE
Al momento della creazione, ad alcuni service agent viene automaticamente concesso un ruolo di service agent per garantire il corretto funzionamento dei tuoi servizi Google Cloud . Se sostituisci questo ruolo con un ruolo di base (Proprietario, Editor o Visualizzatore),
un suggerimento per il ruolo potrebbe consigliarti di ripristinare il ruolo dell'agente di servizio originale
per rimuovere le autorizzazioni in eccesso, anche se il ruolo dell'agente di servizio ha
autorizzazioni che non sono presenti nel ruolo di base. Questi consigli hanno il
sottotipo SERVICE_AGENT_WITH_DEFAULT_ROLE
. Ti aiutano a rimuovere in modo sicuro le autorizzazioni
in eccesso, garantendo al contempo il corretto funzionamento di tutti i servizi Google Cloud .
I suggerimenti SERVICE_AGENT_WITH_DEFAULT_ROLE
sono l'unico tipo di suggerimento che potrebbe suggerire ruoli con autorizzazioni non presenti nel ruolo attuale.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
Se a un service agent non viene concesso automaticamente un ruolo al momento della creazione,
i consigli per il service agent si basano esclusivamente sulle autorizzazioni
che utilizza. Questi consigli hanno il sottotipo
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
.
Suggerimenti per i ruoli in Security Command Center
Se disponi del livello Premium o Enterprise di Security Command Center, puoi visualizzare alcuni sottotipi di suggerimenti per i ruoli come risultati in Security Command Center. Ogni sottotipo è associato a un rilevatore:
Sottotipo di 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 Motore per suggerimenti IAM nella documentazione di Security Command Center.
Prezzi
I suggerimenti per i ruoli a livello di progetto, cartella e organizzazione per i ruoli di base sono disponibili senza costi.
Le seguenti funzionalità avanzate del motore per suggerimenti IAM sono disponibili con le attivazioni a livello di progetto o organizzazione di Security Command Center livello Premium o Enterprise:
- Suggerimenti per i ruoli non di base
- Consigli per i ruoli concessi su risorse diverse da organizzazioni, cartelle e progetti, ad esempio consigli per i ruoli concessi sui bucket Cloud Storage
- Suggerimenti che propongono ruoli personalizzati
- Insight sulle norme
- Informazioni sul movimento laterale
Per ulteriori informazioni, consulta la pagina 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 Sfoglia su un progetto.
Il ruolo Sfoglia 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
che ti consiglia di revocare il ruolo Browser da my-user@example.com
:
Console
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"member": "user:my-user@example.com",
"removedRole": "roles/browser",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "This role has not been used during the observation window.",
"etag": "\"9fc3241da8bfab51\"",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"priority": "P4",
"recommenderSubtype": "REMOVE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/browser"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"9fc3241da8bfab51\"",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"priority": "P4"
}
Sostituire un ruolo esistente
A un account di servizio è stato concesso il ruolo Editor (roles/editor
) in un progetto.
Questo ruolo di base include più di 3000 autorizzazioni e concede un accesso esteso al progetto. Tuttavia, negli ultimi 90 giorni, il
account di serviziot ha utilizzato solo alcune di queste autorizzazioni.
Pertanto, il motore per suggerimenti IAM genera un suggerimento per il ruolo che consiglia 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 concesso il ruolo Amministratore Cloud Trace
(roles/cloudtrace.admin
) in un progetto. Il ruolo include più di 10 autorizzazioni, ma un insight sui criteri indica che, negli ultimi 90 giorni, my-user@example.com
ne ha utilizzate solo 4.
Pertanto, il motore per suggerimenti IAM genera un suggerimento per un ruolo che ti consiglia di creare un ruolo personalizzato che includa solo le autorizzazioni effettivamente utilizzate da my-user@example.com
:
Console
gcloud
Il sottotipo REPLACE_ROLE_CUSTOMIZABLE
indica che
IAM Recommender consiglia di creare un ruolo personalizzato con le autorizzazioni
utilizzate. Per visualizzare le autorizzazioni utilizzate, ottieni l'approfondimento
sulla policy associata.
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"associatedResourceNames": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"etag": "\"c7f57a4725d32d66\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"originalContent": {},
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {},
"revokedIamPermissionsCount": 1
}
},
"priority": "P4",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"stateInfo": {
"state": "ACTIVE"
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
REST
Il sottotipo REPLACE_ROLE_CUSTOMIZABLE
indica che
il motore per suggerimenti IAM consiglia di creare un ruolo personalizzato con le autorizzazioni
utilizzate. Per visualizzare le autorizzazioni utilizzate, ottieni l'approfondimento
sulla policy associata.
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 1
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
}
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"c7f57a4725d32d66\"",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"priority": "P4"
}
Il suggerimento per il ruolo propone anche un'altra opzione, ovvero sostituire
il ruolo esistente con il ruolo Utente Cloud Trace
(roles/cloudtrace.user
). Questo ruolo predefinito include un numero leggermente inferiore
di autorizzazioni rispetto al ruolo Amministratore Cloud Trace.
Sostituzione del ruolo con autorizzazioni suggerite dal machine learning
A un account di servizio è stato concesso il ruolo Editor (roles/editor
) in un progetto.
Questo ruolo di base include più di 3000 autorizzazioni e concede un accesso esteso a un progetto. Tuttavia, un approfondimento sui criteri indica che, negli ultimi
90 giorni, ilaccount di serviziot ha utilizzato meno di 10
autorizzazioni.
L'approfondimento sulla policy evidenzia anche diverse autorizzazioni che account di servizio probabilmente dovrà avere in futuro. IAM Recommender ha identificato queste autorizzazioni utilizzando il machine learning.
IAM Recommender 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, pur includendo sia le autorizzazioni utilizzate dal account di servizio sia quelle che probabilmente dovrà utilizzare in futuro:
Console
Il motore per suggerimenti IAM utilizza un'icona Machine learning
resourcemanager.projects.get
è stata consigliata
in base al machine learning:
gcloud
Le autorizzazioni aggiunte in base al machine learning del Motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. ma sono elencati negli approfondimenti sulle norme associati al
suggerimento. Tutte le autorizzazioni basate sull'ML sono elencate nel campo inferredPermissions
dell'approfondimento. In questo esempio, l'autorizzazione resourcemanager.projects.get
è stata consigliata in base al machine learning:
associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
condition:
description: ''
expression: ''
location: ''
title: ''
currentTotalPermissionsCount: '5069'
exercisedPermissions:
- permission: storage.objects.create
- permission: storage.objects.delete
- permission: storage.objects.get
- permission: storage.objects.list
inferredPermissions:
- permission: resourcemanager.projects.get
member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH
Per scoprire come ottenere un approfondimento sulle norme, consulta uno dei seguenti articoli:
REST
Le autorizzazioni aggiunte in base al machine learning del Motore per suggerimenti IAM anziché all'utilizzo delle autorizzazioni non sono elencate nel suggerimento stesso. ma sono elencati negli approfondimenti sulle norme associati al
suggerimento. Tutte le autorizzazioni basate sull'ML sono elencate nel campo inferredPermissions
dell'approfondimento. In questo esempio, l'autorizzazione resourcemanager.projects.get
è stata consigliata in base al machine learning:
{
"name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
"description": "4 of the permissions in this role binding were used in the past 90 days.",
"content": {
"role": "roles/editor",
"member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
"condition": {
"expression": "",
"title": "",
"description": "",
"location": ""
},
"exercisedPermissions": [
{
"permission": "storage.objects.create"
},
{
"permission": "storage.objects.delete"
},
{
"permission": "storage.objects.get"
},
{
"permission": "storage.objects.list"
}
],
"inferredPermissions": [
{
"permission": "resourcemanager.projects.get"
}
],
"currentTotalPermissionsCount": "5069"
},
"lastRefreshTime": "2020-07-12T07:00:00Z",
"observationPeriod": "7776000s",
"stateInfo": {
"state": "ACTIVE"
},
"category": "SECURITY",
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
}
],
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"insightSubtype": "PERMISSIONS_USAGE",
"etag": "\"d3cdec23cc712bd0\"",
"severity": "HIGH"
}
Per scoprire come ottenere un approfondimento sulle norme, consulta uno dei seguenti articoli:
Passaggi successivi
- Comprendere le best practice per l'utilizzo dei suggerimenti sui ruoli.
- Esamina e applica i consigli sui ruoli per progetti, cartelle e organizzazioni.
- Esamina e applica i suggerimenti sui ruoli per i bucket Cloud Storage
- Esamina e applica i suggerimenti sui ruoli per i set di dati BigQuery
- Scopri di più su Recommender.
- Informazioni sui ruoli predefiniti e sui ruoli personalizzati in IAM.