Controllo dell'accesso per le cartelle con IAM

Google Cloud offre Identity and Access Management (IAM), che consente di concedere un accesso più granulare a risorse Google Cloud specifiche e impedisce l'accesso indesiderato ad altre risorse. IAM ti consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo l'accesso necessario alle tue risorse.

IAM consente di controllare chi (utenti) ha quale tipo di accesso (ruoli) a quali risorse impostando i criteri IAM. I criteri IAM concedono ruoli specifici a un utente concedendo all'utente determinate autorizzazioni.

Questa pagina illustra i ruoli IAM disponibili a livello di cartelle e come creare e gestire i criteri IAM per le cartelle utilizzando l'API Cloud Resource Manager. Per una descrizione dettagliata di IAM, leggi la documentazione IAM. In particolare, consulta Concessione, modifica e revoca dell'accesso.

Panoramica dei ruoli IAM per le cartelle

Per aiutarti a configurare i tuoi ruoli IAM, la seguente tabella elenca:

  • Il tipo di azioni che vuoi abilitare
  • I ruoli richiesti per eseguire queste azioni
  • Il livello di risorsa a cui devi applicare questi ruoli.
Tipo di azioni Ruoli obbligatori Livello risorsa
Amministra le cartelle nella risorsa dell'organizzazione Amministratore cartelle Risorsa organizzazione
Amministrare una cartella e tutti i progetti e le cartelle che contiene Amministratore cartelle Cartella specifica
Accede ai criteri IAM di una cartella e li amministrano Amministratore IAM cartella Cartella specifica
Crea nuove cartelle Creatore cartella Risorsa padre per la località delle nuove cartelle
Spostamento di cartelle e progetti Autore spostamento cartella Risorsa padre sia per la posizione della cartella originale sia per la nuova posizione della cartella
Spostare un progetto in una nuova cartella Editor progetto o Proprietario progetto Risorsa padre sia per la località del progetto originale sia per la nuova località del progetto
Elimina una cartella Editor cartelle o amministratore cartelle Cartella specifica

Best practice per l'utilizzo di ruoli e autorizzazioni IAM con le cartelle

Quando assegni ruoli e autorizzazioni IAM da utilizzare con le cartelle, tieni presente quanto segue:

  • Se possibile, utilizza i gruppi per gestire le entità.
  • Riduci al minimo l'utilizzo dei ruoli di base, come proprietario, editor e visualizzatore. Prova invece a utilizzare i ruoli predefiniti per il principio del privilegio minimo.
  • Per la gestione a livello di cartella, assegna le autorizzazioni a livello di cartella in modo che i progetti le ereditino automaticamente. Ad esempio, puoi assegnare a un gruppo di amministratori di reparto il ruolo Amministratore cartelle per la cartella. Gli amministratori di rete che devono disporre di autorizzazioni a livello di reparto possono avere il ruolo Amministratore rete per la cartella.
  • Prima di spostare una risorsa fuori da una cartella, considera attentamente quali autorizzazioni potrebbero cambiare. In caso contrario, potresti rischiare di interrompere app o flussi di lavoro esistenti che richiedono queste autorizzazioni per la risorsa.
  • Pianifica e testa attentamente la gerarchia delle risorse prima di spostare i progetti di produzione nelle cartelle. Un modo per farlo è creare una cartella di test all'interno della risorsa dell'organizzazione e creare in anticipo un prototipo della gerarchia prevista.
  • La concessione di un ruolo a un utente a livello di cartella concederà all'utente tale ruolo anche per tutte le risorse al di sotto di quella cartella. Ad esempio, se concedi a un utente il ruolo Amministratore Compute (roles/compute.admin) per una cartella, quell'utente avrà il controllo completo di tutte le risorse Compute Engine in ogni progetto al suo interno.

Informazioni sui ruoli e sulle autorizzazioni delle cartelle

Ruoli predefiniti

Quando crei una cartella, ti vengono assegnati i ruoli Amministratore cartelle ed Editor cartelle per tale cartella, in modo da avere il controllo completo in qualità di autore. Vedi di seguito le autorizzazioni fornite da questi ruoli. Questi ruoli predefiniti possono essere modificati normalmente in un criterio IAM.

Utilizzo dei ruoli predefiniti

Ruolo Autorizzazioni

(roles/resourcemanager.folderAdmin)

Fornisce tutte le autorizzazioni disponibili per l'utilizzo delle cartelle.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.delete
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.setIamPolicy

(roles/resourcemanager.folderIamAdmin)

Fornisce le autorizzazioni per amministrare i criteri di autorizzazione sulle cartelle.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.setIamPolicy

(roles/resourcemanager.folderCreator)

Fornisce le autorizzazioni necessarie per sfogliare la gerarchia e creare cartelle.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

Fornisce l'autorizzazione per modificare le cartelle e per visualizzare il criterio di autorizzazione di una cartella.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Fornisce l'autorizzazione per spostare progetti e cartelle da e verso un'organizzazione o una cartella padre.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Fornisce l'autorizzazione per ottenere una cartella ed elencare le cartelle e i progetti al di sotto di una risorsa.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • Cartella

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

Creazione di ruoli personalizzati

Oltre ai ruoli predefiniti descritti in questo argomento, puoi creare anche ruoli personalizzati, ovvero raccolte di autorizzazioni che puoi personalizzare in base alle tue esigenze. Quando crei un ruolo personalizzato da utilizzare con Resource Manager, tieni presente quanto segue:
  • Le autorizzazioni di tipo Elenca e ottieni, ad esempio resourcemanager.projects.get/list, devono essere sempre concesse in coppia.
  • Se il ruolo personalizzato include le autorizzazioni folders.list e folders.get, deve includere anche projects.list e projects.get.
  • Tieni presente che l'autorizzazione setIamPolicy per le risorse dell'organizzazione, della cartella e del progetto consente all'utente di concedere tutte le altre autorizzazioni, pertanto deve essere assegnata con cautela.

Concessione di ruoli per abilitare la navigazione delle cartelle

Le autorizzazioni degli elenchi consentono la navigazione nelle cartelle. I due tipi di autorizzazioni di elenco che in genere devono essere concesse sono resourcemanager.folders.list, che consente agli utenti di elencare le cartelle in una risorsa, e resourcemanager.projects.list, che consente agli utenti di sfogliare i progetti all'interno di una risorsa o cartella dell'organizzazione. L'Amministratore dell'organizzazione viene inizializzato con entrambe le autorizzazioni. Per gli utenti a cui non è stato assegnato il ruolo Amministratore organizzazione:

  • resourcemanager.folders.list può essere concesso tramite i ruoli Visualizzatore cartelle ed Editor cartelle.
  • L'autorizzazione resourcemanager.projects.list può essere concessa tramite il ruolo Visualizzatore o Browser.

Affinché le entità delle risorse dell'organizzazione possano sfogliare l'intera gerarchia delle risorse dell'organizzazione, le autorizzazioni degli elenchi devono essere concesse a livello di risorsa dell'organizzazione.

Concessione di ruoli per abilitare la creazione di cartelle

Agli utenti che devono creare cartelle deve essere concesso il ruolo Creatore cartelle per una risorsa nella gerarchia superiore al livello in cui verrà creata la cartella. Può essere utile concedere le autorizzazioni di navigazione e quelle per la creazione di cartelle, in modo che gli utenti possano raggiungere in modo efficace la posizione nella gerarchia in cui verrà creata la cartella. Per ulteriori informazioni sulle autorizzazioni di navigazione, consulta la sezione precedente.

Creatore cartelle non concede a un utente l'autorizzazione per eliminare una cartella. Tuttavia, quando un utente crea una cartella, gli viene automaticamente concesso il ruolo Editor cartelle. Il ruolo Editor cartelle consente l'eliminazione delle cartelle.

Concessione di ruoli per abilitare lo spostamento delle cartelle

Per spostare una cartella da una risorsa padre a un'altra, gli utenti devono disporre del ruolo Spostamento cartella sia sulla risorsa padre precedente che su quella nuova o su un predecessore comune.

Concessione di ruoli per consentire lo spostamento dei progetti

Per spostare un progetto in una cartella, gli utenti devono disporre dei ruoli Editor progetto o Proprietario progetto per il progetto e Autore spostamento progetto sia sulle risorse padre di origine che di destinazione.

Questo è leggermente diverso dai requisiti per lo spostamento di un progetto non di proprietà dell'organizzazione nella risorsa dell'organizzazione, in cui gli utenti devono disporre del ruolo Editor progetto o Proprietario progetto per il progetto e Creatore progetto per la risorsa dell'organizzazione.

Concessione di ruoli specifici della cartella per abilitare la creazione di progetti

Per creare progetti, gli utenti devono disporre del ruolo Creatore progetto. Tuttavia, anziché concedere l'autorizzazione per la creazione di progetti a livello di organizzazione, può essere utile limitare gli utenti alla visualizzazione e alla creazione di progetti solo all'interno di una determinata cartella.

Per concedere autorizzazioni specifiche per cartella:

  1. Concedi all'utente il ruolo Visualizzatore organizzazione a livello di nodo organizzazione (ad esempio, dominio.com).
  2. Creare una nuova cartella.
  3. Aggiungi l'utente a IAM a livello di cartella e concedi all'utente i ruoli Visualizzatore cartelle e Creatore progetto.

In questo modo l'utente può creare progetti nella cartella senza concedergli la visibilità su ogni progetto nella risorsa dell'organizzazione più grande.