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:
Borra las instancias que usen subredes en el proyecto host.
Borra los grupos de instancias administrados y los grupos de instancias no administrados que usan subredes en el proyecto host.
Borra las plantillas de instancias cuyas definiciones dependan del proyecto host.
Borra las reglas de reenvío interno para balanceadores de cargas TCP/UDP internos que hacen referencia a una subred en una red de VPC compartida del proyecto host.
Borra las direcciones IP internas estáticas que usan las interfaces de red de las VM en otras redes.
Para ello, primero debes obtener una lista de las direcciones reservadas y, luego, borrarlas.
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.
- Ve a la página VPC compartida en la consola de Google Cloud.
Ir a VPC compartida - Accede como un administrador de VPC compartida.
- Selecciona el proyecto host del que quitas los proyectos de servicio.
- Haz clic en la pestaña Proyectos adjuntos.
- Selecciona el proyecto de servicio que deseas desconectar.
- Haz clic en el botón Detach Projects.
- Revisa la información en el cuadro de diálogo.
- Haz clic en Desconectar.
gcloud
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
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
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
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
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
.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.
- Ve a la página VPC compartida en la consola de Google Cloud.
Ir a VPC compartida - Accede como un administrador de VPC compartida.
- Selecciona el proyecto host que deseas inhabilitar.
- Haz clic en el botón Inhabilitar VPC compartida.
- En el cuadro de diálogo, lee la descripción con atención.
- Ingresa el ID del proyecto host para ID del proyecto host.
- Haz clic en Inhabilitar.
gcloud
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
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
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
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
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
.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:
- Desvincular todos los proyectos de servicio del proyecto host.
- Inhabilitar la VPC compartida.
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
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ónresourcemanager.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
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
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
Confirma que se hayan quitado todas las retenciones.
gcloud alpha resource-manager liens list \ --project HOST_PROJECT_ID
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
El proyecto host ahora puede cerrarse.
API
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
.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
.Vuelve a enumerar las retenciones para confirmar que se quitaron.
¿Qué sigue?
- Consulta VPC compartida para obtener más información.
- Para obtener instrucciones sobre cómo configurar una VPC compartida, consulta Aprovisiona la VPC compartida.
- Para obtener instrucciones sobre cómo configurar clústeres de Google Kubernetes Engine con VPC compartida, consulta Configura clústeres con VPC compartida.