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 il livello di accesso necessario per le tue risorse.

IAM consente di controllare chi (utenti) ha quale accesso (ruoli) a quali risorse impostando le policy di autorizzazione. Le policy di autorizzazione concedono ruoli specifici a un utente, conferendogli determinate autorizzazioni.

Questa pagina descrive i ruoli IAM disponibili a livello di cartelle e come creare e gestire le policy di autorizzazione per le cartelle utilizzando l'API Cloud Resource Manager. Per saperne di più, consulta la pagina Gestire l'accesso a progetti, cartelle e organizzazioni.

Panoramica dei ruoli IAM per le cartelle

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

  • Il tipo di azioni che vuoi attivare
  • I ruoli richiesti per eseguire queste azioni
  • Il livello di risorsa a cui devi applicare questi ruoli
Tipo di azioni Ruoli richiesti Livello della risorsa
Amministrare le cartelle nella risorsa organizzazione Amministratore cartelle Risorsa dell'organizzazione
Amministrare una cartella e tutti i progetti e le cartelle che contiene Amministratore cartelle Cartella specifica
Accede ai criteri di autorizzazione di una cartella e li amministra Folder IAM Admin Cartella specifica
Creare nuove cartelle Creatore cartella Risorsa principale per la posizione delle nuove cartelle
Spostare cartelle e progetti Autore spostamento cartella Risorsa principale per la posizione della cartella originale e per la nuova posizione della cartella
Spostare un progetto in una nuova cartella Editor progetto o Proprietario progetto Risorsa padre sia per la posizione del progetto originale sia per la nuova posizione del progetto
elimina una cartella Editor cartella 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:

  • Utilizza i gruppi ogni volta che è possibile per gestire i principal.
  • 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 e fai in modo che i progetti le ereditino automaticamente. Ad esempio, potresti assegnare al gruppo di amministratori di un reparto il ruolo Amministratore cartella nella cartella. Gli amministratori di rete che devono disporre di autorizzazioni a livello di reparto possono avere il ruolo Amministratore di rete per la cartella.
  • Valuta attentamente quali autorizzazioni potrebbero cambiare prima di spostare una risorsa da una cartella. 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 nella risorsa dell'organizzazione e creare in anticipo un prototipo della gerarchia che intendi utilizzare.
  • Se concedi un ruolo a un utente a livello di cartella, l'utente avrà lo stesso ruolo per ogni risorsa sottostante la cartella. Ad esempio, se concedi a un utente il ruolo Amministratore Compute (roles/compute.admin) in una cartella, questo utente avrà il controllo completo di tutte le risorse Compute Engine in ogni progetto della cartella.

Informazioni su ruoli e autorizzazioni delle cartelle

Ruoli predefiniti

Quando crei una cartella, ti vengono assegnati i ruoli Amministratore cartella e Editor cartella per la cartella, in modo da avere il controllo completo in qualità di autore. Di seguito sono riportate le autorizzazioni fornite da questi ruoli. Questi ruoli predefiniti possono essere modificati normalmente in una policy di autorizzazione.

Utilizzare i ruoli predefiniti

Ruolo Autorizzazioni

(roles/resourcemanager.folderAdmin)

Fornisce tutte le autorizzazioni disponibili per lavorare con le 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

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

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

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

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

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

  • Cartella

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

Fornisce le autorizzazioni necessarie per esplorare 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.capabilities.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 visualizzare i criteri 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.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Fornisce l'autorizzazione per spostare progetti e cartelle all'interno e all'esterno di un'organizzazione o una cartella principale.

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.capabilities.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 anche creare ruoli personalizzati, ovvero raccolte di autorizzazioni che puoi adattare alle tue esigenze. Quando crei un ruolo personalizzato da utilizzare con Resource Manager, tieni presente quanto segue:
  • Elenca e ottieni autorizzazioni, ad esempio resourcemanager.projects.get/list, devono sempre essere concesse in coppia.
  • Se il tuo 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 di organizzazione, cartella e progetto consente all'utente di concedere tutte le altre autorizzazioni, pertanto deve essere assegnata con attenzione.

Assegnazione dei ruoli per attivare la navigazione nelle cartelle

Le autorizzazioni di elenco consentono di sfogliare le cartelle. I due tipi di autorizzazioni per l'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 in una risorsa o una cartella dell'organizzazione. L'Amministratore organizzazionee viene inizializzato con entrambe queste autorizzazioni. Per gli utenti a cui non è stato assegnato il ruolo di amministratore dell'organizzazione:

  • resourcemanager.folders.list può essere concesso tramite i ruoli Visualizzatore cartella e Editor cartella.
  • resourcemanager.projects.list può essere concesso tramite i ruoli Visualizzatore o Browser.

Affinché i principal della risorsa organizzazione possano sfogliare l'intera gerarchia delle risorse organizzazione, è necessario concedere le autorizzazioni di elenco a livello di risorsa organizzazione.

Concessione dei ruoli per abilitare la creazione di cartelle

Gli utenti che devono creare cartelle devono disporre del ruolo Creatore cartelle per una risorsa nella gerarchia sopra il livello in cui verrà creata la cartella. Può essere utile concedere le autorizzazioni di navigazione insieme a quelle di creazione delle cartelle in modo che gli utenti possano navigare in modo efficace fino al punto della 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 una persona crea una cartella, le viene automaticamente assegnato il ruolo Editor cartella. Il ruolo Editor cartelle consente l'eliminazione delle cartelle.

Concessione dei ruoli per abilitare lo spostamento delle cartelle

Per spostare una cartella da una risorsa padre a un'altra, gli utenti devono disporre del ruolo Trasferimento cartelle sia nella risorsa padre precedente che in quella nuova oppure in un antenato 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 del ruolo Trasferimento progetto per le risorse principali di origine e di destinazione.

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

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

Per creare progetti, gli utenti devono disporre del ruolo Autore 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 le cartelle:

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

Ciò consente all'utente di creare progetti nella propria cartella senza concedergli la visibilità di ogni progetto nella risorsa dell'organizzazione più grande.