Desaprovisiona la VPC compartida

En esta página, se explica cómo desaprovisionar una configuración de VPC compartida y desconectar todos los proyectos de servicio de un proyecto host con VPC compartida. El desaprovisionamiento es un proceso irreversible. Asegúrate de estar familiarizado con las páginas VPC compartida y Aprovisiona la VPC compartida primero.

Tareas del Administrador de proyecto de servicio

En cada proyecto de servicio vinculado al proyecto host de VPC compartida, un administrador de proyecto de servicio debe quitar todas las dependencias del proyecto host. Las dependencias pueden incluir instancias, grupos de instancias, plantillas de instancias, servicios de backend y reglas de reenvío.

Determina los recursos afectados

A fin de identificar los recursos que dependen del proyecto host con VPC compartida, el Administrador de proyecto de servicio puede realizar una lista de sus subredes compartidas. Cuando el proyecto de servicios se desvincule del proyecto host, estas subredes ya no estarán disponibles; por lo tanto, todos los recursos que dependan de ellas estarán afectados.

Borrar los recursos

Una vez que el Administrador de proyecto de servicio ha identificado los recursos que estarán afectados a causa del proceso de desaprovisionamiento, estos deben borrarse:

Tareas del administrador de balanceadores de cargas

Los balanceadores de cargas de aplicaciones internos y los balanceadores de cargas de aplicaciones externos regionales te permiten configurar el balanceador de cargas para que un mapa de URL en un proyecto host o de servicio pueda hacer referencia a los servicios de backend (y a backends) ubicados en varios proyectos en entornos de VPC compartida.

Antes de que puedas borrar un proyecto de servicio, debes asegurarte de que todas esas referencias entre proyectos a los servicios de backend se hayan quitado de tu proyecto de servicio. Los administradores de balanceadores de cargas deberán modificar sus mapas de URL para quitar las referencias a los servicios de backend en tu proyecto de servicio.

Tareas del Administrador de VPC compartida

Solo el Administrador de VPC compartida puede realizar las tareas de esta sección.

Desvincular el proyecto de servicio

Repite estos pasos para cada proyecto de servicio que tengas que desconectar del proyecto host con VPC compartida.

Console

Para ver la página VPC compartida en la consola de Google Cloud, debes tener el rol de administrador de VPC compartida.

  1. Ve a la página VPC compartida en la consola de Google Cloud.
    Ir a VPC compartida
  2. Accede como un administrador de VPC compartida.
  3. Selecciona el proyecto host del que quitas los proyectos de servicio.
  4. Haz clic en la pestaña Proyectos adjuntos.
  5. Selecciona el proyecto de servicio que deseas desconectar.
  6. Haz clic en el botón Detach Projects.
  7. Revisa la información en el cuadro de diálogo.
  8. Haz clic en Desconectar.

gcloud

  1. Si aún no lo hiciste, autentícate en gcloud como administrador de VPC compartida. Reemplaza SHARED_VPC_ADMIN por el nombre del administrador de VPC compartida:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Desconecta el proyecto de servicio del proyecto host. Reemplaza SERVICE_PROJECT_ID por el ID del proyecto de servicio y HOST_PROJECT_ID por el ID del proyecto host.

    gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
        --host-project HOST_PROJECT_ID
    
  3. Confirma que el proyecto de servicio se ha desconectado con uno de los comandos siguientes:

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  4. Si solo necesitabas desconectar proyectos de servicio, sal de gcloud para proteger las credenciales de la cuenta de administrador de VPC compartida. De lo contrario, omite este paso y procede con la inhabilitación del proyecto host.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Desconecta el proyecto de servicio.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
    }
    

    Reemplaza los marcadores de posición por valores válidos:

    • HOST_PROJECT_ID es el ID del proyecto host.
    • SERVICE_PROJECT_ID es el ID del proyecto de servicio que se desconectará.

    Para obtener más información, consulta el método projects.disableXpnResource.

  2. Confirma que el proyecto de servicio se desconectó.

    • Comprueba que el proyecto de servicio no esté conectado a ningún proyecto host.

      GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
      

      Reemplaza SERVICE_PROJECT_ID por el ID del proyecto de servicio.

      Para obtener más información, consulta el método projects.getXpnHost.

    • Enumera los proyectos de servicio adjuntos al proyecto host de VPC compartida para confirmar que el proyecto ya no aparece en la lista.

      GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
      

      Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

      Para obtener más información, consulta el método projects.getXpnResources.

Inhabilitar el proyecto host

Inhabilitar la VPC compartida para el proyecto host solo es posible después de desvincular todos los proyectos de servicio. Cuando se ha inhabilitado la VPC compartida, de forma automática desaparece la retención que impedía que se borrara con facilidad.

Console

Para ver la página VPC compartida en la consola de Google Cloud, debes tener el rol de administrador de VPC compartida.

  1. Ve a la página VPC compartida en la consola de Google Cloud.
    Ir a VPC compartida
  2. Accede como un administrador de VPC compartida.
  3. Selecciona el proyecto host que deseas inhabilitar.
  4. Haz clic en el botón Inhabilitar VPC compartida.
  5. En el cuadro de diálogo, lee la descripción con atención.
  6. Ingresa el ID del proyecto host para ID del proyecto host.
  7. Haz clic en Inhabilitar.

gcloud

  1. Si aún no lo hiciste, autentícate en gcloud como administrador de VPC compartida. Reemplaza SHARED_VPC_ADMIN por el nombre del administrador de VPC compartida:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Inhabilita la VPC compartida para el proyecto host. Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

    gcloud compute shared-vpc disable HOST_PROJECT_ID
    
  3. Confirma que el proyecto ya no esté señalado como proyecto host de tu organización. Reemplaza ORG_ID por el ID de tu organización (determinado por gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. Si solo necesitabas inhabilitar un proyecto host, puedes salir de gcloud para proteger las credenciales de la cuenta de administrador de VPC compartida. De lo contrario, omite este paso y continúa con la eliminación de proyectos.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Inhabilita la VPC compartida para el proyecto.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
    

    Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

    Para obtener más información, consulta el método projects.disableXpnHost.

  2. Enumera tus proyectos host para confirmar que el proyecto no aparece en la lista.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

    Para obtener más información, consulta el método projects.listXpnHosts.

Borrar proyectos

En esta sección, se explica cómo borrar proyectos que ya no se usen; por ejemplo, tal vez tengas proyectos de servicio que deban borrarse después de haberlos desvinculado de un proyecto host, o tal vez ya no necesites el proyecto host después de inhabilitarlo.

Borrar el proyecto host

Puedes elegir entre conservarlo como un proyecto normal o cerrarlo. Esta acción borra el proyecto.

Un principal de IAM puede borrar el proyecto host si tiene el rol resourcemanager.projectDeleter en tu organización o si es el propietario del proyecto host. Es posible que los administradores de VPC compartida puedan borrar proyectos host si tienen el rol correcto o son propietarios.

Borra el proyecto de servicio

Tal vez optes por cerrar todos los proyectos de servicio si ya no los necesitas. Antes de hacerlo, verifica que se haya desconectado el proyecto de servicio del proyecto host.

Un principal de IAM puede borrar un proyecto de servicio si tiene el rol resourcemanager.projectDeleter en tu organización o si es el propietario del proyecto de servicio. Los administradores de proyectos de servicio tal vez puedan borrar proyectos de servicio si tienen la función correcta o la propiedad del proyecto.

Borrar un proyecto host de forma forzosa

Mientras la VPC compartida está activa para un proyecto host, se establece una retención en el proyecto que impide que se borre de forma accidental Debido a que los propietarios del proyecto pueden quitar una retención, los lineamientos sobre cómo aprovisionar una VPC compartida incluyen los pasos para definir una política organizacional que limite qué principales de IAM pueden quitar una retención de proyecto.

En general, el proyecto host debe borrarse después de haber completado las siguientes tareas, en este orden:

Cuando se ha inhabilitado la VPC compartida, la retención que protege el proyecto host desaparece de forma automática.

En esta sección, se explica cómo cerrar un proyecto host de forma forzosa Solo deberías considerar esta opción en las siguientes circunstancias:

  • No puedes seguir los pasos normales para desvincular proyectos de servicio y para inhabilitar la VPC compartida.
  • Hay retenciones adicionales que protegen el proyecto host además de la que se agrega de forma automática.

Si cierras un proyecto host por la fuerza y tienes recursos en proyectos de servicio que usan la red de VPC compartida, ocurrirá lo siguiente:

  • Se borrarán todas las redes de VPC compartidas, sus subredes, rutas, reglas de firewall y todos los recursos de red del proyecto host.
  • Se detendrán los recursos, como las instancias en ejecución en los proyectos de servicio conectados al proyecto host.
  • Los balanceadores de cargas TCP/UDP internos se inhabilitarán si sus reglas de reenvío dependen de la red de VPC compartida.

gcloud

  1. Autentícate en gcloud como principal de IAM con permiso para quitar una retención de proyecto. Si tienes una política de la organización que limita qué principales pueden quitar retenciones, debes autenticarte como miembro de IAM con la función resourcemanager.lienModifier para tu organización. Si no estableciste esta política, el propietario del proyecto host puede quitar la retención.

    Reemplaza ACCOUNT por el nombre del principal de IAM que corresponda.

    gcloud auth login ACCOUNT
    
  2. Enumera las retenciones asociadas con el proyecto host. Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  3. Quita cada retención por nombre, una a la vez, hasta que no quede ninguna. Reemplaza LIEN_NAME por el nombre de la retención que deseas quitar.

    gcloud alpha resource-manager liens delete LIEN_NAME \
    --project HOST_PROJECT_ID
    
  4. Confirma que se hayan quitado todas las retenciones.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. Después de quitar la retención, puedes salir de gcloud para proteger las credenciales del principal de IAM que tiene permiso para realizar esta acción.

    gcloud auth revoke ACCOUNT
    
  6. El proyecto host ahora puede cerrarse.

API

  1. Enumera las retenciones que están asociadas al proyecto host.

    GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
    

    Reemplaza HOST_PROJECT_ID por el ID del proyecto host.

    Para obtener más información, consulta el método liens.list.

  2. Quita cada retención por nombre hasta que no quede ninguna.

    DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
    

    Reemplaza LIEN_NAME por el nombre de la retención que deseas borrar.

    Para obtener más información, consulta el método liens.delete.

  3. Vuelve a enumerar las retenciones para confirmar que se quitaron.

¿Qué sigue?