Panoramica dei suggerimenti sui ruoli

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

I suggerimenti dei ruoli consentono di identificare e rimuovere le autorizzazioni in eccesso dai entità, migliorando le configurazioni di sicurezza delle risorse.

Panoramica dei suggerimenti sui ruoli

I consigli sui ruoli sono uno dei tipi di consigli generati dal consigliatore.

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 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 identifica le autorizzazioni in eccesso utilizzando gli approfondimenti sui criteri. Gli insight sui criteri sono risultati basati su ML che riguardano l'utilizzo delle autorizzazioni di un'entità.

Alcuni consigli sono associati anche alle informazioni sul movimento laterale. Questi insight identificano i ruoli che consentono agli account di servizio in un progetto di impersonare account di servizio in un altro progetto. Per ulteriori informazioni, consulta la sezione Come vengono generati gli approfondimenti sul movimento laterale.

Come vengono generati gli approfondimenti sulle norme

Il motore per suggerimenti genera insight sui criteri confrontando le autorizzazioni utilizzate da ogni entità negli ultimi 90 giorni con le autorizzazioni totali di cui dispone. Un provider può utilizzare un'autorizzazione in diversi modi:

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

    Ad esempio, il metodo roles.list nell'API IAM IAM richiede l'autorizzazione iam.roles.list. Quando chiami il metodo roles.list, utilizzi l'autorizzazione iam.roles.list.

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

  • Indirettamente, utilizzando Google Cloud Console per lavorare con le risorse Google Cloud

    Ad esempio, nella console Google Cloud puoi modificare un'istanza di macchina virtuale (VM) Compute Engine, che richiede autorizzazioni diverse in base alle impostazioni modificate. Tuttavia, Google Cloud Console mostra anche le impostazioni esistenti, che richiedono l'autorizzazione compute.instances.get.

    Di conseguenza, quando modifichi un'istanza VM in Google Cloud Console, utilizzi l'autorizzazione compute.instances.get.

Il motore per suggerimenti utilizza anche il machine learning per identificare le autorizzazioni nel ruolo attuale di un'entità di cui probabilmente avrà bisogno l'entità in futuro, anche se l'entità non ha utilizzato tali autorizzazioni negli ultimi 90 giorni. Per saperne di più, consulta la pagina relativa al machine learning per informazioni dettagliate sui criteri in questa pagina.

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

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

Machine learning per approfondimenti sui criteri

In alcuni casi, è probabile che un'entità richieda alcune autorizzazioni incluse nei ruoli correnti, ma che non ha utilizzato di recente. Per identificare queste autorizzazioni, il motore per suggerimenti utilizza un modello di machine learning (ML) durante la generazione degli insight sui criteri.

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

  • Pattern comuni di co-occorrenza 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 in qualche modo correlati e che sono necessari insieme per eseguire un'attività su Google Cloud. Se il modello ML osserva questo pattern abbastanza spesso, la prossima volta che un utente diverso utilizza l'autorizzazione 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 diversi, specifici del servizio. Se un ruolo predefinito contiene un set di autorizzazioni, è un segnale forte che tali autorizzazioni devono essere concesse insieme.

Oltre a questi indicatori, il modello utilizza anche l'incorporamento delle parole per calcolare quanto sono semanticamente simili le autorizzazioni. Le autorizzazioni semanticamente simili saranno "ravvicinate" tra loro dopo l'incorporamento e hanno maggiori probabilità di 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 del motore per suggerimenti hanno k-anonymity, il che significa che i singoli utenti nel set di dati anonimi non possono essere identificati di nuovo. Per raggiungere questo livello di anonimato, eliminiamo tutte le informazioni che consentono l'identificazione personale (PII), come lo User-ID relativo a ciascun pattern di utilizzo delle autorizzazioni. Quindi eliminiamo tutti i pattern di utilizzo che non vengono visualizzati abbastanza spesso in Google Cloud. Il modello globale viene addestrato su questi dati anonimizzati.

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

Come vengono generati i consigli sui ruoli

Se un insight sui criteri indica che un'entità non ha bisogno di tutte le autorizzazioni nel suo ruolo, il motore per suggerimenti valuta il ruolo per determinare se può essere revocato o se esiste un altro ruolo più adatto. Se il ruolo può essere revocato, il motore per suggerimenti genera un suggerimento per la revoca del ruolo. Se esiste un altro ruolo più adatto, il motore per suggerimenti genera un suggerimento per 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 consigli per gli account di servizio gestiti da Google, un suggerimento sui ruoli non suggerisce mai una modifica che aumenta il livello di accesso di un'entità.

I suggerimenti dei ruoli vengono generati in base ai soli controlli di accesso IAM. Non prendono in considerazione altri tipi di controlli di 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 di accesso, presta particolare attenzione quando esamini i consigli e valuta la correlazione tra tali controlli e i criteri di autorizzazione.

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

Nuovi ruoli personalizzati nei consigli sui ruoli

Quando il motore per suggerimenti consiglia 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 motore per suggerimenti identifica un pattern di utilizzo delle autorizzazioni comune nella tua organizzazione che non corrisponde a un ruolo predefinito o personalizzato esistente, potrebbe anche essere utile creare un nuovo ruolo personalizzato a livello di progetto. Questo ruolo personalizzato include solo le autorizzazioni consigliate. Puoi modificare il suggerimento del ruolo personalizzato aggiungendo o rimuovendo autorizzazioni.

Se vuoi applicare il principio del privilegio minimo nel modo più rigoroso possibile, scegli il nuovo ruolo personalizzato. Il motore per suggerimenti 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 da Google, scegli il ruolo predefinito. Google Cloud aggiorna questi ruoli regolarmente aggiungendo o rimuovendo le autorizzazioni. Per ricevere notifiche su questi aggiornamenti, iscriviti al feed di notizie per il log delle modifiche alle autorizzazioni. Quando scegli il ruolo predefinito, l'entità continuerà ad avere almeno alcune autorizzazioni e potenzialmente un numero elevato di autorizzazioni che non ha utilizzato.

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

  • Il consiglio è per un ruolo a livello di cartella o organizzazione.
  • La tua organizzazione ha già 100 o più ruoli personalizzati.
  • Il progetto ha già 25 o più ruoli personalizzati.

Inoltre, il motore per suggerimenti non consiglia più di 5 nuovi ruoli personalizzati al giorno in ciascun progetto e non più di 15 nuovi ruoli personalizzati nell'intera organizzazione.

Come vengono generate le informazioni sugli spostamenti laterali

Si verifica un movimento laterale quando un account di servizio in un progetto ha l'autorizzazione a utilizzare 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 dispone delle autorizzazioni per rappresentare un account di servizio nel progetto B.

Queste autorizzazioni possono comportare una catena di rappresentazioni nei progetti che conferisce alle entità un accesso involontario alle risorse. Ad esempio, se un'entità ruba l'identità dell'account di servizio nel progetto A, può utilizzarlo per impersonare l'account di servizio nel progetto B. Se l'account di servizio nel progetto B è autorizzato a impersonare altri account di servizio in altri progetti nella tua organizzazione, l'entità può continuare a utilizzare il furto d'identità degli account di servizio per passare da un progetto all'altro, ottenendo le autorizzazioni man mano che procedi.

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

  • L'entità nell'associazione dei ruoli è un account di servizio che non è stato creato nel progetto.
  • Il ruolo include una delle seguenti autorizzazioni, che consentono a un'entità di impersonare un account di servizio:

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

Se un'associazione dei ruoli soddisfa questi criteri, il motore per suggerimenti genera un approfondimento del movimento laterale per l'associazione. Questo insight contiene informazioni sulle capacità di rappresentazione dell'account di servizio, inclusi gli account di servizio che può utilizzare e se ha utilizzato autorizzazioni di rappresentazione negli ultimi 90 giorni.

Il motore per suggerimenti non utilizza da solo gli insight sui movimenti laterali per generare nuovi suggerimenti per il ruolo. Questo perché, se un account di servizio utilizza le sue autorizzazioni di rappresentazione, il motore per suggerimenti non può suggerire in modo sicuro la rimozione. Tuttavia, se un ruolo suggerito consiglia di rimuovere queste autorizzazioni perché non sono utilizzate, il motore per suggerimenti collega l'approfondimento sul movimento laterale a quel consiglio. Questo collegamento ti aiuta a dare la priorità ai suggerimenti sui ruoli per gli account di servizio che dispongono di autorizzazioni di rappresentazione efficaci e inutilizzate per tutti i progetti.

Per informazioni su come gestire gli approfondimenti per il movimento laterale, consulta Gestire gli approfondimenti sul movimento laterale.

Disponibilità

Gli insight sui criteri e i suggerimenti sui ruoli non vengono generati per ciascuna associazione dei ruoli. Leggi le sezioni seguenti per comprendere le associazioni di ruoli generate dagli approfondimenti sui criteri e dai consigli.

Disponibilità delle informazioni sui criteri

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

  • Il criterio di autorizzazione IAM che contiene l'associazione dei ruoli deve essere associato a una delle seguenti risorse:

    • Bucket Cloud Storage
    • Progetto
    • Cartella
    • Organizzazione

    Il motore per suggerimenti genera solo insight sui criteri per i ruoli concessi su queste risorse.

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

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

Disponibilità delle informazioni sul movimento laterale

Gli insight sui movimenti laterali vengono generati per le associazioni di ruoli nelle seguenti risorse:

  • Organizzazioni
  • Cartelle
  • Progetti
  • Account di servizio

Disponibilità del suggerimento del ruolo

Affinché il motore per suggerimenti generi un suggerimento per un ruolo, è necessario che si verifichi quanto segue:

  • All'associazione dei ruoli deve essere associato un approfondimento delle norme. Queste informazioni sulle norme costituiscono la base del consiglio.
  • L'associazione dei ruoli deve essere antecedente a 90 giorni. Ciò garantisce che il motore per suggerimenti abbia dati di utilizzo sufficienti per fornire un suggerimento.
  • Se l'entità nell'associazione dei ruoli è un account di servizio gestito da Google, l'associazione dei ruoli deve essere Proprietario, Editor o Visualizzatore. Il motore per suggerimenti non genera suggerimenti per i ruoli per gli account di servizio gestiti da Google con altri ruoli. Per maggiori dettagli, consulta Consigli sui ruoli per gli account di servizio gestiti da Google.

Se un'associazione dei ruoli non ha insight o non esiste da 90 giorni, la colonna Autorizzazioni analizzate in Google Cloud Console mostra un'icona .

In alcuni casi il motore per suggerimenti non genera suggerimenti per il ruolo per un'associazione dei ruoli che risale a più di 90 giorni fa e ha un insight associato. Ciò può accadere per i seguenti motivi:

  • Non esistono ruoli IAM predefiniti più appropriati del ruolo attuale. Se un'entità ha già un ruolo predefinito che riduce al minimo le sue autorizzazioni o che include meno autorizzazioni rispetto ad altri ruoli predefiniti, il motore per suggerimenti 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 account di servizio gestito da Google e il ruolo non è un ruolo di base. Il motore per suggerimenti genera suggerimenti per i ruoli solo per gli account di servizio gestiti da Google se l'account di servizio ha un ruolo di base (Proprietario, Editor o Visualizzatore). Per maggiori dettagli, consulta Consigli sui ruoli per gli account di servizio gestiti da Google.

  • 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 questo ruolo è disponibile in una sola entità, il motore per suggerimenti non consiglia di revocare o sostituire il ruolo.

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

Priorità e gravità

La priorità e la gravità degli insight ti aiutano a comprendere l'urgenza di un consiglio o di un approfondimento e a stabilire le priorità di conseguenza.

Priorità consigliata per il ruolo

Ai consigli vengono assegnati livelli di priorità in base alla loro urgenza percepita. I livelli di priorità vanno da P0 (priorità massima) a P4 (priorità minima).

La priorità di un suggerimento sul ruolo dipende dall'associazione dei ruoli per cui consiglia il suggerimento:

Dettagli suggerimento Priorità Spiegazione
Suggerimenti per le associazioni di ruoli che consentono l'accesso pubblico ai bucket Cloud Storage P1 Su Internet, chiunque può accedere ai bucket accessibili pubblicamente. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Suggerimenti per le associazioni di ruoli che consentono i ruoli di base (Proprietario, Editor e Visualizzatore) in un progetto, una cartella o un'organizzazione P2 I ruoli di base sono altamente permissivi e l'applicazione di suggerimenti per questi ruoli può ridurre notevolmente le autorizzazioni concesse in eccesso.
Consigli che non concedono l'accesso pubblico o ruoli di base P4 Anche se questi suggerimenti ti aiutano a ridurre le autorizzazioni in eccesso, non eliminano l'accesso pubblico o i ruoli di base altamente permissivi, il che li rende più prioritari.

Gravità insight

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

La gravità di un approfondimento sui criteri dipende dall'associazione dei ruoli a cui è associato:

Dettagli insight Gravità Spiegazione
Insight per le associazioni di ruoli che consentono l'accesso pubblico ai bucket Cloud Storage CRITICAL Su Internet, chiunque può accedere ai bucket accessibili pubblicamente. La rimozione dell'accesso pubblico ti offre un maggiore controllo sui tuoi dati.
Approfondimenti per le associazioni di ruoli che consentono i ruoli di base (Proprietario, Editor e Visualizzatore) in un progetto, una cartella o un'organizzazione HIGH I ruoli di base sono estremamente permissivi e risolvere i problemi di questi ruoli può ridurre notevolmente le autorizzazioni concesse in eccesso.
Informazioni che non concedono l'accesso pubblico o ruoli di base LOW Anche se questi insight mettono in evidenza le autorizzazioni in eccesso, non prevedono l'accesso pubblico o ruoli di base altamente permissivi, il che li rende una priorità inferiore.

Tutti gli insight sui movimenti laterali hanno una gravità pari a LOW.

Come vengono applicati i consigli sui ruoli

Il motore per suggerimenti non applica automaticamente i consigli. Devi invece esaminare i tuoi consigli e decidere se applicarli o ignorarli. Per scoprire come rivedere, applicare e ignorare i suggerimenti sui ruoli, vedi Esaminare e applicare i suggerimenti sui ruoli per progetti, cartelle e organizzazioni o Esaminare e applicare i suggerimenti sui ruoli per i bucket Cloud Storage.

Audit logging

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

Sottotipi di suggerimento per il ruolo

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

Sottotipo Descrizione
REMOVE_ROLE Un consiglio per la rimozione del ruolo dell'entità a livello di progetto, di cartella o di organizzazione.
REMOVE_ROLE_STORAGE_BUCKET Un consiglio per la rimozione del ruolo a livello di bucket dell'entità.
REPLACE_ROLE Un consiglio per sostituire il ruolo a livello di progetto, di cartella o di 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 consiglio per sostituire il ruolo dell'entità con un nuovo ruolo personalizzato meno permissivo rispetto al ruolo attuale.
REPLACE_ROLE_STORAGE_BUCKET Un consiglio per sostituire il ruolo a livello di bucket dell'entità con un ruolo meno permissivo. La sostituzione consigliata potrebbe essere un ruolo personalizzato esistente o uno o più ruoli predefiniti.
SERVICE_AGENT_WITH_DEFAULT_ROLE Un consiglio per sostituire il ruolo Proprietario, Editor o Visualizzatore di un account di servizio gestito da Google con il ruolo concesso automaticamente all'account di servizio quando è stato creato. Per maggiori informazioni, consulta la pagina Consigli per gli account di servizio gestiti da Google.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Un consiglio per sostituire il ruolo Proprietario, Editor o Visualizzatore di un account di servizio gestito da Google con un ruolo meno permissivo. Per maggiori informazioni, consulta la pagina Consigli per gli account di servizio gestiti da Google.

Consigli sui ruoli per gli account di servizio gestiti da Google

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

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

SERVICE_AGENT_WITH_DEFAULT_ROLE

Al momento della creazione, ad alcuni account di servizio gestiti da Google viene automaticamente assegnato un ruolo di agente di servizio per garantire che i servizi di 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 il ruolo dell'agente di servizio originale per rimuovere le autorizzazioni in eccesso, anche se il ruolo di agente di servizio ha autorizzazioni che non si trovano nel ruolo di base. Questi consigli hanno il sottotipo SERVICE_AGENT_WITH_DEFAULT_ROLE. che consentono di rimuovere in sicurezza le autorizzazioni in eccesso e garantire che tutti i servizi di Google Cloud funzionino correttamente.

SERVICE_AGENT_WITH_DEFAULT_ROLE consigli 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 account di servizio gestito da Google non viene concesso automaticamente un ruolo nella creazione, i consigli per l'account di servizio si basano esclusivamente sulle autorizzazioni utilizzate dall'account di servizio. Questi consigli hanno il sottotipo SERVICE_AGENT_WITHOUT_DEFAULT_ROLE.

Esempi di consigli 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 su 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 genera un suggerimento per il ruolo che suggerisce di revocare il ruolo del browser da my-user@example.com:

console

gcloud

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

REST

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

Sostituire un ruolo esistente

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

Il motore per suggerimenti genera quindi un suggerimento per il ruolo che suggerisce di revocare il ruolo Editor e lo sostituisce 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) per un progetto. Il ruolo include più di 10 autorizzazioni, ma un insight sui criteri indica che, negli ultimi 90 giorni, my-user@example.com ha utilizzato solo 4 di queste autorizzazioni.

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

console

gcloud

Il sottotipo REPLACE_ROLE_CUSTOMIZABLE indica che il motore per suggerimenti consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, recupera l'approfondimento del criterio associato.

{
  "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 consiglia di creare un ruolo personalizzato con le autorizzazioni utilizzate. Per visualizzare le autorizzazioni utilizzate, recupera l'approfondimento del criterio associato.

{
  "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 del ruolo suggerisce anche un'altra opzione, che consiste nella sostituzione del ruolo esistente con il ruolo Utente di Cloud Trace (roles/cloudtrace.user). Questo ruolo predefinito include autorizzazioni leggermente inferiori rispetto al ruolo Amministratore di Cloud Trace.

Sostituzione del ruolo con autorizzazioni suggerite dal machine learning

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

L'approfondimento sui criteri evidenzia anche diverse autorizzazioni di cui un account di servizio avrà bisogno in futuro. Il motore per suggerimenti ha identificato queste autorizzazioni utilizzando il machine learning.

Il motore per suggerimenti genera un suggerimento per il ruolo che suggerisce di revocare il ruolo Editor e di sostituirlo con il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin), che concede il controllo completo degli oggetti in un bucket Cloud Storage. Questa modifica rimuove migliaia di autorizzazioni in eccesso, pur continuando a includere sia le autorizzazioni di cui l'account di servizio utilizzato sia quelle di cui probabilmente avrà bisogno l'account di servizio in futuro:

console

Il motore per suggerimenti utilizza un'icona Machine learning per identificare le autorizzazioni che sono state aggiunte in base al machine learning del motore per suggerimenti anziché in base all'utilizzo delle autorizzazioni. In questo esempio, l'autorizzazione resourcemanager.projects.get è stata consigliata in base al machine learning:

gcloud

Le autorizzazioni aggiunte in base al machine learning del motore per suggerimenti anziché in base all'utilizzo delle autorizzazioni non sono elencate nel consiglio stesso. Tuttavia, sono elencati negli approfondimenti sulle norme associati al consiglio. Tutte le autorizzazioni basate su 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 informazioni dettagliate sulle norme, consulta Rivedere gli approfondimenti relativi alle norme.

REST

Le autorizzazioni aggiunte in base al machine learning del motore per suggerimenti anziché in base all'utilizzo delle autorizzazioni non sono elencate nel consiglio stesso. Tuttavia, sono elencati negli approfondimenti sulle norme associati al consiglio. Tutte le autorizzazioni basate su 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 informazioni dettagliate sulle norme, consulta Rivedere gli approfondimenti relativi alle norme.

Passaggi successivi