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. Los recursos de la organización pueden usar carpetas para agrupar proyectos en el nodo de recursos de la organización en la nube. Por ejemplo, el recurso de tu organización podría contener varios departamentos cada uno con su 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, el recurso de organización “Empresa” tiene carpetas que representan dos departamentos, “Departamento X” y “Dept Y”, y la carpeta “Shared Infrastructure”, para que podrían ser comunes en 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” 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 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 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 quieres configurar permisos ampliamente para que los usuarios puedan ver la estructura de sus proyectos Otorga a todo el dominio el Visualizador de organizaciones y el Visualizador de carpetas. roles a nivel de los recursos 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 recurso de 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.

Configura permisos para administrar carpetas

Para acceder a las carpetas y administrarlas, asigna roles de IAM específicos de cada carpeta a grupos específicos de usuarios. 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.

Para administrar las carpetas de todo el recurso de la organización, necesitas la Carpeta Administrador. 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.

Inicialmente, solo el administrador de la organización puede asignar el rol Administrador de carpetas. para el recurso de la organización. Cuentas posteriores a las que se les asigna esta función puedes otorgarlo a otras cuentas.

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

Console

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

    Ir a Administrar recursos

  2. Si el panel de información no está abierto, haz clic en Mostrar panel de información.
  3. En la tabla Recursos, expande la organización que contiene la carpeta.
  4. En la lista de recursos de la organización, selecciona la carpeta. que quieres administrar.
  5. En el panel de información, haz clic en Agregar principal.
  6. En el campo Agregar principales, ingresa la dirección de correo electrónico a la que deseas otorgar permisos.
  7. En el menú Selecciona un rol, selecciona la categoría Resource Manager. Luego, selecciona el rol que deseas otorgar, como Administrador de carpetas.
  8. Haz clic en Guardar para otorgar el nuevo rol.

gcloud

Para otorgar el rol Administrador de carpetas a una principal con Google Cloud CLI, sigue estos pasos: Ejecuta el siguiente comando:

    gcloud organizations 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/v3/ORGANIZATION_NAME:setIamPolicy

Reemplaza ORGANIZATION_NAME por 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 uno de estos roles 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, 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 la consola de Google Cloud:

    Abrir la página Administrar recursos

  2. Asegúrate de que el nombre del recurso de tu organización esté seleccionado en la Organización en la parte superior de la página.

  3. Haz clic en Crear carpeta y selecciona una de las siguientes opciones:

    • Carpeta estándar: Es una carpeta estándar. recurso de carpeta.
    • Carpeta que cumpla con los requisitos: Es una Carpeta de Assured Workloads, que brinda controles regulatorios, regionales o de soberanía adicionales para los recursos de Google Cloud. Si seleccionas esta opción, accederás a Assured Workloads en crea una 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 la organización. recurso o carpeta en la que quieras crear tu nueva carpeta.

    1. Haz clic en Crear.

gcloud

Las carpetas se pueden crear de forma programática con el Google Cloud CLI.

Para crear una carpeta en el recurso de la organización con gcloud de herramienta de línea de comandos, 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]

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 del recurso superior de la organización si el superior es un recurso de la 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,
  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

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 del recurso de la organización en el que estás creando 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 en el momento de crear carpetas. Para ello, debes otorgar el rol Etiquetar usuario. Para obtener más información sobre los permisos Para este rol, consulta Administra etiquetas en los recursos. 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 es el nombre visible de la carpeta.
  • ORGANIZATION_ID es el identificador único del recurso superior de la organización.
  • KEY_VALUE_PAIRS es una lista de pares clave-valor separados por comas que puedes asignar a tu recurso. Un ejemplo de pares clave-valor separados por comas es 123/environment=production, 456/create=testresource.

API

El siguiente fragmento es una solicitud JSON que crea una carpeta y agrega etiqueta.

  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

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

    Abrir la página de administración de recursos

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

  3. Selecciona la casilla de verificación junto al proyecto que quieres cambiar. permisos.

    1. En el panel de información de la derecha, en Permisos, ingresa la direcciones de correo electrónico de los miembros que quieras agregar.

    2. En la lista desplegable Seleccionar un rol, selecciona el rol que deseas asignar. otorgar a esos miembros.

    3. 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 manera programática mediante Google Cloud CLI o la 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

O, como alternativa:

gcloud 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

El método setIamPolicy establece la política de control de acceso en una carpeta. para reemplazar las políticas existentes. El campo resource debe ser el nombre el nombre del recurso, 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_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 la consola de Google Cloud, abre la página Administrar recursos.

    Abre la consola de Google Cloud

  2. Ve a la página Administrar recursos.
  3. Selecciona el recurso de tu organización en el menú desplegable Organización que se encuentra en la parte superior. a la 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.

  7. Haz clic en Crear.

gcloud

  gcloud projects create PROJECT_ID --folder FOLDER_ID

Reemplaza lo siguiente:

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

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

Reemplaza lo siguiente:

  • PROJECT_ID es el identificador único del proyecto que se crea. Por ejemplo, my-awesome-proj-123
  • DISPLAY_NAME es el nombre visible del proyecto que se crea.
  • PARENT_ID es el identificador único del elemento superior en el que se crea. Por ejemplo, 123
  • PARENT_TYPE es el tipo de elemento superior, como folder o organization.

No incluyas información sensible en el nombre de tu carpeta ni en otros nombres de recursos. Cualquier referencia a la carpeta o a los recursos relacionados expone el nombre de la carpeta y el nombre del recurso.

Mueve un proyecto a una carpeta

Debes considerar cuidadosamente cualquier implicación de la política antes de mover un proyecto. dentro o fuera de una carpeta. las políticas de Identity and Access Management que defines a nivel de proyecto se moverá con el proyecto, pero las políticas heredadas el recurso superior no se moverá.

Cuando mueves un proyecto, se modifican las políticas de Identity and Access Management o las políticas de la organización que que están directamente conectados se moverán con él. Sin embargo, un proyecto en tu jerarquía de recursos también se ve afectado por las políticas que hereda de los recursos superiores. Si un proyecto hereda un rol de IAM que les proporciona a los usuarios permiso para usar un servicio en particular, no tendrán acceso a ese servicio en el destino, a menos que también herede el permiso en el destino.

Por ejemplo, considera que una cuenta de servicio tiene la función Storage Object Creator. a un usuario en la carpeta A. La cuenta de servicio tiene permisos para subir a Cloud Storage en cualquier proyecto de la Carpeta A. Si moviste uno de estos proyectos a la Carpeta B, que no tiene los mismos permisos heredados, de servicio del proyecto perderá la capacidad de subir datos, lo que provocará que 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 Introducción al servicio de las políticas de la organización.

Para mover un proyecto, necesitas el rol de IAM de encargado de transferencia de proyectos (roles/resourcemanager.projectMover) en la carpeta de origen y en la carpeta de destino. Si el recurso no está en una carpeta, necesitas este rol en el recurso de la organización.

Estos roles otorgan los siguientes permisos necesarios:

  • resourcemanager.projects.update en el proyecto
  • Si el recurso está en una carpeta: resourcemanager.projects.move en la la carpeta de origen y el nombre de
  • Si el recurso no está en una carpeta: resourcemanager.projects.move en la recurso de la organización

También puedes obtener estos permisos con permisos personalizados roles u otros roles predefinidos.

Console

Para mover un proyecto, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  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 seleccionarlo en la lista de de Google Cloud. 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.

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

  6. Haz clic en Mover.

gcloud

Para mover un proyecto, ejecuta gcloud beta projects move :

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

Aquí:

  • PROJECT_ID es el ID o el número del proyecto que deseas. mover.

  • DESTINATION_TYPE es organization o folder.

  • DESTINATION_ID es el ID del recurso o la carpeta de la organización a la que quieres transferir el proyecto. Solo puedes especificar un objetivo.

API

Puedes usar la versión 3 Método projects.move para mover un proyecto.

Solicitud:

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

Aquí:

  • PROJECT_NAME es el nombre del proyecto que deseas. para actualizarlo. Por ejemplo, projects/415104041262

  • DESTINATION_PARENT es el nuevo recurso superior de la organización o la carpeta a la que quieres mover el proyecto. Por ejemplo: organizations/12345678901

Si se realiza correctamente, la solicitud mostrará una operación que se puede usar para hacer un seguimiento del traslado del proyecto.

Mueve una carpeta a otra

A fin de mover una carpeta a otra, debes tener el permiso resourcemanager.folders.move para 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 la consola de Google Cloud, abre la página Administrar recursos.

    Abre la consola de Google Cloud

  2. Selecciona el recurso de tu organización en el menú desplegable Organización que se encuentra en la parte superior. a la izquierda de la página.
  3. Haz clic en la fila de tu carpeta para seleccionarla en la lista proyectos y carpetas.
  4. Haz clic en el menú de opciones (los puntos suspensivos verticales) en la fila y haz clic en Mover.
  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 Google Cloud CLI:

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]

Reemplaza lo siguiente:

  • [FOLDER_ID] es el ID de la carpeta que deseas mover.
  • [PARENT_ID] es el ID del recurso de la organización o el ID de la carpeta del recurso o la carpeta de la organización 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/v3/folders/[DISPLAY_NAME]:move

Reemplaza 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.v3.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/v3/operations/fm.1234567890

La respuesta para obtener operaciones luce así:

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

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 la consola de Google Cloud, abre la página Administrar recursos.

    Abrir la página Administrar recursos

  2. En el selector de proyectos de la parte superior de la página, selecciona tu organización. recurso. 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 obtener detalles de una carpeta, usa el resource-manager folders describe kubectl.

gcloud resource-manager folders describe FOLDER_ID

Reemplaza FOLDER_ID por el ID de la carpeta que deseas. para ver.

Para ver una lista de las carpetas secundarias de un recurso de la organización, usa el Comando resource-manager folders list.

gcloud resource-manager folders list \
  --organization ORGANIZATION_ID

Reemplaza ORGANIZATION_ID por el ID del recurso de la organización del que quieres ver una lista de las carpetas secundarias.

Para ver una lista de las carpetas secundarias de un recurso de carpeta, usa el Comando resource-manager folders list.

gcloud resource-manager folders list \
  --folder FOLDER_ID

Reemplaza FOLDER_ID por el ID del recurso de carpeta del que quieres ver una lista de carpetas secundarias.

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

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

Reemplaza RESOURCE_ID por el ID del organización o carpeta de la que deseas ver una lista de proyectos.

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/v3/[FOLDER_NAME]

Reemplaza FOLDER_NAME por el nombre de la carpeta, como 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/v3/folders?parent=[PARENT_NAME]

Reemplaza PARENT_NAME por el nombre del recurso superior. en los que crearás la carpeta, como organizations/123 o folders/123.

Usa Google Cloud CLI

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.

Crear

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

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

Created Folder 245321.

Ver

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 en un recurso de la 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>

Para incluir en la lista las carpetas cuyas eliminaciones se solicitan, agrega la marca --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>

Puedes enumerar proyectos con gcloud projects list , pasando el ID de recurso 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 Enumera todos los recursos en tu jerarquía.

Para buscar carpetas que coincidan con la búsqueda especificada, usa gcloud alpha resource-manager folders search y pasa la condición en la marca --query. El alcance de la búsqueda son todas las carpetas para las que el usuario tiene permiso de visualización.

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>

Todas las carpetas para las que el usuario tiene permiso de lectura se pueden mostrar con el Comando gcloud folders search.

gcloud folders search
<table output showing all viewable folders>

Actualizar

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