Creazione e gestione delle cartelle

Le cartelle sono nodi della gerarchia delle risorse della piattaforma Cloud. Una cartella può contenere progetti, altre cartelle o una combinazione di entrambi. Le risorse dell'organizzazione possono utilizzare le cartelle per raggruppare i progetti sotto il nodo della risorsa dell'organizzazione in una gerarchia. Ad esempio, la risorsa dell'organizzazione potrebbe contenere più reparti, ognuno con il proprio insieme di risorse Google Cloud. Le cartelle ti consentono di raggruppare queste risorse in base al reparto. Le cartelle vengono utilizzate per raggruppare le risorse che condividono criteri IAM comuni. Sebbene una cartella possa contenere più cartelle o risorse, una determinata cartella o risorsa può avere esattamente una cartella principale.

Nel diagramma seguente, la risorsa dell'organizzazione "Azienda" contiene cartelle che rappresentano due reparti, "Dept X" e "Dept Y", e una cartella, "Infrastruttura condivisa", per gli elementi che potrebbero essere comuni a entrambi i reparti. In "Dept Y", si sono organizzati in due team e, all'interno delle cartelle dei team, si organizzano ulteriormente per prodotti. La cartella "Prodotto 1" contiene inoltre tre progetti, ciascuno con le risorse necessarie. Ciò offre un elevato grado di flexibilità nell'assegnazione dei criteri IAM e dei criteri dell'organizzazione al livello di granularità corretto.

Esempio di gerarchia di cartelle

Puoi utilizzare i criteri IAM a livello di cartella per controllare l'accesso alle risorse contenute nella cartella. Ad esempio, se a un utente viene assegnato il ruolo Amministratore istanza Compute in una cartella, questo utente dispone del ruolo Amministratore istanza Compute per tutti i progetti nella cartella.

Prima di iniziare

La funzionalità delle cartelle è disponibile solo per i clienti di Google Workspace e Cloud Identity che dispongono di una risorsa dell'organizzazione. Per saperne di più sull'acquisizione di una risorsa organizzazione, consulta Creare e gestire le organizzazioni.

Se vuoi scoprire come utilizzare al meglio le cartelle, ti consigliamo di:

  1. Consulta Controllo dell'accesso per le cartelle tramite IAM. L'argomento descrive come controllare chi ha accesso alle cartelle e alle risorse che contengono.
  2. Scopri come impostare le autorizzazioni per le cartelle. Le cartelle supportano diversi ruoli IAM. Se vuoi impostare in modo ampio le autorizzazioni in modo che gli utenti possano vedere la struttura dei loro progetti, concedi all'intero dominio i ruoli Visualizzatore dell'organizzazione e Visualizzatore della cartella a livello di risorsa dell'organizzazione. Per limitare la visibilità ai rami della gerarchia delle cartelle, concedi il ruolo Visualizzatore cartelle alla cartella o alle cartelle che vuoi che gli utenti vedano.
  3. Creazione di cartelle. Quando pianifichi come organizzare le risorse Cloud, ti consigliamo di iniziare con una singola cartella come sandbox, dove puoi sperimentare la gerarchia più adatta per la risorsa della tua organizzazione. Considera le cartelle come confini di isolamento tra le risorse e i punti di collegamento per i criteri di accesso e configurazione. Puoi scegliere di creare cartelle contenenti risorse appartenenti a diversi reparti e assegnare ruoli amministrativi alle cartelle per delegare i privilegi amministrativi. Le cartelle possono essere utilizzate anche per raggruppare le risorse che appartengono a applicazioni o ambienti diversi, come sviluppo, produzione e test. Utilizza cartelle nidificate per modellare questi diversi scenari.

Una situazione comune è creare cartelle che a loro volta contengono altre cartelle o progetti, come mostrato nell'immagine sopra. Questa struttura è nota come gerarchia di cartelle. Quando crei una gerarchia di cartelle, tieni presente quanto segue:

  • Puoi nidificare le cartelle fino a 10 (dieci) livelli di profondità.
  • Una cartella principale non può contenere più di 300 cartelle. Si riferisce solo alle cartelle secondarie dirette. Queste cartelle secondarie possono, a loro volta, contenere altre cartelle o progetti.
  • I nomi visualizzati delle cartelle devono essere univoci nello stesso livello della gerarchia.

Configurare le autorizzazioni per gestire le cartelle

Per accedere e gestire le cartelle, assegna ruoli IAM specifici per le cartelle a gruppi specifici di utenti. Per scoprire di più su questi ruoli, consulta Controllo dell'accesso per le cartelle con IAM. Ti consigliamo inoltre di consultare le nostre best practice per identificare la configurazione ottimale per le autorizzazioni delle cartelle.

Per gestire le cartelle per l'intera risorsa dell'organizzazione, devi disporre del ruolo Amministratore delle cartelle. Questo ruolo concede all'utente l'autorizzazione per creare, modificare, eliminare, spostare e modificare le autorizzazioni IAM per le cartelle, nonché l'autorizzazione per spostare i progetti tra le cartelle.

Inizialmente, solo l'amministratore dell'organizzazione può assegnare il ruolo Amministratore cartelle per la risorsa dell'organizzazione. Gli account successivi a cui viene assegnato questo ruolo possono concederlo ad altri account.

Per configurare le autorizzazioni delle cartelle:

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Se il riquadro informazioni non è aperto, fai clic su Mostra riquadro informazioni.
  3. Nella tabella Risorse, espandi l'organizzazione contenente la cartella.
  4. Dall'elenco delle risorse in Organizzazione, seleziona la cartella che vuoi gestire.
  5. Nel riquadro delle informazioni, fai clic su Aggiungi entità.
  6. Nel campo Aggiungi entità, inserisci l'indirizzo email a cui vuoi concedere le autorizzazioni.
  7. Nel menu Seleziona un ruolo, seleziona la categoria Gestore risorse e poi il ruolo che vuoi concedere, ad esempio Amministratore cartelle.
  8. Fai clic su Salva per concedere il nuovo ruolo.

gcloud

Per concedere il ruolo Amministratore cartelle a un principale utilizzando Google Cloud CLI, esegui il seguente comando:

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member=user:USER_ID \
    --role=roles/resourcemanager.folderAdmin

API

Il JSON della richiesta:

request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [   "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'

La richiesta curl:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy

Sostituisci ORGANIZATION_NAME con il nome dell'organizzazione di cui viene impostato il criterio IAM, ad esempio organizations/123.

Creazione di cartelle

Per creare cartelle, devi disporre del ruolo Amministratore delle cartelle o Creatore di cartelle a livello di cartella principale. Ad esempio, per creare cartelle a livello di organizzazione, devi disporre di uno di questi ruoli a livello di organizzazione.

Durante la creazione di una cartella, devi assegnarle un nome. I nomi delle cartelle devono soddisfare i seguenti requisiti:

  • Il nome può contenere lettere, cifre, spazi, trattini e trattini bassi.
  • Il nome visualizzato della cartella deve iniziare e terminare con una lettera o un numero.
  • Il nome deve essere compreso tra 3 e 30 caratteri.
  • Il nome deve essere diverso da quello di tutte le altre cartelle che condividono la cartella principale.

Per creare una cartella:

Console

Le cartelle possono essere create nell'interfaccia utente utilizzando la sezione "Gestisci progetti e cartelle".

  1. Vai alla pagina Gestisci risorse nella console Google Cloud:

    Apri la pagina Gestisci risorse

  2. Assicurati che il nome della risorsa dell'organizzazione sia selezionato nell'elenco a discesa dell'organizzazione nella parte superiore della pagina.

  3. Fai clic su Crea cartella e seleziona una delle seguenti opzioni:

    • Cartella standard: una risorsa cartella standard.
    • Cartella conforme: una cartella Assured Workloads che fornisce controlli aggiuntivi a livello di normative, regionali o di sovranità per le risorse Google Cloud. Se selezioni questa opzione, verrà visualizzata la pagina Assured Workloads per creare una cartella.
  4. Nella casella Nome cartella, inserisci il nome della nuova cartella.

  5. In Destinazione, fai clic su Sfoglia e seleziona la risorsa o la cartella dell'organizzazione in cui vuoi creare la nuova cartella.

    1. Fai clic su Crea.

gcloud

Le cartelle possono essere create in modo programmatico utilizzando Google Cloud CLI.

Per creare una cartella nella risorsa dell'organizzazione utilizzando lo strumento a riga di comando gcloud, esegui il seguente comando.

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

Per creare una cartella la cui cartella principale è un'altra cartella:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della cartella. Nessuna delle due cartelle con lo stesso elemento principale può condividere un nome visualizzato. Il nome visualizzato deve iniziare e terminare con una lettera o un numero, può contenere lettere, cifre, spazi, trattini e trattini bassi e non può superare i 30 caratteri.
  • [ORGANIZATION_ID]è l'ID della risorsa dell'organizzazione principale se la risorsa principale è una risorsa dell'organizzazione.
  • [FOLDER_ID] è l'ID della cartella principale, se la cartella principale è una cartella.

API

Le cartelle possono essere create con una richiesta API.

Il JSON della richiesta:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

La richiesta curl Create Folder:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

Dove:

  • [DISPLAY_NAME] è il nome visualizzato della nuova cartella, ad esempio "La mia fantastica cartella".
  • [ORGANIZATION_NAME] è il nome della risorsa dell'organizzazione in cui stai creando la cartella, ad esempio organizations/123.

La risposta Crea cartella:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

La richiesta curl Get Operation:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

La risposta all'operazione Get:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

Aggiungere tag durante la creazione di cartelle

I tag consentono di creare annotazioni per le risorse. Puoi aggiungere i tag al momento della creazione delle cartelle. Per farlo, devi concedere il ruolo Utente tag. Per ulteriori informazioni sulle autorizzazioni contenute in questo ruolo, consulta Gestire i tag nelle risorse. Puoi aggiungere lo spazio dei nomi per le coppie chiave-valore del tag in uno dei seguenti modi:

gcloud

Per aggiungere tag durante la creazione della cartella, esegui il seguente comando:

  gcloud resource-manager folders create \
  --display-name=DISPLAY_NAME \
  --organization=ORGANIZATION_ID
  --tags=KEY_VALUE_PAIRS

Sostituisci quanto segue:

  • DISPLAY_NAME è il nome visualizzato della cartella.
  • ORGANIZATION_ID è l'identificatore univoco della risorsa dell'organizzazione principale.
  • KEY_VALUE_PAIRS è un elenco di coppie chiave-valore separate da virgola che puoi assegnare alla risorsa. Un esempio di coppie chiave-valore separate da virgole è 123/environment=production, 456/create=testresource.

API

Il seguente snippet è una richiesta JSON che crea una cartella e aggiunge i tag.

  POST https://cloudresourcemanager.googleapis.com/v3/projects/
  Authorization: *************
  Content-Type: application/json

  {
    "display_name": "our-folder-456",
    "parent": "organizations/123",
    "tags": {
      "key": "123/environment"
      "value": "production"
    },
"tags": {
      "key": "123/costCenter"
      "value": "marketing"
    }
  }

Configurare l'accesso alle cartelle

Per configurare l'accesso alle cartelle, devi disporre del ruolo Amministratore IAM delle cartelle o Amministratore delle cartelle a livello di cartella principale.

Console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Fai clic sull'elenco a discesa Organizzazione in alto a sinistra e poi seleziona la risorsa dell'organizzazione.

  3. Seleziona la casella di controllo accanto al progetto per cui vuoi modificare le autorizzazioni.

    1. Sul lato destro del riquadro Informazioni, in Autorizzazioni, inserisci gli indirizzi email dei membri che vuoi aggiungere.

    2. Nell'elenco a discesa Seleziona un ruolo, seleziona il ruolo da concedere ai membri.

    3. Fai clic su Aggiungi. Viene visualizzata una notifica per confermare l'aggiunta o l'aggiornamento del nuovo ruolo dei membri.

gcloud

Puoi configurare l'accesso alle cartelle in modo programmatico utilizzando Google Cloud CLI o l'API.

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

In alternativa:

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

Dove:

  • [FOLDER_ID] è l'ID della nuova cartella.
  • [POLICY_FILE] è il percorso di un file di criteri per la cartella.

API

Il metodo setIamPolicy imposta il criterio di controllo dell'accesso in una cartella, sostituendo qualsiasi criterio esistente. Il campo resource deve essere il nome della risorsa della cartella, ad esempio folders/1234.

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

La richiesta curl:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

Dove:

  • [FOLDER_NAME] è il nome della cartella di cui viene impostato il criterio IAM, ad esempio cartelle/123.

Creare un progetto in una cartella

Per creare un progetto in una cartella, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator) per la cartella. Questo ruolo può essere ereditato da una cartella principale.

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la console Google Cloud

  2. Vai alla pagina Gestisci risorse.
  3. Seleziona la risorsa dell'organizzazione dal menu a discesa Organizzazione in alto a sinistra nella pagina.
  4. Fai clic su Crea progetto.
  5. Inserisci un nome del progetto.
  6. Nella casella Destinazione, fai clic su Sfoglia per selezionare la cartella in cui vuoi creare il progetto.

  7. Fai clic su Crea.

gcloud

  gcloud projects create PROJECT_ID --folder FOLDER_ID

Sostituisci quanto segue:

  • PROJECT_ID è l'ID del progetto da creare.
  • FOLDER_ID è l'ID della cartella in cui deve essere creato il progetto.

API

Il JSON della richiesta:

   request_json= '{
      name: DISPLAY_NAME, projectId: PROJECT_ID, parent: {id: PARENT_ID, type: PARENT_TYPE}
   }'

La richiesta curl:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/projects

Sostituisci quanto segue:

  • PROJECT_ID è l'identificatore univoco del progetto in fase di creazione. Ad esempio, my-awesome-proj-123.
  • DISPLAY_NAME è il nome visualizzato del progetto in fase di creazione.
  • PARENT_ID è l'identificatore univoco dell'elemento principale in cui viene creato. Ad esempio, 123.
  • PARENT_TYPE è il tipo di elemento principale, ad esempio folder o organization.

Non includere informazioni sensibili nel nome della cartella o in altri nomi di risorse. Qualsiasi riferimento alla cartella o alle risorse correlate espone il nome della cartella e della risorsa.

Spostamento di un progetto in una cartella

Devi valutare attentamente le implicazioni delle norme prima di spostare un progetto in una cartella o rimuoverlo da una cartella. I criteri di Identity and Access Management che definisci a livello di progetto verranno spostati con il progetto, ma i criteri ereditati da una risorsa principale non verranno spostati.

Quando sposti un progetto, vengono spostati con esso anche i criteri di Identity and Access Management o dell'organizzazione collegati direttamente. Tuttavia, un progetto nella gerarchia delle risorse è interessato anche dai criteri che eredita dalle risorse principali. Se un progetto eredita un ruolo IAM che fornisce agli utenti l'autorizzazione per utilizzare un determinato servizio, gli utenti non avranno accesso a quel servizio nella destinazione, a meno che non ereditino l'autorizzazione anche nella destinazione.

Ad esempio, immagina un account di servizio con il ruolo Creatore oggetti archiviazione associato a un utente nella cartella A. L'account di servizio dispone delle autorizzazioni per caricare i dati su Cloud Storage in qualsiasi progetto della cartella A. Se hai spostato uno di questi progetti nella Cartella B, che non ha le stesse autorizzazioni ereditate, l'account di servizio del progetto perde la possibilità di caricare dati, causando un'interruzione del servizio.

Le stesse considerazioni valgono se i criteri dell'organizzazione sono definiti nelle cartelle di origine e di destinazione. Come i criteri IAM, anche i criteri dell'organizzazione vengono ereditati. Di conseguenza, devi assicurarti che i criteri della tua organizzazione siano coerenti tra le cartelle di origine e di destinazione.

Per scoprire di più sui criteri dell'organizzazione, consulta Introduzione al servizio di criteri dell'organizzazione.

Per spostare un progetto, devi disporre del ruolo IAM Project Mover (roles/resourcemanager.projectMover) sia nella cartella di origine sia nella cartella di destinazione. Se la risorsa non si trova in una cartella, devi disporre di questo ruolo nella risorsa dell'organizzazione.

Questi ruoli ti forniscono le seguenti autorizzazioni richieste:

  • resourcemanager.projects.update sul progetto
  • Se la risorsa si trova in una cartella: resourcemanager.projects.move nella cartella di origine e in quella di destinazione
  • Se la risorsa non si trova in una cartella: resourcemanager.projects.move nella risorsa dell'organizzazione

Puoi anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Console

Per spostare un progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Seleziona la tua organizzazione dal menu a discesa Organizzazione in alto sinistra della pagina.

  3. Fai clic sulla riga del progetto per selezionarlo dall'elenco di risorse. Tieni presente che non devi fare clic sul nome del progetto, in quanto si aprirà la pagina IAM del progetto.

  4. Fai clic sul menu opzioni (i tre puntini verticali) nella riga e poi su Sposta.

  5. Fai clic su Sfoglia per selezionare la cartella in cui vuoi spostare il progetto.

  6. Fai clic su Sposta.

gcloud

Per spostare un progetto, esegui il comando gcloud beta projects move:

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

Dove:

  • PROJECT_ID è l'ID o il numero del progetto che vuoi spostare.

  • DESTINATION_TYPE è organization o folder.

  • DESTINATION_ID è l'ID della risorsa o della cartella dell'organizzazione a cui vuoi spostare il progetto. Puoi specificare un solo target.

API

Puoi utilizzare il metodo projects.move v3 per spostare un progetto.

Richiesta:

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

Dove:

  • PROJECT_NAME è il nome del progetto da aggiornare. Ad esempio, projects/415104041262

  • DESTINATION_PARENT è la nuova risorsa o cartella dell'organizzazione principale in cui vuoi spostare il progetto. Ad esempio: organizations/12345678901

In caso di esito positivo, la richiesta restituirà un'operazione che può essere utilizzata per monitorare lo spostamento del progetto.

Spostare una cartella in un'altra cartella

Per spostare una cartella in un'altra, devi disporre dell'autorizzazione resourcemanager.folders.move sia per le cartelle di origine sia per quelle di destinazione.

console

La procedura per spostare le cartelle in altre cartelle nella console è simile allo spostamento dei progetti.

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la console Google Cloud

  2. Seleziona la risorsa dell'organizzazione dal menu a discesa Organizzazione in alto a sinistra nella pagina.
  3. Fai clic sulla riga della cartella per selezionarla dall'elenco di progetti e cartelle.
  4. Fai clic sul menu opzioni (i tre puntini verticali) nella riga e poi su Sposta.
  5. Fai clic su Sfoglia per selezionare la cartella in cui vuoi spostare la cartella.
  6. Fai clic su Sposta.

gcloud

Per spostare una cartella nella risorsa Organizzazione, esegui il seguente comando in Google Cloud CLI:

gcloud resource-manager folders move [FOLDER_ID] \
  --organization=[PARENT_ID]

Per spostare una cartella in un'altra cartella:

gcloud resource-manager folders move [FOLDER_ID] \
  --folder=[PARENT_ID]

Sostituisci quanto segue:

  • [FOLDER_ID] è l'ID della cartella da spostare.
  • [PARENT_ID] è l'ID risorsa organizzazione o l'ID cartella della risorsa o della cartella dell'organizzazione principale.

API

Il JSON della richiesta:

request_json= '{
   destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'

La richiesta curl di Sposta cartella:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/[DISPLAY_NAME]:move

Sostituisci quanto segue:

  • [DESTINATION_FOLDER_ID] è l'ID della cartella in cui stai spostando un'altra cartella, ad esempio 98765.
  • [DISPLAY_NAME] è il nome visualizzato della cartella da spostare, ad esempio "La mia fantastica cartella".

La risposta Sposta cartella:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  }
}

La richiesta curl Get Operation:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890

La risposta all'operazione Get:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

Visualizzazione o elencazione di cartelle e progetti

Per visualizzare o elencare le cartelle, devi disporre dei ruoli Visualizzatore organizzazione e Visualizzatore cartelle.

Per visualizzare o elencare cartelle e progetti:

console

  1. Nella console Google Cloud, apri la pagina Gestisci risorse.

    Apri la pagina Gestisci risorse

  2. Nel selettore di progetti nella parte superiore della pagina, seleziona la risorsa della tua organizzazione. Le cartelle devono essere create prima di essere visualizzate in questo elenco.

  3. Seleziona una riga nell'albero per eseguire operazioni specifiche per cartelle o progetti.

  4. Inserisci il nome/l'ID del progetto o della cartella nella ricerca per filtrare l'elenco.

gcloud

Per ottenere i dettagli di una cartella, utilizza il comando resource-manager folders describe.

gcloud resource-manager folders describe FOLDER_ID

Sostituisci FOLDER_ID con l'ID della cartella che vuoi visualizzare.

Per elencare le cartelle secondarie di una risorsa dell'organizzazione, utilizza il comando resource-manager folders list.

gcloud resource-manager folders list \
  --organization ORGANIZATION_ID

Sostituisci ORGANIZATION_ID con l'ID della risorsa dell'organizzazione per cui vuoi visualizzare un elenco di cartelle secondarie.

Per elencare le cartelle secondarie di una risorsa cartella, utilizza il comando resource-manager folders list.

gcloud resource-manager folders list \
  --folder FOLDER_ID

Sostituisci FOLDER_ID con l'ID della risorsa della cartella per cui vuoi visualizzare un elenco di cartelle secondarie.

Per elencare i progetti in una risorsa o in una cartella di un'organizzazione, utilizza il comando projects list con l'argomento filter.

gcloud projects list \
  --filter=" parent.id: 'RESOURCE_ID' "

Sostituisci RESOURCE_ID con l'ID della risorsa dell'organizzazione o della cartella per cui vuoi visualizzare un elenco di progetti secondari.

API

La richiesta curl per ottenere le cartelle:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]

Sostituisci FOLDER_NAME con il nome della cartella, ad esempio folders/123.

La richiesta curl per elencare le cartelle:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/folders?parent=[PARENT_NAME]

Sostituisci PARENT_NAME con il nome della risorsa principale sotto la quale stai creando la cartella, ad esempio organizations/123 o folders/123.

Utilizzo di Google Cloud CLI

I comandi per interagire con l'API Folders con lo strumento a riga di comando gcloud sono disponibili nel gruppo di comandi gcloud resource-manager folders.

Crea

Per creare una nuova cartella, utilizza gcloud resource-manager folders create con i flag che impostano il nome della cartella e l'ID della risorsa o della cartella dell'organizzazione in cui vuoi che venga creata.

gcloud resource-manager folders create \
  --display-name="Super Fantastic Folder" \
  --organization=2518

Created Folder 245321.

Visualizza

Per visualizzare una cartella, utilizza gcloud resource-manager folders describe con l'ID della cartella che vuoi visualizzare.

gcloud resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>

Elenco

Per elencare le cartelle all'interno di una cartella, utilizza gcloud resource-manager folders list, passando l'ID della cartella nel flag --folder. È possibile elencare anche le cartelle di primo livello di una risorsa dell'organizzazione utilizzando il flag --organization.

gcloud resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>

gcloud resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>

Per includere nell'elenco le cartelle per le quali è richiesta l'eliminazione, aggiungi il flag --show-deleted

gcloud beta resource-manager folders list --folder 245321 --show-deleted
<table output showing all the folders including the delete requested ones underneath the folder with the specified ID>

Puoi elencare i progetti utilizzando il comando gcloud projects list, passando la cartella principale o l'ID risorsa dell'organizzazione nel flag --filter.

gcloud projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>

Per ulteriori informazioni su come le autorizzazioni e i filtri interagiscono con i comandi di elenco, consulta Elenco di tutte le risorse nella gerarchia.

Per cercare le cartelle corrispondenti alla query specificata, utilizza gcloud alpha resource-manager folders search, passando la condizione nel flag --query. L'ambito della ricerca è costituito da tutte le cartelle per le quali l'utente dispone dell'autorizzazione di visualizzazione.

gcloud alpha resource-manager folders search --query="name:vij*"
<table output showing the folders with names starting from vij eg. vijeta, vijay-folder>

gcloud alpha resource-manager folders search --query="state:DELETE_REQUESTED"
<table output showing folders for which delete has been requested>

Tutte le cartelle per le quali l'utente dispone dell'autorizzazione di visualizzazione possono essere mostrate utilizzando il comando gcloud folders search.

gcloud folders search
<table output showing all viewable folders>

Aggiorna

Le cartelle possono essere aggiornate con il comando gcloud resource-manager folders update. Al momento, è possibile aggiornare solo il campo display_name di una cartella.

gcloud resource-manager folders update \
  --display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Elimina

Le cartelle possono essere eliminate e annullate dall'eliminazione dalla riga di comando. Un utente deve disporre del ruolo Amministratore cartelle o Editor di cartelle per avere l'autorizzazione per eliminare una cartella. Puoi eliminare una cartella solo se è vuota.

gcloud resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>

gcloud resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Spostamento progetto

I progetti possono essere creati e spostati in cartelle utilizzando i comandi gcloud projects create e gcloud projects move esistenti. Le cartelle possono essere spostate anche utilizzando gcloud resource-manager folders move.

gcloud projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
  type: "folder"
  id: 245321
other fields …

gcloud projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
  type: "folder"
  id: 245321
other fields …

Operazioni a lunga esecuzione

Alcune operazioni sulle cartelle, come la creazione di cartelle, possono richiedere molto tempo. Per semplificare il multitasking, alcuni comandi della cartella ti consentono di eseguirli in modo asincrono. Questi comandi accettano un flag --async per attivare il comportamento asincrono, in modo da restituire immediatamente un'operazione a lunga esecuzione anziché attendere il completamento dell'operazione. Puoi eseguire il polling di questa operazione autonomamente con il comando gcloud beta resource-manager operations describe. Al momento, solo i comandi folders create e folders move consentono l'utilizzo asincrono.

gcloud resource-manager folders create \
  --display-name="Awe-Inspiring Async Folder" \
  --organization=2518 \
  --async

name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: false

[wait for some time …]

gcloud beta resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: true
response:
  name: folders/6428
  parent: organizations/2518
  display_name: Awe-Inspiring Async Folder
  lifecycle_state: ACTIVE
  create_time: <recent timestamp info …>
  update_time: <recent timestamp info …>