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:

.

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

  1. Ve a la página VPC compartida de la Google Cloud consola.
    Ir a VPC compartida
  2. Inicia sesión como administrador de VPC compartidas.
  3. Selecciona el proyecto del host del que vas a quitar los proyectos de servicio.
  4. Haz clic en la pestaña Proyectos vinculados.
  5. Selecciona el proyecto de servicio que quieras separar.
  6. Haz clic en el botón Desacoplar proyectos.
  7. Revisa la información del cuadro de diálogo.
  8. Haz clic en Desacoplar.

gcloud

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

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

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

  1. Ve a la página VPC compartida de la Google Cloud consola.
    Ir a VPC compartida
  2. Inicia sesión como administrador de VPC compartidas.
  3. Selecciona el proyecto anfitrión que quieras inhabilitar.
  4. Haz clic en el botón Inhabilitar VPC compartida.
  5. En el cuadro de diálogo, lee la descripción detenidamente.
  6. En ID de proyecto del host, introduce el ID del proyecto del host.
  7. Haz clic en Inhabilitar.

gcloud

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

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

  2. 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:

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

  1. 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 rol resourcemanager.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
    
  2. 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
    
  3. 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
    
  4. Confirma que se han retirado todas las cargas.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. 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
    
  6. Ahora se puede cerrar el proyecto host.

API

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

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

  3. Vuelve a enumerar las cargas para confirmar que se han retirado.

Siguientes pasos