En esta página, se describe cómo crear Google Cloud carpetas para agrupar y organizar proyectos en una jerarquía de recursos. Puedes usar carpetas para delegar tareas administrativas, aplicar políticas de la organización específicas del entorno y optimizar la administración de costos en todos tus departamentos.
Las carpetas son nodos en la jerarquía de recursos de Cloud Platform. Una carpeta puede contener proyectos, otras carpetas o una combinación de ambos. Los recursos de la organización pueden usar carpetas para agrupar proyectos en el nodo de recursos de la organización en una jerarquía. Por ejemplo, tu recurso de la organización puede contener varios departamentos, cada uno con su propio conjunto de Google Cloud recursos. Las carpetas te permiten agrupar estos recursos por departamento. Estas carpetas se usan para agrupar los recursos que comparten políticas comunes de permiso o denegación. Si bien una carpeta puede contener varias carpetas o recursos, una carpeta o un recurso determinado puede tener exactamente un superior.
En el siguiente diagrama, el recurso de la organización, “Empresa” (Company), tiene carpetas que representan dos departamentos, “Departamento X” (Dept X) y “Departamento Y” (Dept Y), y una carpeta, “Infraestructura compartida” (Shared Infrastructure), para los elementos que pueden ser comunes a ambos departamentos. En el “Departamento Y” (Dept Y), se organizaron en dos equipos y, dentro de las carpetas de los equipos, se organizaron por productos. La carpeta del “Producto 1” (Product 1) contiene, además, tres proyectos, cada uno con los recursos necesarios para el proyecto. Esto les proporciona un alto grado de flexibilidad en la asignación de políticas de permiso, denegación o de la organización en el nivel de detalle correcto.
Puedes usar las políticas de permiso y denegación a nivel de la carpeta para controlar el acceso a los recursos que esta contiene. Por ejemplo, si a un usuario se le otorga la función Administrador de instancias de Compute en una carpeta, ese usuario tiene la función Administrador de instancias de Compute para todos los proyectos de la carpeta.
Antes de comenzar
La funcionalidad de la carpeta solo está disponible para los clientes Google Workspace y Cloud Identity que tengan un recurso de la organización. Para obtener más información sobre la adquisición de recursos de una organización, consulta Obtén un recurso de la organización.
Si exploras cómo usar mejor las carpetas, te recomendamos que sigas estos pasos:
- Revisa el control de acceso de las carpetas que usan IAM. El tema describe cómo puedes controlar quién tiene acceso a las carpetas y los recursos que contienen.
- Obtén información sobre cómo configurar permisos de carpeta. Las carpetas admiten varias funciones de Identity and Access Management (IAM). Si deseas configurar en líneas generales los permisos para que los usuarios puedan ver la estructura de sus proyectos, otorga a todo el dominio las funciones de Visualizador de la organización y Visualizador de carpetas a nivel del recurso de la organización. Para restringir la visibilidad de las ramas de la jerarquía de carpetas, otorga la función Visualizador de carpetas en la carpeta o carpetas que deseas que vean los usuarios.
- Crea carpetas. A medida que planificas cómo organizar tus recursos de Cloud, te recomendamos que comiences con una sola carpeta como zona de pruebas en la que experimentes qué jerarquía es más adecuada para tu recurso de la organización. Piensa en las carpetas en términos de los límites de aislamiento entre los recursos y los puntos de vinculación de las políticas de acceso y configuración. Puedes optar por crear carpetas que contengan los recursos que pertenecen a distintos departamentos y asignar las funciones de administrador en las carpetas para delegar privilegios de administrador. Las carpetas también se pueden usar para agrupar recursos que pertenezcan a aplicaciones o entornos diferentes, como el desarrollo, la producción o la prueba. Usa carpetas anidadas para modelar estos diferentes casos.
Un caso común es crear carpetas que, a su vez, contengan carpetas o proyectos adicionales, como se muestra en la jerarquía de recursos anterior. Esta estructura se denomina jerarquía de carpetas. Cuando creas una jerarquía de carpetas, ten en cuenta lo siguiente:
- Puedes anidar carpetas de hasta 10 (diez) niveles de profundidad.
- Una carpeta superior no puede contener más de 300 carpetas. Esto se refiere solo a carpetas secundarias directas. Esas carpetas secundarias pueden, a su vez, contener carpetas o proyectos adicionales.
- Los nombres de visualización de la carpeta deben ser únicos dentro del mismo nivel de la jerarquía.
Configura permisos para administrar carpetas
Para acceder a las carpetas y administrarlas, debes asignarles funciones de IAM específicas de las carpetas a grupos de usuarios específicos. Para obtener más información sobre estas funciones, consulta el control de acceso a las carpetas que usan IAM. También te recomendamos que revises nuestras prácticas recomendadas a fin de ayudarte a identificar la configuración óptima para los permisos de tu carpeta.
Si quieres administrar carpetas para todo tu recurso de la organización, necesitas la función Administrador de carpetas. Esta función le otorga al usuario permiso para crear, editar, borrar, mover y cambiar los permisos de IAM en las carpetas, y también mover proyectos entre las carpetas.
En un principio, solo el administrador de la organización puede asignar la función Administrador de carpetas en el recurso de la organización. Las cuentas posteriores a las que se les asigna esta función pueden otorgarla a otras cuentas.
Para configurar los permisos de la carpeta, sigue estos pasos:
Console
- En la Google Cloud consola, abre la página Administrar recursos.
- Si el panel de información no está abierto, haz clic en Mostrar panel de información.
- En la tabla Recursos, expande la organización que contiene la carpeta.
- En la lista de recursos de la organización, selecciona la carpeta que deseas administrar.
- En el panel de información, haz clic en Agregar principal.
- En el campo Agregar principales, ingresa la dirección de correo electrónico a la que deseas otorgar permisos.
- En el menú Seleccionar una función , selecciona la categoría Administrador de recursos y, luego, la función que deseas otorgar, como Administrador de carpetas.
- Haz clic en Guardar para otorgar la función nueva.
gcloud
Para otorgar la función Administrador de carpetas a un principal con Google Cloud CLI, ejecuta el siguiente comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:USER_ID \
--role=roles/resourcemanager.folderAdmin
REST
El JSON de la solicitud luce así:
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 solicitud curl luce así:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy
Reemplaza ORGANIZATION_NAME por el nombre de la organización cuya política de permiso se está configurando, por ejemplo, organizations/123.
Crea carpetas
Para crear carpetas, debes tener la función Administrador de carpetas o Creador de carpetas a nivel del superior. Por ejemplo, para crear carpetas a nivel de la organización, debes tener una de estas funciones a nivel de la organización.
Como parte de la creación de una carpeta, debes asignarle un nombre. Los nombres de las carpetas deben cumplir los siguientes requisitos:
- El nombre puede contener letras, dígitos, espacios, guiones y guiones bajos.
- El nombre visible de la carpeta debe comenzar y terminar con una letra o un dígito.
- El nombre debe tener entre 3 y 30 caracteres.
- El nombre debe ser distinto al de todas las demás carpetas que comparten el superior.
Para crear una carpeta, sigue estos pasos:
Console
Las carpetas se pueden crear en la IU a través de la sección “Administra proyectos y carpetas”.
Ve a la página Administrar recursos en la Google Cloud consola:
Asegúrate de que el nombre de tu recurso de la organización esté seleccionado en la lista desplegable de organizaciones que se encuentra en la parte superior de la página.
Haz clic en Crear carpeta y selecciona una de las siguientes opciones:
- Carpeta estándar: Un recurso de carpeta estándar .
- Carpeta compatible: Una carpeta de Assured Workloads, que proporciona controles reglamentarios, regionales o de soberanía adicionales para los Google Cloud recursos. Si seleccionas esta opción, accederás a Assured Workloads para crear una carpeta.
En el cuadro Nombre de la carpeta, ingresa el nombre de la carpeta nueva.
En Destino, haz clic en Explorar y, luego, selecciona el recurso o la carpeta de la organización en la que deseas crear tu nueva carpeta.
- Haz clic en Crear.
gcloud
Las carpetas se pueden crear de forma programática con Google Cloud CLI.
Para crear una carpeta en el recurso de la organización con la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando.
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID
Para crear una carpeta cuya carpeta superior sea otra, sigue estos pasos:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--folder=FOLDER_ID
Reemplaza lo siguiente:
- DISPLAY_NAME: el nombre visible de la carpeta. Dos carpetas con la misma carpeta superior no pueden compartir un nombre visible. El nombre visible debe comenzar y terminar con una letra o un dígito, puede contener letras, dígitos, espacios, guiones y guiones bajos, y no puede tener más de 30 caracteres.
- ORGANIZATION_ID: el ID del recurso de la organización superior, si el superior es un recurso de la organización.
- FOLDER_ID: el ID de la carpeta superior, si el superior es una carpeta.
API
Se pueden crear carpetas con una solicitud a la API.
El JSON de la solicitud luce así:
request_json= '{
display_name: DISPLAY_NAME,
parent: ORGANIZATION_NAME
}'
La solicitud de curl para crear carpetas luce así:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders
Aquí:
- DISPLAY_NAME: el nombre visible de la carpeta nueva, por ejemplo “Mi carpeta increíble”.
- ORGANIZATION_NAME: el nombre del recurso de la organización en la cual
creas la carpeta, por ejemplo,
organizations/123.
La respuesta para crear carpetas luce así:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
}
}
La solicitud de curl para obtener operaciones luce así:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789
La respuesta para obtener operaciones luce así:
{
"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"
}
}
Agrega etiquetas durante la creación de carpetas
Las etiquetas proporcionan una forma de crear anotaciones para los recursos. Puedes agregar etiquetas cuando creas carpetas. Para ello, debes otorgar la función Usuario de etiquetas. Para obtener más información sobre los permisos que contiene en esta función, consulta Crea y administra etiquetas. Solo puedes agregar el espacio de nombres para los pares clave-valor de la etiqueta de una de las siguientes maneras:
gcloud
Para agregar etiquetas durante la creación de carpetas, ejecuta el siguiente comando:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID\
--tags=KEY_VALUE_PAIRS
Reemplaza lo siguiente:
DISPLAY_NAME: el nombre visible de la carpeta.ORGANIZATION_ID: el identificador único del recurso de la organización superior.KEY_VALUE_PAIRS: una lista separada por comas de pares clave-valor que puedes asignar a tu recurso. Un ejemplo de pares clave-valor separados por comas es123/environment=production, 456/create=testresource.
REST
El siguiente fragmento es una solicitud JSON que crea una carpeta y le agrega etiquetas.
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"
}
}
Configura el acceso a las carpetas
Para configurar el acceso a las carpetas, debes tener la función Administrador de carpetas de IAM o Administrador de carpetas a nivel del superior.
Console
En la Google Cloud consola, abre la página Administrar recursos.
Haz clic en la lista desplegable Organización en la esquina superior izquierda y, luego, selecciona tu recurso de la organización.
Selecciona la casilla de verificación junto al proyecto en el que deseas cambiar los permisos.
En Permisos, dentro del Panel de información ubicado a la derecha, ingresa las direcciones de correo electrónico de los miembros que deseas agregar.
En la lista desplegable Seleccionar una función, selecciona la función que deseas otorgar a esos miembros.
Haz clic en Agregar. Aparecerá una notificación para que confirmes la adición o actualización de la función nueva de los miembros.
gcloud
Puedes configurar el acceso a las carpetas de forma programática con Google Cloud CLI o la API de 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
O, como alternativa:
gcloud resource-manager folders \
set-iam-policy FOLDER_ID POLICY_FILE
Reemplaza lo siguiente:
- FOLDER_ID: el ID de la carpeta nueva
- POLICY_FILE: la ruta de acceso a un archivo de políticas para la carpeta
API
El método setIamPolicy establece la política de control de acceso en una carpeta,
y reemplaza cualquier política existente. El campo resource debe ser el nombre del recurso de la carpeta, por ejemplo, folders/1234.
request_json= '{
policy: {
version: "1",
bindings: [
{
role: "roles/resourcemanager.folderEditor",
members: [
"user:email1@example.com",
"user:email2@example.com",
]
}
]
}
}'
La solicitud curl luce así:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID:setIamPolicy
Reemplaza FOLDER_ID por el nombre de la carpeta cuya política de IAM se está configurando, por ejemplo, folders/123.
Controla las operaciones de larga duración
Algunas operaciones de carpetas, como la creación o la migración, se procesan de forma asíncrona
porque Google Cloud requieren propagación global. Para evitar bloquear tu terminal o secuencias de comandos de automatización, puedes usar la marca --async.
Cuando se usa esta marca, el comando muestra un objeto de operación de larga duración (LRO) de inmediato. Luego, puedes usar el operation_id para sondear la finalización cuando te convenga. La marca --async solo es compatible con los comandos folders create y folders move.
Para usar la marca, sigue estos pasos:
Inicia una tarea asíncrona. Consulta el siguiente comando de muestra:
gcloud resource-manager folders create \ --display-name="Test Async Folder" \ --organization=2518 \ --asyncEl resultado proporciona un nombre de operación (p.ej., fc.8572) y muestra
done: false.Respuesta de muestra:
name: operations/fc.8572 metadata: operation_type: CREATE display_name: Awe-Inspiring Async Folder destination_parent: organizations/2518 done: falseVerifica el estado de la operación. Para verificar si la tarea finalizó, usa el comando
operations describecon el ID proporcionado en el paso anterior.gcloud beta resource-manager operations describe fc.8572Una vez que
donesea verdadero, el bloque de respuesta contendrá los detalles completos del recurso recién creado.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'
¿Qué sigue?
- Obtén información para ver y actualizar carpetas.
- Obtén información para administrar proyectos dentro de carpetas.
- Obtén información sobre las funciones y los permisos de las carpetas.
- Obtén información para enumerar todas las carpetas y los proyectos en tu jerarquía de recursos.