Dar de baja una VPC compartida
En esta página se describe cómo retirar una configuración de VPC compartida, es decir, cómo desconectar todos los proyectos de servicio de un proyecto del host de VPC compartida. La retirada de acceso es un proceso unidireccional. Antes de empezar, familiarízate con las páginas VPC compartida y Aprovisionar una VPC compartida.
Tareas de administrador de proyectos de servicio
En cada proyecto de servicio vinculado al proyecto host de la VPC compartida, un administrador del proyecto de servicio debe eliminar 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.
Determinar los recursos afectados
Para identificar los recursos que dependen del proyecto host de la VPC compartida, un administrador del proyecto de servicio puede listar sus subredes compartidas. Cuando el proyecto de servicio se desvincule del proyecto del host, estas subredes dejarán de estar disponibles para él, por lo que se verán afectados todos los recursos que dependan de ellas.
Eliminar recursos
Una vez que un administrador del proyecto de servicio haya identificado los recursos que se verán afectados por el proceso de cancelación del aprovisionamiento, deberá eliminarlos:
Elimina las instancias que usen subredes del proyecto del host.
Elimina los grupos de instancias gestionadas y los grupos de instancias no gestionadas que usen subredes del proyecto host.
Eliminar plantillas de instancia cuyas definiciones dependen del proyecto del host.
Elimina las reglas de reenvío internas de los balanceadores de carga TCP/UDP internos que hagan referencia a una subred de una red de VPC compartida del proyecto host.
Elimina las direcciones IP internas estáticas que usan las interfaces de red de las máquinas virtuales de otras redes.
Para ello, primero debes obtener una lista de las direcciones reservadas y, a continuación, eliminarlas.
Tareas de administrador de balanceadores de carga
Los balanceadores de carga de aplicaciones internos y los balanceadores de carga de aplicaciones externos regionales te permiten configurar el balanceador de carga de forma que un mapa de URLs de un proyecto de host o de servicio pueda hacer referencia a servicios de backend (y backends) ubicados en varios proyectos de entornos de VPC compartida.
Antes de eliminar un proyecto de servicio, debes asegurarte de que se hayan eliminado todas las referencias entre proyectos a los servicios de backend de tu proyecto de servicio. Los administradores de balanceadores de carga tendrán que modificar sus mapas de URLs para eliminar las referencias a los servicios de backend de tu proyecto de servicio.
Tareas de administrador de VPC compartida
Todas las tareas de esta sección deben llevarlas a cabo administradores de VPC compartida.
Desvincular proyectos de servicio
Repite estos pasos con cada proyecto de servicio que quieras separar del proyecto host de la VPC compartida.
Consola
Para ver la página de VPC compartida en la consola de Google Cloud, debes tener el rol Administrador de VPC compartida. Google Cloud
- Ve a la página VPC compartida de la Google Cloud consola.
Ir a VPC compartida - Inicia sesión como administrador de VPC compartidas.
- Selecciona el proyecto del host del que vas a quitar los proyectos de servicio.
- Haz clic en la pestaña Proyectos vinculados.
- Selecciona el proyecto de servicio que quieras separar.
- Haz clic en el botón Desacoplar proyectos.
- Revisa la información del cuadro de diálogo.
- Haz clic en Desacoplar.
gcloud
Si aún no lo has hecho, autentícate en
gcloud
como administrador de VPC compartida. Sustituye SHARED_VPC_ADMIN por el nombre del administrador de VPC compartida:gcloud auth login SHARED_VPC_ADMIN
Desvincula el proyecto de servicio del proyecto del host. Sustituye 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 separado con uno de estos comandos:
gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
Si solo necesitas separar proyectos de servicio, cierra sesión en
gcloud
para proteger las credenciales de tu cuenta de administrador de VPC compartida. De lo contrario, omite este paso y inhabilita el proyecto host.gcloud auth revoke SHARED_VPC_ADMIN
API
Desvincula el proyecto de servicio.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT_ID" } }
Sustituye 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 va a separar.
Para obtener más información, consulta el método
projects.disableXpnResource
.Confirma que el proyecto de servicio se ha separado.
Comprueba que el proyecto de servicio no esté vinculado a ningún proyecto del host.
GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
Sustituye 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 vinculados al proyecto host de la 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
Sustituye HOST_PROJECT_ID por el ID del proyecto host.
Para obtener más información, consulta el método
projects.getXpnResources
.
Inhabilitar proyecto del host
Solo se puede inhabilitar la VPC compartida en el proyecto host una vez que se hayan desvinculado todos los proyectos de servicio. Si se inhabilita, la retención que impide que se elimine fácilmente se quita automáticamente.
Consola
Para ver la página de VPC compartida en la consola de Google Cloud, debes tener el rol Administrador de VPC compartida. Google Cloud
- Ve a la página VPC compartida de la Google Cloud consola.
Ir a VPC compartida - Inicia sesión como administrador de VPC compartidas.
- Selecciona el proyecto anfitrión que quieras inhabilitar.
- Haz clic en el botón Inhabilitar VPC compartida.
- En el cuadro de diálogo, lee la descripción detenidamente.
- En ID de proyecto del host, introduce el ID del proyecto del host.
- Haz clic en Inhabilitar.
gcloud
Si aún no lo has hecho, autentícate en
gcloud
como administrador de VPC compartida. Sustituye SHARED_VPC_ADMIN por el nombre del administrador de VPC compartida:gcloud auth login SHARED_VPC_ADMIN
Inhabilita la VPC compartida en el proyecto host. Sustituye HOST_PROJECT_ID por el ID del proyecto host.
gcloud compute shared-vpc disable HOST_PROJECT_ID
Comprueba que el proyecto ya no aparece como proyecto host de tu organización. Sustituye 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 tenías que inhabilitar un proyecto host, puedes cerrar sesión en
gcloud
para proteger las credenciales de tu cuenta de administrador de VPC compartida. De lo contrario, sáltate este paso y continúa con eliminar proyectos.gcloud auth revoke SHARED_VPC_ADMIN
API
Inhabilita la VPC compartida en el proyecto.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
Sustituye HOST_PROJECT_ID por el ID del proyecto host.
Para obtener más información, consulta el método
projects.disableXpnHost
.Lista tus proyectos host para confirmar que el proyecto no aparece.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
Sustituye HOST_PROJECT_ID por el ID del proyecto host.
Para obtener más información, consulta el método
projects.listXpnHosts
.
Eliminar proyectos
En esta sección se explica cómo eliminar proyectos que ya no se usan. Por ejemplo, puede que tengas proyectos de servicio que deban eliminarse después de que se hayan separado de un proyecto host, o puede que ya no necesites el proyecto host después de que se haya inhabilitado.
Eliminar proyecto del host
Puedes dejarlo como un proyecto normal o cerrarlo. Si cierras un proyecto, se eliminará.
Una entidad principal de gestión de identidades y accesos puede eliminar el proyecto anfitrión si tiene el
resourcemanager.projectDeleter
rol de tu
organización o si es el propietario del proyecto anfitrión.
Los administradores de VPC compartida pueden eliminar proyectos host si tienen el rol o la propiedad correctos.
Eliminar proyecto de servicio
Puedes cerrar cada proyecto de servicio si ya no lo necesitas. Antes de hacerlo, asegúrate de que el proyecto de servicio se ha desvinculado del proyecto del host.
Una entidad de IAM puede eliminar un proyecto de servicio si tiene el rol resourcemanager.projectDeleter
en tu organización o si es la propietaria del proyecto de servicio. Los administradores de proyectos de servicio pueden eliminar proyectos de servicio si tienen el rol o la propiedad correctos.
Eliminar un proyecto de host de forma forzada
Mientras la VPC compartida esté activa en un proyecto host, se aplicará una retención al proyecto para evitar que se elimine por error. Como el propietario del proyecto puede quitar este bloqueo, las directrices para aprovisionar una VPC compartida incluyen pasos para definir una política de organización que limite los principales de gestión de identidades y accesos que pueden quitar un bloqueo de proyecto.
Normalmente, un proyecto host se debe eliminar después de que se hayan completado las siguientes tareas en este orden:
- Todos los proyectos de servicio se han desvinculado del proyecto del host.
- Se ha inhabilitado la VPC compartida.
Cuando se inhabilita la VPC compartida, se elimina automáticamente el bloqueo que protege el proyecto host.
En esta sección se explica cómo cerrar un proyecto host de forma forzada. Solo deberías tener en cuenta esta opción en las siguientes circunstancias:
- No puedes seguir los pasos habituales para desasociar proyectos de servicio y inhabilitar la VPC compartida.
- Hay retenciones adicionales que protegen el proyecto anfitrión, además de la que se añade automáticamente.
Si cierras un proyecto host de forma forzosa y tienes recursos en proyectos de servicio que usan la red de VPC compartida, ocurrirá lo siguiente:
- Se eliminan todas las redes de VPC compartida, sus subredes, rutas, reglas de cortafuegos y todos los recursos de red del proyecto host.
- Se detienen los recursos, como las instancias en ejecución de los proyectos de servicio vinculados al proyecto host.
- Los balanceadores de carga TCP/UDP internos se inhabilitan si sus reglas de reenvío dependen de la red de VPC compartida.
gcloud
Autentícate en
gcloud
como una entidad de IAM que pueda eliminar un elemento de bloqueo de un proyecto. Si tienes una política de la organización que limita qué principales pueden quitar retenciones, debes autenticarte como principal de gestión de identidades y accesos con el rolresourcemanager.lienModifier
de tu organización. Si no tiene una política de este tipo, el propietario del proyecto host puede retirar el embargo.Sustituye ACCOUNT por el nombre de la principal de IAM adecuada:
gcloud auth login ACCOUNT
Lista los bloqueos asociados al proyecto host. Sustituye HOST_PROJECT_ID por el ID del proyecto host.
gcloud alpha resource-manager liens list \ --project HOST_PROJECT_ID
Elimina cada gravamen por su nombre, de uno en uno, hasta que no quede ninguno. Sustituye LIEN_NAME por el nombre del bloqueo que quieras quitar.
gcloud alpha resource-manager liens delete LIEN_NAME \ --project HOST_PROJECT_ID
Confirma que se han retirado todas las cargas.
gcloud alpha resource-manager liens list \ --project HOST_PROJECT_ID
Después de quitar el gravamen, puedes cerrar sesión en
gcloud
para proteger las credenciales de la entidad de IAM que tiene permiso para quitar gravámenes.gcloud auth revoke ACCOUNT
Ahora se puede cerrar el proyecto host.
API
Lista los gravámenes asociados al proyecto host.
GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
Sustituye HOST_PROJECT_ID por el ID del proyecto host.
Para obtener más información, consulta el método
liens.list
.Retira cada retención por su nombre hasta que no quede ninguna.
DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
Sustituye LIEN_NAME por el nombre del gravamen que quieras eliminar.
Para obtener más información, consulta el método
liens.delete
.Vuelve a enumerar las cargas para confirmar que se han retirado.
Siguientes pasos
- Para obtener más información sobre la VPC compartida, consulta VPC compartida.
- Para obtener instrucciones sobre cómo configurar una VPC compartida, consulta Aprovisionar una VPC compartida.
- Para obtener instrucciones sobre cómo configurar clústeres de Google Kubernetes Engine con una VPC compartida, consulta el artículo Configurar clústeres con una VPC compartida.