Nesta página, descrevemos como criar pastas Google Cloud para agrupar e organizar projetos em uma hierarquia de recursos. É possível usar pastas para delegar tarefas administrativas, aplicar políticas da organização específicas do ambiente e simplificar o gerenciamento de custos em todos os departamentos.
As pastas são nodes no Cloud Platform Resource Hierarchy. Uma pasta pode conter projetos, outras pastas ou uma combinação de ambos. Os recursos da organização podem usar pastas para agrupar projetos no nó de recurso da organização em uma hierarquia. Por exemplo, o recurso da organização pode ter vários departamentos, cada um com seu próprio conjunto de recursos de Google Cloud . Com as pastas, você pode agrupar esses recursos por departamento ou agrupar recursos que compartilham políticas comuns de permissão ou negação. Cada pasta pode conter várias pastas ou recursos. No entanto, uma determinada pasta ou recurso pode ter somente um pai.
No diagrama a seguir, o recurso de 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 permissão, negação ou políticas da organização no nível de granularidade ideal.
É possível usar políticas de permissão e de negação no nível da pasta para controlar o acesso aos recursos que ela contém. Por exemplo, se um usuário receber o papel Administrador da instância do Compute em uma pasta, ele terá o papel Administrador da instância do Compute em todos os projetos da pasta.
Antes de começar
A funcionalidade de pasta está disponível apenas para clientes do Google Workspace e do Cloud Identity que tenham um recurso de organização. Para mais informações sobre como adquirir um recurso de organização, consulte Como conseguir um recurso de organização.
Se você estiver explorando a melhor maneira de usar as pastas, recomendamos que você:
- 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.
- Saiba como definir permissões de pasta. As pastas são compatíveis com vários papéis do Identity and Access Management (IAM). Se você quiser configurar as permissões amplamente para que os usuários vejam a estrutura dos projetos, conceda os papéis de Leitor da organização e Visualizador de pastas a todo o domínio no nível do recurso 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.
- 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 o recurso da 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 hierarquia de recursos 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.
Configurar permissões para gerenciar pastas
Para acessar e gerenciar pastas, atribua papéis do 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.
Para gerenciar pastas em todo o recurso da 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 o recurso da organização. As contas subsequentes que tiverem esse papel poderão concedê-lo a outras contas.
Para configurar permissões de pasta, siga estas etapas:
Console
- No console Google Cloud , abra a página Gerenciar recursos.
- Se o painel de informações não estiver aberto, clique em Mostrar painel de informações.
- Na tabela Recursos, expanda a organização que contém a pasta.
- Na lista de recursos da organização, selecione a pasta que você quer gerenciar.
- No painel de informações, clique em Adicionar participante.
- No campo Adicionar principais, insira o endereço de e-mail a que você quer conceder permissões.
- No menu Selecionar um papel, escolha a categoria Resource Manager e selecione o papel que você quer conceder, como Administrador de pastas.
- Clique em Salvar para atribuir o novo papel.
gcloud
Para conceder o papel de Administrador de pastas a um principal usando a Google Cloud CLI, execute o seguinte comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:USER_ID \
--role=roles/resourcemanager.folderAdmin
REST
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/v3/ORGANIZATION_NAME:setIamPolicy
Substitua ORGANIZATION_NAME pelo nome da organização cuja política de permissão está sendo
definida, por exemplo, organizations/123.
Criar pastas
Para criar pastas, você precisa ter o papel Administrador de pasta 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 entre 3 e 30 caracteres.
- O nome precisa ser distinto de todas as outras pastas que compartilhem o mesmo pai.
Para criar uma pasta, siga estas etapas:
Console
As pastas podem ser criadas na IU usando a seção "Gerenciar projetos e pastas".
Acesse a página Gerenciar recursos no console Google Cloud :
Verifique se o nome do recurso da sua organização está selecionado na lista suspensa de organizações na parte de cima da página.
Clique em Criar pasta e selecione uma das seguintes opções:
- Pasta padrão: um recurso de pasta padrão.
- Pasta em conformidade: uma pasta do Assured Workloads, que oferece controles regulatórios, regionais ou de soberania adicionais para recursos do Google Cloud . Ao selecionar essa opção, você vai para o Assured Workloads para criar uma pasta.
Na caixa Nome da pasta, insira o nome da nova pasta.
Em Destino, clique em Procurar e selecione o recurso ou a pasta da organização em que você quer criar a nova pasta.
- Clique em Criar.
gcloud
É possível criar pastas de maneira programática usando a Google Cloud CLI.
Para criar uma pasta no recurso organização usando a ferramenta de linha de comando gcloud, execute o seguinte comando:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID
Para criar uma pasta cujo pai é outra pasta:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--folder=FOLDER_ID
Substitua:
- 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 ID do recurso da organização pai, se o pai for um recurso de organização.
- FOLDER_ID: o ID 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,
parent: ORGANIZATION_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/v3/folders
Em que:
- DISPLAY_NAME: o nome de exibição da pasta nova. Por exemplo, "Minha pasta maravilhosa";
- ORGANIZATION_NAME: o nome do recurso da organização em que você está criando a pasta, por exemplo,
organizations/123.
A resposta Criar pasta:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
}
}
A solicitação curl Receber operação:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789
A resposta Receber operação:
{
"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"
}
}
Adicionar tags durante a criação de pastas
As tags fornecem uma maneira de criar anotações para recursos. É possível adicionar tags ao criar pastas. Para isso, conceda o papel de Usuário de tags. Para mais informações sobre as permissões contidas neste papel, consulte Criar e gerenciar tags. Só é possível adicionar o namespace para os pares de chave-valor da tag de uma das seguintes maneiras:
gcloud
Para adicionar tags durante a criação da pasta, execute o seguinte comando:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID\
--tags=KEY_VALUE_PAIRS
Substitua:
DISPLAY_NAME: o nome de exibição da pasta.ORGANIZATION_ID: o identificador exclusivo do recurso da organização principal.KEY_VALUE_PAIRS: uma lista separada por vírgulas de pares de chave-valor que podem ser atribuídos ao seu recurso. Um exemplo de pares de chave-valor separados por vírgula é123/environment=production, 456/create=testresource.
REST
O snippet a seguir é uma solicitação JSON que cria uma pasta e adiciona tags a ela.
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"
}
}
Configurar o acesso às pastas
Para configurar o acesso às pastas, você precisa ter o papel Administrador de pastas do IAM ou Administrador de pasta no nível pai.
Console
No console Google Cloud , abra a página Gerenciar recursos.
Clique na lista suspensa Organização na parte superior esquerda e selecione o recurso da sua organização.
Marque a caixa de seleção ao lado do projeto em que você quer mudar as permissões.
No Painel de informações ao lado direito, em Permissões, insira os endereços de e-mail dos membros que você quer adicionar.
Na lista suspensa Selecionar papel, escolha o papel que você quer conceder a esses membros.
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 às pastas de modo programático usando a Google Cloud CLI ou a API REST.
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
Como alternativa:
gcloud resource-manager folders \
set-iam-policy FOLDER_ID POLICY_FILE
Substitua:
- FOLDER_ID: o ID da nova pasta.
- POLICY_FILE: o caminho para um arquivo de política da pasta
API
O método setIamPolicy 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/v3/FOLDER_ID:setIamPolicy
Substitua FOLDER_ID pelo nome da pasta com a política do IAM que está sendo definida. Por exemplo, folders/123.
Processar operações de longa duração
Algumas operações de pasta, como criação ou migração, são processadas de forma assíncrona
pelo Google Cloud porque exigem propagação global. Para evitar o bloqueio do seu terminal ou scripts de automação, use a flag --async.
Quando essa flag é usada, o comando retorna um objeto operação de longa duração (LRO) imediatamente. Em seguida, use o operation_id para pesquisar a conclusão quando for mais conveniente. A flag --async é compatível apenas com os comandos folders create e folders move.
Para usar a flag, siga estas etapas:
Inicia uma tarefa assíncrona. Consulte o seguinte comando de exemplo:
gcloud resource-manager folders create \ --display-name="Test Async Folder" \ --organization=2518 \ --asyncA saída fornece um nome de operação (por exemplo, fc.8572) e mostra
done: false.Exemplo de resposta:
name: operations/fc.8572 metadata: operation_type: CREATE display_name: Awe-Inspiring Async Folder destination_parent: organizations/2518 done: falseVerifique o status da operação. Para verificar se a tarefa foi concluída, use o comando
operations describecom o ID fornecido na etapa anterior.gcloud beta resource-manager operations describe fc.8572Quando
donefor "true", o bloco de resposta vai conter todos os detalhes do recurso recém-criado.name: operations/fc.8572 done: true response: name: folders/6428 display_name: Awe-Inspiring Async Folder lifecycle_state: ACTIVE create_time: '2024-03-20T10:00:00Z'
A seguir
- Saiba como ver e atualizar pastas.
- Saiba como gerenciar projetos em pastas.
- Saiba mais sobre papéis e permissões para pastas.
- Saiba como listar todas as pastas e projetos na hierarquia de recursos.