Crea y administra carpetas

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. Las organizaciones pueden usar carpetas para agrupar los proyectos del nodo de la organización en una jerarquía. Por ejemplo, tu organización puede contener varios departamentos, cada uno con su propio conjunto de recursos de Google Cloud. Las carpetas te permiten agrupar estos recursos por departamento. Estas carpetas se usan para agrupar los recursos que comparten políticas de IAM. Mientras que una carpeta puede contener varias carpetas o recursos, una carpeta o recurso determinados pueden tener solo un superior.

En el siguiente diagrama, 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 IAM y de la organización en el nivel de detalle correcto.

Ejemplo de la jerarquía de carpetas

Puedes usar las políticas de IAM a nivel de la carpeta para controlar el acceso a los recursos que contiene la carpeta. Por ejemplo, si a un usuario se le otorga la función Administrador de instancias de procesamiento en una carpeta, ese usuario tiene la función Administrador de instancias de Compute en todos los proyectos de la carpeta.

Antes de comenzar

La función de la carpeta solo está disponible para los clientes de G Suite y Cloud Identity que tienen un recurso de la organización. Para obtener más información sobre la adquisición de recursos de una organización, consulta la página cómo crear y administrar organizaciones.

Si exploras cómo usar mejor las carpetas, te recomendamos que sigas estos pasos:

  1. 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.
  2. Obtén información sobre cómo configurar permisos de carpeta. Las carpetas admiten varias funciones de 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 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.
  3. 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 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 imagen 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.

Establece 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.

Sugerencia: Si quieres administrar carpetas para toda tu 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 la organización. Las cuentas posteriores a las que se les asigna esta función pueden otorgárselo a otras cuentas.

Para configurar los permisos de la carpeta, sigue estos pasos:

console

  1. En Google Cloud Console, abre la página Administrar recursos.

    Abrir la página Administrar recursos

  2. Haz clic en la lista desplegable Organización en la esquina superior izquierda y, luego, selecciona tu organización en la lista de recursos.

    Selecciona la organización de la lista de recursos

  3. En el cuadro de texto Agregar miembros (Add members) que se encuentra a la derecha, ingresa tu dirección de correo electrónico.

  4. En el cuadro de lista desplegable Seleccionar una función (Select a role), ve a la categoría Administrador de recursos (Resource Manager) y selecciona la función Administrador de carpetas (Folder Admin).

    Configura los permisos.

  5. Haz clic en Agregar (Add) para otorgar la función nueva.

gcloud

Las carpetas se pueden crear de forma programática mediante la herramienta de línea de comandos de gcloud. Para hacerlo, ejecuta el comando siguiente:

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

API

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/v1/[ORGANIZATION_NAME]:setIamPolicy

En el ejemplo anterior, se ilustra lo siguiente:

  • [ORGANIZATION_NAME] es el nombre de la organización de la que se establece la política de IAM, 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 con 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 30 caracteres o menos
  • El nombre debe ser distinto al de todas las demás carpetas que comparten el superior.

Para crear una carpeta, haz lo siguiente:

console

Las carpetas se pueden crear en la IU a través de la sección “Administra proyectos y carpetas”.

  1. Ve a la página Administrar recursos en Cloud Console:

    Abrir la página Administrar recursos

  2. Asegúrate de que el nombre de tu organización esté seleccionado en la lista desplegable de organizaciones que se encuentra en la parte superior de la página.

  3. Haz clic en Crear carpeta.

  4. En el cuadro Nombre de la carpeta, ingresa el nombre de la carpeta nueva.

  5. En Destino, haz clic en Explorar y, luego, selecciona el nodo o la carpeta de la organización en la que deseas crear tu nueva carpeta.

    1. Haz clic en Crear.

gcloud

Las carpetas se pueden crear de forma programática mediante la herramienta de línea de comandos de gcloud.

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 alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

Para crear una carpeta cuya carpeta superior sea otra, sigue estos pasos:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [DISPLAY_NAME] es 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] es el ID de la organización superior, si el superior es una organización.
  • [FOLDER_ID] es 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]"
}'

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/v2/folders?parent=[ORGANIZATION_NAME]

En el ejemplo anterior, se ilustra lo siguiente:

  • [DISPLAY_NAME] es el nombre visible de la carpeta nueva, por ejemplo, "Mi carpeta genial".
  • [ORGANIZATION_NAME] es el nombre 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.v2.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/v1/operations/fc.123456789

La respuesta para obtener operaciones luce así:

{
  "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"
  }
}

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

  1. En Google Cloud Console, abre la página Administrar recursos.

    Abrir la página Administrar recursos

  2. Haz clic en la lista desplegable Organización en la esquina superior izquierda y, luego, selecciona tu organización.

  3. Selecciona la casilla de verificación junto al proyecto en el que deseas cambiar los permisos.

  4. En el Panel de información (Info panel) del lado derecho, en Permisos (Permissions), ingresa las direcciones de correo electrónico de los miembros que deseas agregar.

  5. En la lista desplegable Seleccionar una función (Select a role), selecciona la función que deseas otorgarle a esos miembros.

    Captura de pantalla de la IU

  6. Haz clic en Agregar (Add). 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 mediante la herramienta de línea de comandos de gcloud o la 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

O bien sigue estos pasos:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_ID] es el ID de la carpeta nueva.
  • [POLICY_FILE] es la ruta a un archivo de la política de la carpeta.

API

SetsIamPolicy 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/v2/[FOLDER_NAME]:setIamPolicy

En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_NAME] es el nombre de la carpeta de la que configuras la política de IAM, por ejemplo, carpetas/123.

Crea un proyecto en una carpeta

Para crear un proyecto en una carpeta, debes tener la función creador de proyectos (roles/resourcemanager.projectCreator) en la carpeta. Esta función se puede heredar de una carpeta superior.

console

  1. En Google Cloud Console, abre la página Administrar proyectos y carpetas.

    Abrir Google Cloud Console

  2. Ve a la página Administrar proyectos y carpetas.
  3. Selecciona tu organización en el menú desplegable Organización en la parte superior izquierda de la página.
  4. Haz clic en Crear proyecto.
  5. Ingresa un Nombre de proyecto (Project name).
  6. En el cuadro Destino, haz clic en Explorar para seleccionar la carpeta en la que deseas crear el proyecto.

    Selecciona la carpeta

  7. Haz clic en Crear.

gcloud

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [PROJECT_ID] es el ID del proyecto que se creará.
  • [FOLDER_ID] es el ID de la carpeta en la que se debe crear el proyecto.

API

El JSON de la solicitud luce así:

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

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/v1/projects

En el ejemplo anterior, se ilustra lo siguiente:

  • [PROJECT_ID] es el ID del proyecto que se crea, por ejemplo, mi-proy-genial-123.
  • [DISPLAY_NAME] es el nombre visible del proyecto que se crea.
  • [PARENT_ID] es el ID del superior en el que se crea el proyecto, por ejemplo,123.
  • [PARENT_TYPE] es el tipo de superior, como “organización” o “carpeta”

Mueve un proyecto a una carpeta

Para mover un proyecto a una carpeta, necesitas funciones específicas de IAM en el proyecto, en el origen y en la carpeta de destino. En particular, debes cumplir con los siguientes criterios:

  1. Debes tener el permiso resourcemanager.projects.update en el proyecto, que se suele generar si tienes las funciones Editor de proyectos o Propietario de proyectos en el proyecto.

  2. Debes tener el permiso resourcemanager.projects.move en la carpeta de origen y en la de destino. Este permiso suele formar parte de las funciones de Propietario de proyectos, Editor de proyectos, Administrador de carpetas o Encargado de transferencia de carpetas. Si el recurso no está en una carpeta, necesitarás este permiso en el nodo de la organización.

Para mover un proyecto a la carpeta, sigue estos pasos:

console

  1. En Google Cloud Console, abre la página Administrar proyectos y carpetas.

    Abrir Google Cloud Console

  2. Selecciona tu organización en el menú desplegable Organización en la parte superior izquierda de la página.
  3. Haz clic en la fila de tu proyecto para seleccionar el proyecto de la lista de proyectos y carpetas. Ten en cuenta que no debes hacer clic en el nombre del proyecto, que te lleva a la página de IAM del proyecto.
  4. Haz clic en el menú de opciones (los puntos suspensivos verticales) de la fila y haz clic en Mover (Move).

    Mueve un proyecto

  5. Haz clic en Explorar para seleccionar la carpeta a la que deseas mover el proyecto.

  6. Haz clic en Mover.

gcloud

gcloud beta projects move PROJECT_ID --folder FOLDER_ID

En el ejemplo anterior, se ilustra lo siguiente:

  • [PROJECT_ID] es el ID del proyecto que deseas mover.
  • [FOLDER_ID] es el ID numérico de la carpeta que deseas mover.

Consideraciones de las políticas para mover proyectos a carpetas

Debes considerar con cuidado las implicaciones de las políticas antes de mover un proyecto dentro o fuera de una carpeta, ya que las políticas de IAM que defines a nivel del proyecto se mueven de forma automática con el proyecto, pero las políticas que defines a nivel del superior de origen o destino no lo hacen.

Esto significa que cualquier usuario que haya heredado el acceso al proyecto puede perder ese acceso si la carpeta de destino no tiene la misma política. Además, los cambios en las funciones de IAM podrían producir que algunas de estas dejen de funcionar hasta que se restablezcan los permisos adecuados.

Por ejemplo, piensa en una cuenta de servicio que tenga el Creador de objetos de almacenamiento asociado a la carpeta A. Esta carpeta tiene los permisos adecuados para subir los datos de Google Cloud Storage en cualquier proyecto de la carpeta A. Considera lo que sucede si uno de estos proyectos se mueve a la carpeta B, que no tiene los mismos permisos. La cuenta de servicio de ese proyecto pierde la capacidad de subir datos, lo que provoca una interrupción del servicio.

Estas mismas consideraciones se aplican si las políticas de la organización se definen en las carpetas de origen y destino. Al igual que las políticas de IAM, las políticas de la organización se heredan. Por lo tanto, debes asegurarte de que las políticas de la organización sean coherentes entre las carpetas de origen y de destino.

Para obtener más información sobre las políticas de la organización, consulta la introducción al servicio de las políticas de la organización.

Mueve una carpeta a otra

Para mover una carpeta a otra carpeta, debes tener la función Encargado de transferencia de carpetas en las carpetas de origen y de destino.

console

El proceso de mover carpetas a otras carpetas en Console es similar al de mover proyectos.

  1. En Google Cloud Console, abre la página Administrar proyectos y carpetas.

    Abrir Google Cloud Console

  2. Selecciona tu organización en el menú desplegable Organización en la parte superior izquierda de la página.
  3. Haz clic en la fila de tu carpeta para seleccionarla en la lista de proyectos y carpetas.
  4. Haz clic en el menú de opciones (los puntos suspensivos verticales) de la fila y haz clic en Mover (Move).
  5. Haz clic en Explorar para seleccionar la carpeta a la que deseas moverla.
  6. Haz clic en Mover.

gcloud

Para mover una carpeta dentro del recurso de la organización, ejecuta el siguiente comando en la herramienta de línea de comandos de gcloud:

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

Para mover una carpeta dentro de otra carpeta, ejecuta el siguiente comando:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_ID] es el ID de la carpeta que deseas mover.
  • [PARENT_ID] es el ID de la organización o de la carpeta de la organización o carpeta superior.

API

El JSON de la solicitud luce así:

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

La solicitud de curl para mover carpetas:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [DESTINATION_FOLDER_ID] es el ID de la carpeta dentro de la que moverás otra carpeta, por ejemplo, 98765.
  • [DISPLAY_NAME] es el nombre visible de la carpeta que mueves, por ejemplo, “Mi carpeta genial”.

La respuesta para mover carpetas luce así:

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

La solicitud de curl para obtener operaciones luce así:

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

La respuesta para obtener operaciones luce así:

{
  "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"
  }
}

Ve o enumera carpetas y proyectos

Para ver o enumerar carpetas, debes tener las funciones Visualizador de organizaciones y Visualizador de carpetas.

Para ver o enumerar carpetas y proyectos, sigue estos pasos:

console

  1. En Google Cloud Console, abre la página Administrar proyectos y carpetas.

    Ir a la página Administrar proyectos y carpetas

  2. Selecciona tu organización en el menú desplegable Organización en la parte superior izquierda de la página. Todos los proyectos y carpetas dentro de la organización se muestran en la página. Ten en cuenta que las carpetas deben crearse para que aparezcan en esta lista.
  3. Selecciona cualquier fila del árbol para realizar operaciones específicas de la carpeta o el proyecto.

  4. Ingresa el nombre o el ID de la carpeta o del proyecto en la búsqueda para filtrar la lista.

gcloud

Para ver una carpeta, usa el 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 …> \

En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_ID] es el ID de la carpeta que deseas ver.

    Para mostrar las carpetas dentro de una organización, usa el comando list.

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

    En el ejemplo anterior, se ilustra lo siguiente:

  • [ORGANIZATION_ID] es el ID de la organización de la que deseas ver una lista de las carpetas secundarias.

    Con el comando, se muestra una tabla en la que se ven las carpetas secundarias del ID de la organización que especificaste.

    Con el comando list, también se pueden enumerar las carpetas dentro de otra carpeta, a través de la marca --folder.

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

    En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_ID] es el ID de la carpeta de la que deseas ver una lista de las carpetas secundarias.

    Para enumerar los proyectos dentro de una organización o carpeta, usa el comando projects list y el argumento filter.

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

    En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_OR_ORGANIZATION_ID] es el ID de la carpeta o la organización de la que deseas ver una lista de los proyectos secundarios.

API

La solicitud de curl para obtener carpetas:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [FOLDER_NAME] es el nombre de la carpeta, por ejemplo, folders/123.

La solicitud de curl para enumerar carpetas:

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [PARENT_NAME] es el nombre del recurso superior en el que creas la carpeta, como organizations/123 o folders/123.

Usa la interfaz de línea de comandos de gcloud

Los comandos para interactuar con la API de las carpetas mediante la herramienta de línea de comandos de gcloud están disponibles en el grupo de comandos gcloud resource-manager folders.

Crea

Para crear una nueva carpeta, usa gcloud resource-manager folders create con marcas que configuren el nombre de la carpeta y el ID de la organización o carpeta en la que deseas que se cree.

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

Created Folder 245321.

Visualiza

Para ver una carpeta, usa gcloud resource-manager folders describe con el ID de la carpeta que deseas ver.

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

Enumera

Para enumerar las carpetas dentro de una carpeta, usa gcloud resource-manager folders list y pasa el ID de la carpeta en la marca --folder. También puedes enumerar las carpetas de nivel superior dentro de una organización con la marca --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>

Puedes enumerar proyectos con el comando gcloud projects list y pasar el ID de la organización o la carpeta superior en la marca --filter.

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

Para obtener más información sobre cómo los permisos y los filtros interactúan con los comandos de la lista, consulta la página sobre cómo enumerar todos los recursos en tu jerarquía.

Actualiza

Las carpetas se pueden actualizar con el comando gcloud resource-manager folders update. En la actualidad, solo se puede actualizar el campo display_name de una carpeta.

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

Borra

Las carpetas se pueden borrar y recuperar desde la línea de comandos. Un usuario debe contar con la función de administrador o editor de carpetas si desea tener permiso para borrar una carpeta. Solo se puede borrar una carpeta si está vacía.

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

Mueve proyectos

Los proyectos se pueden crear en carpetas y mover a carpetas con los comandos gcloud projects create y gcloud beta projects move existentes. Las carpetas también se pueden mover con 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 …

Operaciones de larga duración

Algunas operaciones de carpetas, como la creación, pueden tomar mucho tiempo. Para facilitar la realización de varias tareas, algunos comandos de carpetas te permiten realizarlas de forma asíncrona. Estos comandos admiten una marca --async que habilite el comportamiento asíncrono, lo que hace que muestren una operación de larga duración de forma inmediata, en lugar de esperar a que la operación se complete. Puedes sondear esta operación con el comando gcloud alpha resource-manager operations describe. En la actualidad, solo los comandos folders create y folders move permiten el uso así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 …>