Controllo dell'accesso per le cartelle con IAM

Puoi utilizzare i ruoli Identity and Access Management (IAM) a livello di cartella per gestire l'accesso a gruppi di progetti e risorse. I ruoli a livello di cartella ti aiutano ad applicare il principio del privilegio minimo nella gerarchia delle risorse quando associ i ruoli alle entità nelle policy di autorizzazione.

Utilizza l'API Cloud Resource Manager per creare e gestire le policy di autorizzazione o applica le policy di negazione per bloccare esplicitamente autorizzazioni specifiche. Per configurare un nuovo ambiente e concedere l'accesso iniziale, segui l'elenco di controllo per la configurazione diCloud de Confiance by S3NS . Per gestire l'accesso continuo, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Panoramica dei ruoli IAM per le cartelle

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

  • Il tipo di azioni che vuoi attivare.
  • I ruoli necessari per eseguire queste azioni.
  • Il livello di risorsa a cui devi applicare questi ruoli.
Tipo di azioni Ruoli richiesti Livello della risorsa
Amministra le cartelle nella risorsa dell'organizzazione Folder Admin Risorsa dell'organizzazione
Amministra una cartella e tutti i progetti e le cartelle che contiene Folder Admin Cartella specifica
Accede alle policy di autorizzazione di una cartella e le amministra Folder IAM Admin Cartella specifica
Crea nuove cartelle Creatore cartella Risorsa principale per la posizione delle nuove cartelle
Sposta cartelle e progetti Autore spostamento cartella Risorsa principale sia per la posizione della cartella originale sia per quella della nuova cartella
Sposta un progetto in una nuova cartella Project Editor o Proprietario progetto Risorsa padre sia per la località del progetto originale sia per quella del nuovo progetto
elimina una cartella Folder Editor 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 le entità.
  • Riduci al minimo l'utilizzo di 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, puoi assegnare a un gruppo di amministratori di reparto il ruolo Folder Admin sulla 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 fuori da una cartella. In caso contrario, rischi di interrompere le app o i workflow esistenti che richiedono queste autorizzazioni sulla 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 un prototipo della gerarchia prevista in anticipo.
  • La concessione di un ruolo a un utente a livello di cartella concederà all'utente quel ruolo anche per ogni risorsa all'interno della cartella. Ad esempio, se concedi a un utente il ruolo Amministratore Compute (roles/compute.admin) su una cartella, l'utente avrà il controllo completo di tutte le risorse Compute Engine in ogni progetto della cartella.

Informazioni sui ruoli e sulle autorizzazioni delle cartelle

Le cartelle fungono da confini amministrativi all'interno della tua organizzazione, consentendoti di raggruppare i progetti e applicare le policy su larga scala. L'accesso a queste cartelle è gestito tramite una combinazione di autorizzazioni ereditate dall'organizzazione e ruoli concessi direttamente a livello di cartella.

Ruoli predefiniti

La creazione di una cartella ti concede i ruoli Folder Admin e Folder Editor, che forniscono il controllo completo. Consulta la tabella seguente per le autorizzazioni fornite da questi ruoli. Puoi modificare questi ruoli predefiniti in una policy di autorizzazione.

Utilizza i 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

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 le policy di autorizzazione sulle 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 per visualizzare la policy 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 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 personalizzare in base alle tue esigenze. Quando crei un ruolo personalizzato da utilizzare con Resource Manager, tieni presente quanto segue:
  • Le autorizzazioni di elenco e recupero, ad esempio resourcemanager.projects.get/list, devono essere sempre concesse in coppia.
  • Quando 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.

Concedi i ruoli per abilitare la navigazione tra le cartelle

Le autorizzazioni di elenco 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 in una risorsa o cartella dell'organizzazione. Il ruolo Amministratore organizzazione viene inizializzato con entrambe queste autorizzazioni. Per gli utenti a cui non è stato assegnato il ruolo Organization Administrator:

  • resourcemanager.folders.list può essere concesso utilizzando i ruoli Visualizzatore cartelle ed Editor cartelle.
  • resourcemanager.projects.list può essere concessa utilizzando i ruoli Visualizzatore o Browser.

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

Concedi i ruoli per abilitare la creazione di cartelle

Agli utenti che devono creare cartelle deve essere concesso il ruolo Folder Creator su una risorsa nella gerarchia al di sopra del livello in cui verrà creata la cartella. Può essere utile concedere le autorizzazioni di navigazione insieme alle autorizzazioni di creazione delle cartelle, in modo che gli utenti possano spostarsi in modo efficace nella gerarchia in cui verrà creata la cartella. Per ulteriori informazioni sulle autorizzazioni di navigazione, consulta la sezione precedente.

Il ruolo Autore cartelle non concede a un utente l'autorizzazione dell'utente per eliminare una cartella. Tuttavia, quando una persona crea una cartella, le viene assegnato automaticamente il ruolo Editor cartelle. Il ruolo Folder Editor consente l'eliminazione delle cartelle.

Concedi i ruoli per abilitare lo spostamento delle cartelle

Per spostare una cartella da una risorsa padre a un'altra, gli utenti devono avere il ruolo Folder Mover sia sulla risorsa padre precedente che su quella nuova o su un antenato comune.

Concedi i ruoli per abilitare lo spostamento dei progetti

Per spostare un progetto in una cartella, gli utenti devono disporre dei ruoli Project Editor o Project Owner sul progetto e del ruolo Autore spostamento progetto sulle risorse principali di origine e 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 avere il ruolo Project Editor o Project Owner sul progetto e il ruolo Project Creator sulla risorsa dell'organizzazione.

Concedi ruoli specifici per le cartelle per abilitare la creazione di progetti

Per creare progetti, gli utenti devono avere il ruolo Project Creator. 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 Organization Viewer a livello di risorsa dell'organizzazione (ad esempio domain.com). Nella console Cloud de Confiance , seleziona la risorsa dell'organizzazione dal selettore di progetti e organizzazioni nella parte superiore della pagina oppure fai clic sul tuo dominio nella colonna Eredità nella pagina IAM.
  2. Crea una nuova cartella.
  3. Aggiungi l'utente a IAM a livello di cartella e concedigli i ruoli Visualizzatore cartelle e Autore progetti.

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