Identity and Access Management (IAM) fornisce più ruoli predefiniti per la maggior parte dei servizi Google Cloud. Ogni ruolo predefinito contiene le autorizzazioni necessarie per eseguire un'attività o un gruppo di attività correlate.
Per le attività semplici, l'individuazione di un ruolo predefinito appropriato è spesso immediata. Ad esempio, se un'entità deve visualizzare gli oggetti in un bucket Cloud Storage, il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
) potrebbe essere adatto.
Tuttavia, esistono centinaia di ruoli predefiniti, che possono rendere difficile identificare i ruoli più appropriati da concedere alle entità. Può essere difficile anche trovare ruoli che seguano il principio del privilegio minimo, secondo cui le entità non dovrebbero avere più autorizzazioni di quelle di cui hanno effettivamente bisogno.
Questa pagina illustra il processo per scegliere i ruoli predefiniti più appropriati:
- Identifica le autorizzazioni necessarie.
- Trova i ruoli che contengono le autorizzazioni.
- Scegli i ruoli più appropriati.
- Decidi dove concedere i ruoli.
- Concedi i ruoli a un'entità.
Identifica le autorizzazioni necessarie
Per identificare le autorizzazioni necessarie per un'entità, inizia elencando le attività che deve eseguire e i servizi Google Cloud che utilizzerà per tali attività. Ad esempio, un'entità potrebbe dover utilizzare Compute Engine per creare istanze di macchine virtuali.
Dopo aver identificato le attività e i servizi, puoi utilizzare alcune strategie per identificare le autorizzazioni necessarie per ogni attività:
Consulta la documentazione relativa ai servizi Google Cloud.
Per alcuni servizi, le guide illustrative orientate alle attività elencano i ruoli o le autorizzazioni necessari per ogni attività, in una sezione "Prima di iniziare" o con le istruzioni per ogni attività. Ad esempio, consulta i prerequisiti per l'importazione e l'esportazione di immagini VM di Compute Engine.
Alcuni altri servizi identificano i ruoli e le autorizzazioni richiesti in una pagina relativa al controllo dell'accesso. Ad esempio, consulta le autorizzazioni richieste per le attività della console Google Cloud di Cloud Spanner.
Identificare i metodi dell'API REST o RPC da utilizzare per completare le attività e controllare la documentazione di riferimento dell'API per le autorizzazioni IAM richieste.
Per alcuni servizi, la documentazione dell'API REST e RPC elenca le autorizzazioni richieste da ogni metodo. Ad esempio, consulta la documentazione di Compute Engine per il metodo
instances.get
.Guarda l'elenco delle autorizzazioni per ciascun servizio e usa il tuo giudizio per trovare le autorizzazioni pertinenti.
Nella maggior parte dei casi, il nome di ogni autorizzazione descrive anche cosa ti permette di fare l'autorizzazione. Ad esempio, l'autorizzazione per la creazione di un'istanza VM di Compute Engine è denominata
compute.instances.create
.Per aiutarti a comprendere ogni nome di autorizzazione, ricorda che utilizza il formato
SERVICE.RESOURCE_TYPE.ACTION
.
In generale, non è necessario identificare tutte le autorizzazioni necessarie per ogni attività. Concentrati invece sull'identificazione dell'autorizzazione più pertinente per ogni attività. Se un ruolo predefinito contiene quell'autorizzazione, è probabile che contenga anche le autorizzazioni correlate.
Nell'ambito di questo processo, dovresti anche provare a identificare quali delle autorizzazioni richieste sono le più efficaci. In generale, le autorizzazioni più potenti sono incluse in un numero inferiore di ruoli predefiniti. Di conseguenza, se ti concentri su queste autorizzazioni, avrai un elenco più breve di potenziali ruoli tra cui scegliere.
Ad esempio, i tipi di autorizzazioni seguenti sono particolarmente efficaci:
- Autorizzazioni per creare ed eliminare risorse
- Autorizzazioni per accedere a dati sensibili, come chiavi di crittografia o informazioni che consentono l'identificazione personale (PII)
- Autorizzazioni per impostare il criterio di autorizzazione o di negazione per una risorsa
- Autorizzazioni per aggiornare organizzazioni, cartelle e progetti, che possono causare l'ereditarietà di altri aggiornamenti
Al contrario, i tipi di autorizzazioni seguenti sono meno efficaci:
- Autorizzazioni per elencare le risorse
- Autorizzazioni ad accedere ai dati non sensibili
- Autorizzazioni per aggiornare le impostazioni che presentano rischi limitati, ad esempio la piattaforma CPU minima per le istanze di macchine virtuali di Compute Engine
Trovare i ruoli che contengono le autorizzazioni
Dopo aver identificato le autorizzazioni richieste, puoi cercare i ruoli predefiniti che contengono tali autorizzazioni e creare un elenco di ruoli che potrebbero essere adatti. Il modo più semplice per trovare questi ruoli è cercare nel riferimento autorizzazioni, che elenca tutte le autorizzazioni IAM e i ruoli che contengono ciascuna autorizzazione.
Per seguire il principio del privilegio minimo, potresti dover identificare più di un ruolo predefinito da concedere, soprattutto se le autorizzazioni richieste appartengono a più servizi Google Cloud. Ad esempio, se un'entità deve visualizzare gli oggetti Cloud Storage e amministrare i database Cloud SQL, è improbabile che un singolo ruolo predefinito contenga le autorizzazioni appropriate per entrambi i servizi. Se un ruolo di questo tipo esiste, potrebbe anche includere un numero elevato di autorizzazioni non correlate necessarie per l'entità. Per ridurre il rischio, cerca un ruolo contenente le autorizzazioni richieste per Cloud Storage e un altro che contenga le autorizzazioni richieste per Cloud SQL.
Scegli i ruoli più appropriati
Ora che disponi di un elenco di ruoli predefiniti che potrebbero essere adatti, puoi scegliere i ruoli più appropriati dall'elenco.
Per prima cosa, elimina i seguenti tipi di ruoli:
Per ambienti di produzione: ruoli di base, tra cui Proprietario (
roles/owner
), Editor (roles/editor
) e Visualizzatore (roles/viewer
).I ruoli di base includono migliaia di autorizzazioni per tutti i servizi Google Cloud. In ambienti di produzione, non concedere ruoli di base a meno che non ci siano alternative. Al contrario, concedi i ruoli predefiniti o i ruoli personalizzati più limitati a seconda delle tue esigenze.
Ruoli di agente di servizio, che in genere hanno titoli che terminano con "Agente di servizio" e nomi che terminano con
serviceAgent
.Questi ruoli sono destinati agli agenti di servizio, che sono un tipo speciale di account di servizio utilizzato da un servizio Google Cloud per accedere alle tue risorse. I ruoli degli agenti di servizio tendono a contenere autorizzazioni per più servizi, che possono includere servizi a cui l'entità non deve accedere.
Quindi, utilizza il riferimento ai ruoli predefiniti o la pagina Ruoli nella console Google Cloud per elencare le autorizzazioni contenute da ciascun ruolo. Verifica la presenza di autorizzazioni di cui non vuoi che l'entità abbia le autorizzazioni ed elimina i ruoli che contengono autorizzazioni indesiderate.
Se questo processo elimina tutti i ruoli predefiniti, valuta la possibilità di creare un ruolo personalizzato adatto al tuo caso d'uso. In caso contrario, scegli il ruolo o i ruoli che contengono il minor numero di autorizzazioni, pur rispettando le tue esigenze.
Decidi dove concedere i ruoli
Quando concedi un ruolo, lo concedi sempre in una risorsa Google Cloud specifica, che appartiene a una gerarchia delle risorse. Le risorse di livello inferiore, ad esempio le istanze VM di Compute Engine, ereditano i ruoli concessi alle risorse di livello superiore come progetti, cartelle e organizzazioni.
Scegli dove concedere i ruoli predefiniti identificati:
- Se l'entità ha bisogno di accedere a risorse specifiche di livello inferiore, concedi i ruoli su quelle risorse.
Se l'entità ha bisogno di accedere a molte risorse all'interno di un progetto, di una cartella o di un'organizzazione, concedi i ruoli nel progetto, nella cartella o nell'organizzazione. Scegli la risorsa di livello più basso che soddisfa le esigenze dell'entità.
Inoltre, valuta la possibilità di utilizzare le condizioni IAM per concedere i ruoli solo a risorse specifiche all'interno del progetto, della cartella o dell'organizzazione.
Se hai identificato più ruoli predefiniti, valuta se concedere i ruoli a diversi livelli della gerarchia delle risorse. Ad esempio, se un entità richiede l'accesso a un singolo database Cloud SQL, ma a molte istanze VM di Compute Engine diverse, potresti concedere il ruolo per Cloud SQL sul database e quello per Compute Engine nel progetto.
Concedi i ruoli a un'entità
Ora puoi concedere i ruoli all'entità. Per scoprire come concedere i ruoli, consulta le seguenti risorse:
- Gestire l'accesso a progetti, cartelle e organizzazioni
- Gestire l'accesso agli account di servizio
- Gestire l'accesso ad altre risorse
Dopo aver concesso i ruoli, puoi utilizzare lo Strumento di analisi criteri e la risoluzione dei problemi relativi ai criteri per controllare a quali risorse può accedere l'entità e risolvere i problemi di accesso.
Se l'entità ha le autorizzazioni previste sulle risorse corrette, ma non è in grado di completare le attività, è possibile che tu abbia ignorato un'autorizzazione di cui l'entità richiede. Ripeti il tentativo precedente aggiungendo le autorizzazioni richieste all'elenco, individuando i ruoli contenenti quelle autorizzazioni e scegliendo i ruoli più appropriati.
Se concedi accidentalmente un ruolo con troppe autorizzazioni, un consiglio di ruolo potrebbe suggerire un ruolo meno permissivo che soddisfi le esigenze dell'entità. Alcune associazioni di ruoli non ricevono suggerimenti sui ruoli.
Passaggi successivi
- Scopri come il Simulatore di criteri può aiutarti a testare le modifiche ai ruoli di un'entità.
- Scopri come l'Analizzatore criteri può indicarti l'accesso di un elemento a una risorsa.
- Scopri i dettagli sulla risoluzione dei problemi di accesso.