Como criar e gerenciar pastas

As pastas são nós na Hierarquia de recursos do Cloud Platform. Uma pasta pode conter projetos, outras pastas ou uma combinação de ambos. As organizações podem usar pastas para agrupar projetos no nó da organização em uma hierarquia. Por exemplo, sua organização pode conter vários departamentos, cada um com seu próprio conjunto de recursos do Google Cloud. Com as pastas, você pode agrupar esses recursos por departamento ou agrupar recursos que compartilham políticas comuns do IAM. Cada pasta pode conter várias pastas ou recursos. No entanto, uma determinada pasta ou recurso pode ter somente um pai.

No diagrama abaixo, a organização "Company" tem pastas que representam dois departamentos, "Dept X" e "Dept Y", e uma pasta "Shared Infrastructure" para itens que podem ser comuns a ambos os departamentos. Em "Dept Y", eles se organizam em duas equipes e, dentro das pastas de equipe, eles organizam por produtos. A pasta para o "Product 1" contém três projetos, cada um com os recursos necessários para o projeto. Isso oferece uma grande flexibilidade na atribuição de políticas de IAM às políticas da Organização no nível de granularidade ideal.

Exemplo de hierarquia de pastas

Você pode usar políticas de IAM de nível de pasta para controlar o acesso aos recursos que a pasta contém. Por exemplo, se um usuário receber o papel Administrador da instância do Compute em uma pasta, esse usuário terá o papel Administrador da instância do Compute em todos os projetos na pasta.

Antes de começar

A funcionalidade de pasta está disponível apenas para clientes do G Suite e do Cloud Identity que tenham um recurso de organização. Para mais informações sobre como adquirir um recurso Organização, consulte Como criar e gerenciar organizações.

Se você estiver procurando a melhor maneira de usar as pastas, siga estas recomendações:

  1. Leia o tópico Controle de acesso para pastas usando o IAM. Ele descreve como controlar quem tem acesso às pastas e aos recursos que elas contêm.
  2. Saiba como definir permissões de pasta. As pastas são compatíveis com vários papéis de IAM diferentes. Se você quiser configurar as permissões amplamente para que os usuários vejam a estrutura dos projetos, será necessário conceder os papéis de Visualizador da organização e Visualizador de pastas a todo o domínio no nível da organização. Conceda o papel Visualizador de pastas nas pastas que quiser que os usuários vejam. Dessa forma, a visibilidade é restrita a partes da hierarquia da pasta.
  3. Crie pastas. Ao planejar a organização dos recursos no Cloud, recomendamos que você comece com uma única pasta, como um sandbox. Assim, é possível decidir qual é a melhor hierarquia para a organização. Imagine que as pastas são como limites de isolamento entre os recursos e pontos de conexão para políticas de acesso e configuração. Para delegar esse privilégio, é possível criar pastas para recursos de diferentes departamentos e atribuir papéis de Administrador em pastas. As pastas também podem ser usadas para agrupar recursos que pertencem a aplicativos ou ambientes diferentes, como desenvolvimento, produção e teste. Use pastas aninhadas para modelar esses cenários diferentes.

Uma situação comum é criar pastas que, por sua vez, contêm outros projetos ou pastas, conforme mostrado na imagem acima. Essa estrutura é conhecida como hierarquia de pastas. Ao criar esse tipo de hierarquia, lembre-se do seguinte:

  • Você pode aninhar pastas em até 10 (dez) níveis de profundidade.
  • Uma pasta pai não pode conter mais do que 300 pastas. Isso se refere somente a pastas filho diretas. Essas pastas filho podem, por sua vez, conter outros projetos ou pastas.
  • Os nomes de exibição das pastas precisam ser exclusivos dentro do mesmo nível da hierarquia.

Como definir permissões para gerenciar pastas

Para acessar e gerenciar pastas, é preciso atribuir os papéis de IAM específicos da pasta a grupos específicos de usuários. Para saber mais sobre esses papéis, consulte Controle de acesso para pastas que usam o IAM. Também recomendamos que você leia nossas práticas recomendadas para ajudar a identificar a melhor configuração para suas permissões de pasta.

Dica: para gerenciar pastas em toda a organização, é preciso ter o papel Administrador de pastas. Ele dá autorização ao usuário para criar, editar, excluir, mover e alterar permissões de IAM em pastas, bem como para mover projetos entre elas.

Inicialmente, somente o Administrador da organização pode atribuir o papel Administrador de pastas para a Organização. As contas subsequentes que tiverem esse papel poderão concedê-lo a outras contas.

Para configurar permissões de pasta:

console

  1. No Console do Google Cloud, abra a página Gerenciar recursos.

    Abrir a página "Gerenciar recursos"

  2. Clique na lista suspensa Organização, na parte superior esquerda, e selecione a organização na lista de recursos.

  3. Insira seu endereço de e-mail na caixa de texto Adicionar membros, à direita.

  4. Na caixa da lista suspensa Selecionar um papel, vá até a categoria Resource Manager e selecione o papel Administrador de pastas.

  5. Clique em Adicionar para atribuir o novo papel.

gcloud

É possível criar pastas de maneira programática usando a ferramenta de linha de comando gcloud. Para isso, execute o seguinte comando:

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

API

A solicitação JSON:

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", ] } , ] } }'

A solicitação curl:

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

Em que:

  • [ORGANIZATION_NAME] é o nome da organização cuja política de IAM está sendo definida. Por exemplo, organizations/123.

Como criar pastas

Para criar pastas, você precisa ter o papel Administrador de pastas ou Criador de pastas no nível pai. Por exemplo, para criar pastas no nível da Organização, você precisa ter um desses papéis nesse nível.

Como parte da criação de uma pasta, você precisa atribuir um nome a ela. Os nomes de pasta precisam atender aos seguintes requisitos:

  • O nome pode conter letras, dígitos, espaços, hifens e sublinhados.
  • O nome de exibição da pasta precisa começar e terminar com uma letra ou um dígito.
  • O nome precisa ter 30 caracteres ou menos.
  • O nome precisa ser distinto de todas as outras pastas que compartilhem o mesmo pai.

Para criar uma pasta:

Console

As pastas podem ser criadas na IU usando a seção "Gerenciar projetos e pastas".

  1. Acesse a página Gerenciar recursos no Console do Cloud:

    Abrir a página "Gerenciar recursos"

  2. Verifique se o nome da sua organização está selecionado na lista suspensa da organização no topo página.

  3. Clique em Criar pasta.

  4. Na caixa Nome da pasta, insira o nome da nova pasta.

  5. Em Destino, clique em Procurar e selecione o nó ou a pasta da organização em que você quer criar a nova pasta.

    1. Clique em Criar.

gcloud

É possível criar pastas de maneira programática usando a ferramenta de linha de comando gcloud.

Para criar uma pasta no recurso Organização usando a ferramenta de linha de comando gcloud, execute o seguinte comando:

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

Para criar uma pasta cujo pai é outra pasta:

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

Em que:

  • [DISPLAY_NAME] é o nome de exibição da pasta. Pastas com o mesmo pai não podem ter o mesmo nome de exibição. O nome de exibição precisa começar e terminar com uma letra ou um dígito, pode conter letras, dígitos, espaços, hifens e sublinhados e não pode ter mais de 30 caracteres;
  • [ORGANIZATION_ID] é o código da organização pai, se o pai for uma organização;
  • [FOLDER_ID] é o código da pasta pai, se o pai for uma pasta.

API

É possível criar pastas com uma solicitação de API.

A solicitação JSON:

request_json= '{
  display_name: "[DISPLAY_NAME]"
}'

A solicitação curl Criar pasta:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders?parent=[ORGANIZATION_NAME]

Em que:

  • [DISPLAY_NAME] é o nome de exibição da pasta nova. Por exemplo, "Minha pasta maravilhosa";
  • [ORGANIZATION_NAME] é o nome da organização em que a pasta é criada, por exemplo, organizations/123.

A resposta Criar pasta:

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

A solicitação curl Receber operação:

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

A resposta Receber operação:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.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"
  }
}

Como configurar o acesso às pastas

Para configurar o acesso às pastas, você precisa ter o papel Administrador de IAM de pastas ou Administrador de pastas no nível pai.

Console

  1. No Console do Google Cloud, abra a página Gerenciar recursos.

    Abrir a página "Gerenciar recursos"

  2. Clique na lista suspensa Organização na parte superior esquerda e selecione a organização.

  3. Marque a caixa de seleção ao lado do projeto em que você quer alterar as permissões.

  4. No Painel de informações ao lado direito, em Permissões, insira os endereços de e-mail dos membros que você quer adicionar.

  5. Na lista suspensa Selecionar papel, escolha o papel que você quer conceder a esses membros.

  6. Clique em Adicionar. Uma notificação será exibida para confirmar a adição ou atualização do novo papel dos membros.

gcloud

É possível configurar o acesso a pastas de maneira programática usando a ferramenta de linha de comando gcloud ou a API.

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

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

Como alternativa:

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

Em que:

  • [FOLDER_ID] é o código da nova pasta.
  • [POLICY_FILE] é o caminho para um arquivo de política para a pasta.

API

SetsIamPolicy define a política de controle de acesso em uma pasta, substituindo qualquer política atual. O campo resource precisa ser o nome do recurso da pasta. Por exemplo, folders/1234.

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

A solicitação curl:

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

Em que:

  • [FOLDER_NAME] é o nome da pasta com a política do IAM que está sendo definida. Por exemplo, folders/123.

Como criar um projeto em uma pasta

Para criar um projeto em uma pasta, é preciso ter o papel Criador de projetos (roles/resourcemanager.projectCreator) na pasta. Esse papel pode ser herdado de uma pasta pai.

console

  1. No Console do Google Cloud, abra a página "Gerenciar projetos e pastas".

    Abrir o Console do Google Cloud

  2. Acesse a página "Gerenciar projetos e pastas".
  3. Selecione a organização na lista suspensa Organização, na parte superior esquerda da página.
  4. Clique em Criar projeto.
  5. Digite o Nome do projeto.
  6. Na caixa Destino, clique em Procurar para selecionar a pasta na qual você quer criar o projeto.

  7. Clique em Criar.

gcloud

   gcloud projects create [PROJECT_ID]
      --folder [FOLDER_ID]

Em que:

  • [PROJECT_ID] é o código do projeto a ser criado;
  • [FOLDER_ID] é o código da pasta em que o projeto precisa ser criado.

API

A solicitação JSON:

   request_json= ‘{
      name: “[DISPLAY_NAME]”, projectId: “[PROJECT_ID]”, parent: {id: [PARENT_ID], type: [PARENT_TYPE] }
   }’

A solicitação curl:

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

Em que:

  • [PROJECT_ID] é o código do projeto que está sendo criado, por exemplo, my-awesome-proj-123.
  • [DISPLAY_NAME] é o nome de exibição do projeto que está sendo criado.
  • [PARENT_ID] é o código do pai em que ele está sendo criado, por exemplo, 123.
  • [PARENT_TYPE] é o tipo de pai, como "pasta" ou "Organização".

Como mover um projeto para uma pasta

Você precisa considerar cuidadosamente possíveis implicações de política antes de mover um projeto para ou de uma pasta, já que as políticas de IAM definidas no nível do projeto são movidas automaticamente com ele, mas as definidas no nível pai de origem ou destino não.

Isso significa que qualquer usuário que tenha herdado o acesso ao projeto poderá perder esse acesso se a pasta de destino não tiver a mesma política. Além disso, com alterações nos papéis de IAM, algumas funcionalidades podem não funcionar até que as permissões apropriadas sejam restabelecidas.

Por exemplo, considere que uma conta de serviço tenha a permissão Criador de objeto de armazenamento associada na Pasta A. Essa pasta tem as permissões apropriadas para fazer upload de dados para o Google Cloud Storage em qualquer projeto na Pasta A. Agora, considere o que acontece quando um desses projetos é movido para a Pasta B, que não tem as mesmas permissões. A conta de serviço desse projeto perde a capacidade de upload de dados, resultando em uma interrupção do serviço.

Essas mesmas considerações se aplicam se as políticas da Organização estiverem definidas nas pastas de origem e de destino. Assim como as políticas de IAM, as da Organização são herdadas. Portanto, você precisa garantir que as políticas da organização sejam consistentes entre as pastas de origem e de destino.

Para saber mais sobre políticas da organização, consulte Introdução ao serviço Política da organização.

Para mover um projeto para uma pasta, você precisa de papéis específicos de IAM no projeto e nas pastas de origem e de destino. Especificamente, você precisa atender aos seguintes critérios:

  1. Ter a permissão resourcemanager.projects.update no projeto, que normalmente acompanha os papéis Editor do projeto ou Proprietário do projeto.

  2. Ter a permissão resourcemanager.projects.move nas pastas de origem e de destino. Essa permissão geralmente faz parte dos papéis Proprietário do projeto, Editor do projeto, Administrador da pasta ou Movimentador de pastas. Se o recurso não estiver em uma pasta, você precisará dessa permissão no nó da organização.

Para mover um projeto para a pasta:

console

  1. No Console do Google Cloud, abra a página "Gerenciar projetos e pastas".

    Abrir o Console do Google Cloud

  2. Selecione a organização na lista suspensa Organização, na parte superior esquerda da página.
  3. Clique na linha do projeto para selecioná-lo na lista de projetos e pastas. Não clique no nome do projeto, porque isso leva você até a página do IAM do projeto.
  4. Clique no menu de opções (as reticências verticais) da linha e clique em Mover.

  5. Clique em Procurar para selecionar a pasta para que você quer mover o projeto.

  6. Clique em Mover.

gcloud

gcloud beta projects move PROJECT_ID --folder FOLDER_ID

Em que:

  • [PROJECT_ID] é o código do projeto a ser movido;
  • [FOLDER_ID] é o código numérico da pasta a ser movida.

Como mover uma pasta para outra

Para mover uma pasta para outra, é necessário ter a permissão resourcemanager.folders.move para as pastas de origem e de destino.

Console

O processo de transferência de uma pasta para outra no console é semelhante ao de transferência de projetos.

  1. No Console do Google Cloud, abra a página "Gerenciar projetos e pastas".

    Abrir o Console do Google Cloud

  2. Selecione a organização na lista suspensa Organização, na parte superior esquerda da página.
  3. Clique na linha da pasta para selecioná-la na lista de projetos e pastas.
  4. Clique no menu de opções (as reticências verticais) da linha e clique em Mover.
  5. Clique em Procurar para selecionar a pasta para que você quer mover a pasta.
  6. Clique em Mover.

gcloud

Para mover uma pasta do recurso Organização, execute o seguinte comando na ferramenta de linha de comando gcloud:

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

Para mover uma pasta para outra pasta:

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

Em que:

  • [FOLDER_ID] é o código da pasta a ser movida;
  • [PARENT_ID] é o código da organização ou da pasta pai.

API

A solicitação JSON:

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

A solicitação curl Mover pasta:

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

Em que:

  • [DESTINATION_FOLDER_ID] é o código da pasta para onde você está movendo outra pasta. Por exemplo, 98765;
  • [DISPLAY_NAME] é o nome de exibição da pasta que está sendo movida. Por exemplo, "Minha pasta maravilhosa".

A resposta Mover pasta:

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

A solicitação curl Receber operação:

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

A resposta Receber operação:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.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"
  }
}

Como visualizar ou listar pastas e projetos

Para visualizar ou listar pastas, você precisa ter os papéis de Leitor da organização e Leitor de pastas.

Para visualizar ou listar pastas e projetos:

console

  1. No Console do Google Cloud, abra a página "Gerenciar projetos e pastas".

    Acessar a página "Gerenciar projetos e pastas"

  2. Selecione a organização na lista suspensa Organização, na parte superior esquerda da página. Todos os projetos e pastas na organização são exibidos na página. As pastas precisam ser criadas antes de aparecerem nessa lista.
  3. Selecione qualquer linha na árvore para realizar operações específicas de pasta ou de projeto.

  4. Digite o nome da pasta/código ou do projeto na pesquisa para filtrar a lista.

gcloud

Para visualizar uma pasta, use o comando describe.

   gcloud resource-manager folders describe [FOLDER_ID]

   name: folders/245321 \
   parent: organizations/2518 \
   display_name: Super Fantastic Folder \
   lifecycle_state: ACTIVE \
   create_time: <timestamp info …> \
   update_time: <timestamp info …> \

Em que:

  • [FOLDER_ID] é o código da pasta que você quer visualizar.

    Para listar as pastas em uma organização, use o comando list.

    gcloud resource-manager folders list
    --organization [ORGANIZATION_ID]

    Em que:

  • [ORGANIZATION_ID] é o código da organização que contém as pastas filhas que você quer listar.

    O comando gera uma tabela que exibe as pastas filho do código da organização especificado.

    O comando list também pode listar as pastas sob outra pasta, usando a sinalização --folder.

    gcloud resource-manager folders list
    --folder [FOLDER_ID]

    Em que:

  • [FOLDER_ID] é o código da pasta que contém as pastas filho que você quer listar.

    Para listar os projetos sob uma organização ou pasta, use o comando projects list e o argumento filter.

    gcloud projects list
    --filter=" parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    Em que:

  • [FOLDER_OR_ORGANIZATION_ID] é o código da pasta ou da organização que contém os projetos filhos que você quer listar.

API

A solicitação curl para receber pastas:

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

Em que:

  • [FOLDER_NAME] é o nome da pasta. Por exemplo, folders/123.

A solicitação curl para listar pastas:

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

Em que:

  • [PARENT_NAME] é o nome do recurso pai em que você está criando a pasta, como organizations/123 ou folders/123.

Como usar a interface de linha de comando gcloud

Os comandos para interagir com a API Folders com a ferramenta de linha de comando gcloud estão disponíveis no grupo de comandos gcloud resource-manager folders.

Criar

Para criar uma nova pasta, use gcloud resource-manager folders create com sinalizações que definem o nome da pasta e o código da organização ou pasta em que você quer criá-la.

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

Created Folder 245321.

Visualizar

Para visualizar uma pasta, use gcloud resource-manager folders describe com o código da pasta que você quer visualizar.

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 …>

Listar

Para listar as pastas sob outra pasta, use gcloud resource-manager folders list, passando o código da pasta na sinalização --folder. O comando também serve para listar as pastas de nível superior em uma Organização, usando a sinalização --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>

É possível listar projetos usando o comando gcloud projects list, passando o código da pasta pai ou da organização na sinalização --filter.

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

Para mais informações sobre como as permissões e os filtros interagem com os comandos de lista, consulte Como listar todos os recursos em sua hierarquia.

Atualizar

As pastas podem ser atualizadas com o comando gcloud resource-manager folders update. Atualmente, apenas o campo display_name de uma pasta pode ser atualizado.

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 …>

Excluir

É possível excluir pastas e cancelar a exclusão delas a partir da linha de comando. Um usuário precisa ter o papel Administrador de pastas ou Editor de pastas para fazer isso. Você só pode excluir pastas vazias.

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 …>

Mover projeto

Os projetos podem ser criados em pastas e movidos para pastas usando os comandos existentes gcloud projects create e gcloud beta projects move. As pastas também podem ser movidas usando 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 beta 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 …

Operações de longa duração

Algumas operações, como a criação de pastas, podem demorar muito tempo. Para facilitar a realização simultânea de várias tarefas, alguns comandos de pasta permitem que você os execute de maneira assíncrona. Esses comandos aceitam uma sinalização --async para ativar o comportamento assíncrono. Assim, eles retornam uma operação de longa duração imediatamente, em vez de esperar que a operação seja concluída. É possível pesquisar essa operação com o comando gcloud alpha resource-manager operations describe. Atualmente, apenas os comandos folders create e folders move permitem o uso assíncrono.

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 alpha 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 …>