Aprovisionar una VPC compartida

La VPC compartida permite exportar subredes desde una red de VPC en un proyecto del host a otros proyectos del servicio en la misma organización. Las instancias de los proyectos del servicio pueden tener conexiones de red en las subredes compartidas del proyecto del host. En esta página se explica cómo configurar y utilizar VPC compartidas, incluida la preparación administrativa necesaria para la organización.

Se recomienda estar familiarizado con la descripción general de una VPC compartida y con la descripción general de la gestión de identidades y accesos (IAM).

Cuotas y límites

Se aplican los siguientes límites y cuotas a las organizaciones que utilizan la VPC compartida:

Elemento Cuota o límite Cantidad
Número de proyectos del host de la VPC compartida Cuota 100
Número de proyectos del servicio que se pueden vincular a un proyecto del host de la VPC compartida Cuota 100
Número de proyectos del host a los que se puede vincular un proyecto del servicio Límite 1

Límites operativos

Además, una VPC compartida tiene los siguientes límites operativos:

  • Misma organización: solo los proyectos del servicio de la misma organización pueden utilizar la red de la VPC compartida. La VPC compartida no funciona entre organizaciones.

  • Balanceo de carga: deben definirse los recursos (incluidas las reglas de reenvío, las direcciones, los proxies de destino y los mapas de URLs) y los backends (incluidos servicios de backend, segmentos de backend, comprobaciones del estado, grupos de instancias e instancias) del balanceo de carga y deben definirse y existir en el mismo proyecto, bien en el proyecto del host de la VPC compartida o en uno de los proyectos del servicio. Para obtener más información, consulta la página de descripción general de la VPC compartida.

  • Kubernetes Engine: los clústeres de Kubernetes Engine en un proyecto de servicio no se pueden colocar en subredes de una red de la VPC compartida de un proyecto del host.

  • Entorno flexible de App Engine: no son compatibles los entornos flexibles de App Engine en proyectos de servicio asociados con una red de VPC compartida.

  • Deployment Manager: Deployment Manager solo puede administrar recursos dentro de un único proyecto.

  • Grupos de instancias administrados: los grupos de instancias administrados utilizados con una VPC compartida necesitan convertir la cuenta de servicio de Compute Engine predeterminada en administrador de proyectos de servicio porque esa cuenta de servicio realiza tareas como la creación de instancias. Consulta el apartado sobre cuentas de servicio como administradores de proyecto de servicio para obtener información general sobre esta definición de las cuentas de servicio y consulta estos pasos para convertir la cuenta de servicio de Compute Engine predeterminada en un administrador de proyectos de servicio.

Preparar la organización

Tipos de administradores

Preparar tu organización, configurar proyectos del host de la VPC compartida y utilizar la red de la VPC compartida implica tres categorías de usuario administrativo diferentes:

Administrador Finalidad
Administrador de la organización
  • Miembro de IAM en la organización
Los administradores de la organización designan a los administradores de la VPC compartida mediante la concesión de las funciones de creación y eliminación de proyectos adecuadas y la función compute.xpnAdmin para la organización. También deben definir una política en el nivel de organización para evitar la eliminación por accidente de proyectos del host de la VPC compartida.
Administrador de VPC compartidas
  • Miembro de IAM en la organización
Los administradores de la VPC compartida habilitan la VPC compartida para los proyectos de una organización, de modo que los convierten en proyectos del host. Asocian proyectos de servicio a proyectos del host y definen administradores de proyectos de servicio con acceso a algunas de las subredes en el proyecto del host o a todas ellas.
Administrador de proyectos de servicio
  • Miembro de IAM en cada proyecto de servicio
Un administrador de VPC compartidas define el administrador de proyectos de servicio mediante la concesión a un miembro de IAM (por ejemplo, usuario, grupo, dominio o cuenta de servicio) de un proyecto de servicio la función compute.networkUser para todo el proyecto del host o solo para algunas de sus subredes. Los administradores de proyectos de servicio también deben tener la función compute.instanceAdmin para el proyecto de servicio donde crearán instancias.

Evitar la eliminación por accidente de proyectos del host

Eliminar accidentalmente una red de la VPC compartida o el proyecto del host causa interrupciones en todos los proyectos de servicio asociados. Cuando se configura un proyecto para que sea un proyecto del host de VPC compartida, se inserta en él un bloqueo especial denominado retención. Si existe dicha retención, no se podrá eliminar por accidente el proyecto. La retención se elimina de forma automática del proyecto del host cuando deja de estar configurada para VPC compartida.

El administrador de la organización o cualquier otro usuario con la función orgpolicy.policyAdmin puede definir una política, en el nivel de organización, que permita la eliminación de retenciones únicamente a los propietarios de la organización y a los usuarios con la función resourcemanager.lienModifier. Esto impide realmente que un propietario de proyecto que no sea propietario de la organización ni tenga la función resourcemanager.lienModifier pueda eliminar por accidente un proyecto del host de VPC compartida. Para obtener más información sobre los permisos asociados a la función resourcemanager.lienModifier, consulta el apartado sobre cómo insertar retenciones en proyectos en la documentación de Resource Manager.

Basta con efectuar estos pasos una sola vez para restringir la eliminación de retenciones, ya que las políticas de organización se aplican a todos los proyectos de esta.

  1. Indica tus credenciales de autenticación en gcloud como administrador de la organización o miembro de IAM con la función orgpolicy.policyAdmin. Sustituye [ORG_ADMIN] por el nombre de un administrador de la organización:

    gcloud auth login [ORG_ADMIN]
    

  2. Determina el número de ID de la organización a través del resultado de este comando:

    gcloud organizations list
    

  3. Aplica la política compute.restrictXpnProjectLienRemoval para tu organización con este comando. Sustituye [ORG_ID] por el número que hayas determinado en el paso anterior.

    gcloud beta resource-manager org-policies enable-enforce \
        --organization [ORG_ID] compute.restrictXpnProjectLienRemoval
    

  4. Sal de gcloud cuando termines de efectuar las tareas de administrador de la organización para proteger tu cuenta.

    gcloud auth revoke [ORG_ADMIN]
    

Nombrar administradores de la VPC compartida

Un administrador de la organización puede conceder a uno o varios miembros de IAM la función Administrador de VPC compartidas, compute.xpnAdmin. Esto crea una vinculación en el nivel de organización, no en el de proyecto, de modo que los miembros de IAM deben definirse en la organización y no solo en un proyecto.

Consola

  1. Inicia sesión en la consola de Google Cloud Platform como administrador de la organización y, a continuación, visita la página de IAM.
    Ir a la página de IAM
  2. En el menú de proyectos, selecciona tu organización.
    Si seleccionas un proyecto, no verás las entradas correctas en el menú Funciones.
  3. Haz clic en Añadir.
  4. Escribe las direcciones de correo electrónico de los miembros.
  5. En Funciones, selecciona Compute Engine > Administrador de VPC compartidas de Compute.
  6. Haz clic en Añadir.

gcloud

  1. Indica tus credenciales de autenticación en gcloud como administrador de la organización. Sustituye [ORG_ADMIN] por el nombre de un administrador de la organización:

    gcloud auth login [ORG_ADMIN]
    

  2. Determina el número de ID de la organización a través del resultado de este comando:

    gcloud organizations list
    

  3. Aplica la función de administrador de VPC compartidas a un miembro de IAM. Sustituye [ORG_ID] por el número de ID de organización obtenido en el paso anterior y [EMAIL_ADDRESS] por la dirección de correo electrónico del usuario al que concedes la función de administrador de VPC compartidas.

    gcloud organizations add-iam-policy-binding [ORG_ID] \
        --member 'user:[EMAIL_ADDRESS]' \
        --role "roles/compute.xpnAdmin"
    

  4. Sal de gcloud cuando termines de efectuar las tareas de administrador de la organización para proteger tu cuenta.

    gcloud auth revoke [ORG_ADMIN]
    

Configurar VPC compartidas

Todas las tareas que se describen en esta sección debe realizarlas un administrador de VPC compartidas.

Habilitar proyectos del host

Dentro de una organización, los administradores de las VPC compartidas pueden designar proyectos como proyectos del host de las VPC compartidas, según las cuotas y los límites correspondientes, a través de este procedimiento. Los administradores de las VPC compartidas también pueden crear y eliminar proyectos si tienen las funciones resourcemanager.projectCreator y resourcemanager.projectDeleter en tu organización.

Consola

  1. Visita la página de la VPC compartida en la consola de Google Cloud Platform.
    Ir a la página de VPC compartida
  2. Inicia sesión como administrador de VPC compartidas.
  3. Selecciona el proyecto que vas a habilitar como proyecto del host de la VPC compartida en el selector de proyectos.
  4. Haz clic en Configurar VPC compartida.
  5. En la página siguiente, haz clic en Guardar y continuar en Habilitar el proyecto del host.
  6. En Seleccionar subredes, efectúa los pasos siguientes:
    1. Haz clic en Compartir todas las subredes (permisos de nivel de proyecto) si necesitas compartir todas las subredes actuales y futuras en la red de la VPC compartida del proyecto del host con proyectos de servicio y administradores de proyectos de servicio especificados en los pasos siguientes.
    2. Haz clic en Subredes concretas (permisos de nivel de subred) si necesitas compartir determinadas subredes desde la red de la VPC compartida del proyecto del host con proyectos de servicio y administradores de proyectos de servicio. A continuación, selecciona Subredes que quieres compartir.
  7. Haz clic en Continuar.
    Se mostrará la pantalla siguiente.
  8. En el campo de nombres de proyectos, especifica los proyectos de servicio que vas a vincular al proyecto del host. Ten en cuenta que esta vinculación o implica la definición de administradores de proyectos de servicio; esto se hace en el paso siguiente.
  9. En la sección Seleccionar usuarios según la función, añade administradores de proyectos de servicio. A estos usuarios se les concederá la función de IAM de compute.networkUser para las subredes compartidas. Los administradores de proyectos de servicio son los únicos que pueden crear recursos en las subredes del proyecto del host de VPC compartida.
  10. Haz clic en Guardar.

gcloud

  1. Indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre del administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Habilita la VPC compartida para el proyecto que se va a convertir en proyecto del host. Sustituye [HOST_PROJECT_ID] con el ID del proyecto.

    gcloud compute shared-vpc enable [HOST_PROJECT_ID]
    

  3. Confirma que el proyecto aparece como proyecto del host para 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 lo único que necesitabas era habilitar un proyecto del host, puedes salir de gcloud para proteger las credenciales de tu cuenta como administrador de VPC compartidas. Si no es así, omite este paso y continúa con el procedimiento para vincular proyectos de servicio.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Vincular proyectos de servicio

Un proyecto de servicio debe vincularse a un proyecto del host para que sus administradores puedan utilizar la VPC compartida. Para finalizar la vinculación, es necesario que un administrador de VPC compartidas efectúe los pasos siguientes.

Un proyecto de servicio solo se puede vincular a un proyecto del host, pero un proyecto del host permite varias vinculaciones de proyectos de servicio. Consulta las cuotas y límites para obtener más información al respecto.

Consola

  1. Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
  2. Ve a la página de la red de la VPC compartida en la consola de Google Cloud Platform.
    Ir a la página de la red de VPC compartida
  3. Haz clic en la pestaña Proyectos vinculados.
  4. Una vez que has entrado en la pestaña del paso anterior, haz clic en el botón Proyectos vinculados.
  5. Marca las casillas de los proyectos de servicio que vas a vincular en la sección con los nombres de los proyectos. Ten en cuenta que esta vinculación o implica la definición de administradores de proyectos de servicio; esto se hace en el paso siguiente.
  6. En la sección Permisos de la red de VPC, selecciona los administradores de proyectos de servicio. A los usuarios seleccionados se les concederá la función de IAM de compute.networkUser para las subredes compartidas. Los administradores de proyectos de servicio son los únicos que pueden crear recursos en las subredes del proyecto del host de VPC compartida.
  7. En la sección de modo de uso compartido de la red de VPC, selecciona una de las opciones siguientes:
    1. Haz clic en Compartir todas las subredes (permisos de nivel de proyecto) para compartir todas las subredes actuales y futuras en la red de la VPC compartida del proyecto del host con todos los proyectos del servicio y administradores de proyectos del servicio.
    2. Haz clic en Subredes concretas (permisos de nivel de subred) si necesitas compartir determinadas subredes desde la red de la VPC compartida del proyecto del host con proyectos de servicio y administradores de proyectos de servicio. A continuación, selecciona Subredes que quieres compartir.
  8. Haz clic en Guardar.

gcloud

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre de administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Vincula un proyecto de servicio a un proyecto del host habilitado con anterioridad. Sustituye [SERVICE_PROJECT_ID] por el ID del proyecto para el proyecto de servicio y [HOST_PROJECT_ID] por el ID de proyecto para el proyecto del host.

    gcloud compute shared-vpc associated-projects add [SERVICE_PROJECT_ID] \
        --host-project [HOST_PROJECT_ID]
    

  3. Confirma que se ha vinculado el proyecto de servicio.

    gcloud compute shared-vpc get-host-project [SERVICE_PROJECT_ID]
    

  4. También puedes generar una lista de los proyectos de servicio que están vinculados al proyecto del host:

    gcloud compute shared-vpc list-associated-resources [HOST_PROJECT_ID]
    

  5. Si solo necesitas vincular un proyecto de servicio, puedes salir de gcloud para proteger tus credenciales de la cuenta de administrador de VPC compartidas. En caso contrario, omite este paso y define los administradores de proyecto de servicio para todas las subredes o para solo algunas subredes.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Administradores de proyectos de servicio para todas las subredes

Un administrador de VPC compartidas puede definir un miembro de IAM como administrador de proyectos de servicio con acceso a todas las subredes del proyecto del host. A los administradores de proyectos de servicio de este tipo se les concede la función de compute.networkUser para todo el proyecto del host. Esto significa que tienen acceso a todas las subredes ya definidas y las futuras del proyecto del host.

Consola

Para definir un miembro de IAM desde un proyecto de servicio como administrador de proyectos de servicio con acceso a todas las subredes del proyecto del host mediante la consola de GCP, consulta la sección Vincular proyectos de servicio.

gcloud

Estos pasos corresponden al procedimiento para definir un miembro de IAM desde un proyecto de servicio como administrador de proyectos de servicio con acceso a todas las subredes del proyecto del host. Antes de poder efectuarlos, es necesario que hayas habilitado un proyecto del host y que hayas vinculado el proyecto de servicio al proyecto del host.

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre de administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Crea una vinculación de política para que un miembro de IAM del proyecto de servicio se convierta en administrador de dicho proyecto. Sustituye [HOST_PROJECT_ID] por el ID del proyecto del host y [SERVICE_PROJECT_ADMIN] por la dirección de correo electrónico del usuario que va a actuar como administrador del proyecto de servicio.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_ID] \
    --member "user:[SERVICE_PROJECT_ADMIN]" \
    --role "roles/compute.networkUser"
    

    Puedes especificar distintos tipos de miembros con tan solo cambiar el formato del argumento --member:

    • Utiliza group: para especificar un grupo de Google (mediante dirección de correo electrónico) como miembro.
    • Utiliza domain: para especificar un dominio de Google como miembro.
    • Utiliza serviceAccount: para especificar una cuenta de servicio. Consulta el apartado sobre cuentas de servicio como administradores de proyecto de servicio para obtener más información sobre este caso práctico.
  3. Repite el paso anterior para cada administrador de proyectos de servicio que necesites definir.

  4. Si has terminado de definir administradores de proyectos de servicio, puedes salir de gcloud para proteger tus credenciales de la cuenta de administrador de las VPC compartidas.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Administradores de proyectos de servicio para algunas subredes

Un administrador de las VPC compartidas puede definir un miembro de IAM como administrador de proyectos de servicio con acceso solo a algunas de las subredes del proyecto del host. Esta opción constituye un modo más detallado de definir administradores de proyectos de servicio mediante la concesión a estos de la función compute.networkUser solo para algunas subredes del proyecto del host.

Consola

Para definir un miembro de IAM desde un proyecto de servicio como administrador de proyectos de servicio con acceso solo a algunas de las subredes en un proyecto del host mediante la consola de GCP, consulta la sección Vincular proyectos de servicio.

gcloud

Estos pasos corresponden al procedimiento para definir miembros de IAM desde un proyecto de servicio como administrador de proyectos de servicio con acceso solo a algunas subredes del proyecto del host. Antes de poder definirlos, es necesario que hayas habilitado un proyecto del host y que hayas vinculado el proyecto de servicio al proyecto del host.

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre de administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Elige la subred del proyecto del host para el que van a tener acceso los administradores de proyecto de servicio. Obtén su política de IAM en formato JSON. Sustituye [SUBNET_NAME] por el nombre de la subred en el proyecto del host y [HOST_PROJECT_ID] por el ID de proyecto para el proyecto del host.

    gcloud beta compute networks subnets get-iam-policy [SUBNET_NAME] \
        --project [HOST_PROJECT_ID] \
        --format json
    

  3. Copia el resultado de JSON obtenido en el paso anterior y guárdalo en un archivo. Para que no haya confusiones, estos pasos lo guardan en un archivo denominado subnet-policy.json.

  4. Modifica el archivo subnet-policy.json y añade los miembros de IAM que se convertirán en administradores de proyectos de servicio con acceso a la subred. Sustituye cada [SERVICE_PROJECT_ADMIN] con la dirección de correo electrónico de un usuario de IAM desde el proyecto de servicio.

    {
      "bindings": [
      {
         "members": [
               "user:[SERVICE_PROJECT_ADMIN]",
               "user:[SERVICE_PROJECT_ADMIN]"
            ],
            "role": "roles/compute.networkUser"
      }
      ],
      "etag": "[ETAG_STRING]"
    }
    

    Ten en cuenta que puedes especificar distintos tipos de miembros de IAM (distintos de los usuarios) en la política:

    • Cambia user: por group: para especificar un grupo de Google (mediante dirección de correo electrónico) como miembro.
    • Utiliza user: por domain: para especificar un dominio de Google como miembro.
    • Utiliza serviceAccount: para especificar una cuenta de servicio. Consulta el apartado sobre cuentas de servicio como administradores de proyecto de servicio para obtener más información sobre este caso práctico.
  5. Actualiza la vinculación de política de la subred con el contenido del archivo subnet-policy.json.

    gcloud beta compute networks subnets set-iam-policy [SUBNET_NAME] subnet-policy.json \
        --project [HOST_PROJECT_ID]
    

  6. Si has terminado de definir administradores de proyectos de servicio, puedes salir de gcloud para proteger tus credenciales de la cuenta de administrador de las VPC compartidas.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Cuentas de servicio como administradores de proyectos de servicio

Un administrador de VPC compartidas puede definir cuentas de servicio de proyectos de servicio como administradores de proyecto de servicio. En esta sección se describe cómo definir dos tipos de cuentas de servicio diferentes como administradores de proyectos de servicio:

Al igual que sucede con los demás miembros de IAM, la función de administrador de proyectos de servicio (compute.networkUser) se puede conceder para todas las subredes o solo para algunas del proyecto del host. Sin embargo, por simplificar las instrucciones, en esta sección solo se explica cómo definir cada uno de los dos tipos de cuentas de servicio como administradores de proyectos de servicio para todas las subredes del proyecto del host.

Cuentas de servicio administradas por el usuario como administradores de proyectos de servicio

En estas instrucciones se describe cómo definir una cuenta de servicio administrada por el usuario como administrador de proyectos de servicio para todas las subredes del proyecto del host de VPC compartida.

Consola

  1. Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
  2. Visita la página de configuración en la consola de Google Cloud Platform.
    Ir a la página Configuración
  3. Cambia el proyecto al proyecto de servicio que contiene la cuenta de servicio que debe definirse como administrador de proyectos de servicio.
  4. Copia el número del proyecto de servicio. Para que las instrucciones sean más claras, este procedimiento hace referencia al número de proyecto de servicio como [SERVICE_PROJECT_NUMBER].
  5. Cambia el proyecto al proyecto del host de VPC compartido.
  6. Visita la página de IAM en la consola de Google Cloud Platform.
    Ir a la página de IAM
  7. Haz clic en Añadir.
  8. Añade [SERVICE_ACCOUNT_NAME]@[SERVICE_PROJECT_NUMBER].iam.gserviceaccount.com al campo Miembros y sustituye [SERVICE_ACCOUNT_NAME] por el nombre de la cuenta de servicio.
  9. En el menú Funciones, selecciona Compute Engine > Usuario de red de Compute.
  10. Haz clic en Añadir.

gcloud

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre de administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Determina el número del proyecto de servicio. Para que las instrucciones sean más claras, este procedimiento hace referencia al número de proyecto de servicio como [SERVICE_PROJECT_NUMBER]. Sustituye [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.

    gcloud projects describe [SERVICE_PROJECT_ID] --format='get(projectNumber)'
    

    • Si no conoces el ID del proyecto de servicio, puedes generar una lista de todos los proyectos que hay en tu organización. En la lista se ve el número de cada uno de los proyectos.

      gcloud projects list
      

  3. Crea una vinculación de política para que la cuenta de servicio se convierta en administrador de proyectos de servicio. Sustituye [HOST_PROJECT_ID] por el ID del proyecto del host, [SERVICE_ACCOUNT_NAME] por el nombre de la cuenta de servicio y [SERVICE_PROJECT_NUMBER] por el número de proyecto de servicio.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_ID] \
        --member "user:[SERVICE_ACCOUNT_NAME]@[SERVICE_PROJECT_NUMBER].iam.gserviceaccount.com" \
        --role "roles/compute.networkUser"
    

Cuenta de servicio de Compute Engine predeterminada como administrador de proyectos de servicio

En estas instrucciones se describe cómo definir la cuenta de servicio de Compute Engine predeterminada como administrador de proyectos de servicio para todas las subredes del proyecto del host de VPC compartida. Este proceso de definición es un requisito para grupos de instancias administradas utilizados con VPC compartida porque este tipo de cuenta de servicio efectúa tareas como la creación de instancias. Consulta el apartado sobre grupos de instancias administrados y gestión de identidades y accesos para obtener más información sobre esta relación.

Consola

  1. Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
  2. Visita la página de configuración en la consola de Google Cloud Platform.
    Ir a la página Configuración
  3. Cambia el proyecto al proyecto de servicio que contiene la cuenta de servicio que debe definirse como administrador de proyectos de servicio.
  4. Copia el número del proyecto de servicio. Para que las instrucciones sean más claras, este procedimiento hace referencia al número de proyecto de servicio como [SERVICE_PROJECT_NUMBER].
  5. Cambia el proyecto al proyecto del host de VPC compartido.
  6. Visita la página de IAM en la consola de Google Cloud Platform.
    Ir a la página de IAM
  7. Haz clic en Añadir.
  8. Añade [SERVICE_PROJECT_NUMBER]@cloudservices.gserviceaccount.com al campo Miembros.
  9. En el menú Funciones, selecciona Compute Engine > Usuario de red de Compute.
  10. Haz clic en Añadir.

gcloud

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de VPC compartidas. Sustituye [SHARED_VPC_ADMIN] por el nombre de administrador de VPC compartidas:

    gcloud auth login [SHARED_VPC_ADMIN]
    

  2. Determina el número del proyecto de servicio. Para que las instrucciones sean más claras, este procedimiento hace referencia al número de proyecto de servicio como [SERVICE_PROJECT_NUMBER]. Sustituye [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.

    gcloud projects describe [SERVICE_PROJECT_ID] --format='get(projectNumber)'
    

    • Si no conoces el ID del proyecto de servicio, puedes generar una lista de todos los proyectos que hay en tu organización. En la lista se ve el número de cada uno de los proyectos.

      gcloud projects list
      

  3. Crea una vinculación de política para que la cuenta de servicio se convierta en administrador de proyectos de servicio. Sustituye [HOST_PROJECT_ID] por el ID del proyecto del host y [SERVICE_PROJECT_NUMBER] por el número del proyecto de servicio.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_ID] \
        --member "serviceAccount:[SERVICE_PROJECT_NUMBER]@cloudservices.gserviceaccount.com" \
        --role "roles/compute.networkUser"
    

Utilizar una VPC compartida

Una vez que un administrador de las VPC compartidas finalice las tareas de habilitar un proyecto del host, vincular a este los proyectos de servicio necesarios y definir administradores de proyectos de servicio para todas las subredes del proyecto del host o solo para algunas de ellas, los administradores de proyectos de servicio pueden crear instancias, plantillas y balanceadores de carga internos en los proyectos de servicio que utilizan las subredes del proyecto del host.

Todas las tareas que se describen en esta sección debe efectuarlas un administrador de proyectos de servicio.

Es importante tener en cuenta que un administrador de las VPC compartidas solo concede a los administradores de proyectos de servicio la función compute.networkUser, bien para todo el proyecto del host o solo para algunas de sus subredes. Los administradores de proyectos de servicio deben tener también otras funciones necesarias para administrar sus proyectos de servicio correspondientes. Por ejemplo, un administrador de proyectos de servicio también puede ser un propietario de proyecto o, al menos, debería tener la función compute.instanceAdmin para el proyecto.

Generar lista de subredes compartidas

Los administradores de proyectos de servicio pueden determinar qué subredes del proyecto del host de la VPC compartida están disponibles para utilizarse en sus proyectos de servicio. En la lista se muestran todas las subredes para las que el administrador tiene el permiso compute.subnetworks.use.

Consola

Visita la página de la VPC compartida en la consola de Google Cloud Platform.
Ir a la página de VPC compartida

gcloud

  1. Si no lo has hecho aún, indica las credenciales de autenticación en gcloud como administrador de proyectos de servicio. Sustituye [SERVICE_PROJECT_ADMIN] por el nombre del administrador de proyectos de servicio:

    gcloud auth login [SERVICE_PROJECT_ADMIN]
    

  2. Ejecuta el siguiente comando tras sustituir [HOST_PROJECT_ID] por el ID del proyecto del host de VPC compartida:

    gcloud beta compute networks subnets list-usable --project [HOST_PROJECT_ID]
    

Crear una instancia

Consola

  1. Visita la página de instancias de máquina virtual en la consola de Google Cloud Platform.
    Ir a la página Instancias de VM
  2. Haz clic en Crear.
  3. Escribe el nombre de la instancia.
  4. Haz clic en Administración, discos, redes, claves SSH.
  5. Haz clic en Redes.
  6. Haz clic en el botón de selección Redes compartidas conmigo.
  7. Selecciona la subred compartida donde vas a crear la instancia.
  8. Especifica cualquier otro parámetro necesario de la instancia.
  9. Haz clic en Crear.

gcloud

Los administradores de proyectos de servicio pueden crear una instancia de máquina virtual mediante gcloud del modo siguiente:

gcloud compute instances create [INSTANCE_NAME] \
    --project [SERVICE_PROJECT_ID] \
    --subnet projects/[HOST_PROJECT_ID]/regions/[REGION]/subnetworks/[SUBNET] \
    --zone [ZONE]

donde harías la siguiente sustitución:

  • [INSTANCE_NAME] por el nombre de la instancia.
  • [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.
  • [HOST_PROJECT_ID] por el ID del proyecto del host de VPC compartida.
  • [REGION] por la región que contiene la subred compartida.
  • [SUBNET] por el nombre de la subred compartida.
  • [ZONE] por una zona en la región especificada.

Crear una plantilla de instancia

Los administradores de proyectos de servicio pueden crear plantillas de instancia que hagan referencia al proyecto del host de VPC compartida.

Consola

  1. Visita la página Plantillas de instancias en la consola de Google Cloud Platform.
    Ir a la página Plantillas de instancia
  2. Haz clic en Crear plantilla de instancia.
  3. Especifica un nombre para la plantilla de instancia.
  4. Haz clic en Administración, discos, redes, claves SSH.
  5. Haz clic en Redes.
  6. Haz clic en el botón de selección Redes compartidas conmigo.
  7. Selecciona la subred compartida donde vas a crear la plantilla de instancia.
  8. Especifica cualquier otro parámetro necesario de la plantilla de instancia.
  9. Haz clic en Crear.

gcloud

Cuando se crea una plantilla de instancia, un administrador de proyectos de servicio se encarga de seleccionar una red y una subred. Si el proyecto del host de la VPC compartida es una red en modo automático, se puede omitir la especificación de la subred, ya que este tipo de redes tienen, por definición, una subred en cada región.

En los ejemplos siguientes se describe cómo crear plantillas de instancia específicas de una subred o cómo utilizar cualquier subred creada de forma automática en una red de VPC compartida en modo automático. En ambos casos, el administrador de proyectos de servicio debe tener permiso para, al menos, la subred elegida para la plantilla o para todo el proyecto del host.

  • Puedes crear una plantilla de instancia para utilizar en cualquier subred creada de forma automática de una red en modo automático en el proyecto del host de la VPC compartida de la siguiente manera:

    gcloud compute instance-templates create [TEMPLATE_NAME] \
    --project [SERVICE_PROJECT_ID] \
    --network projects/[HOST_PROJECT_ID]/global/networks/[NETWORK]
    

    donde harías la siguiente sustitución:

    • [TEMPLATE_NAME] por el nombre de la plantilla.
    • [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.
    • [HOST_PROJECT_ID] por el ID del proyecto del host de VPC compartida.
    • [NETWORK] por el nombre de la red de VPC compartida.
  • Puedes crear una plantilla de instancia para una subred concreta creada de forma manual en la red del proyecto del host de la VPC compartida (sea cual sea su modo) de la siguiente manera:

    gcloud compute instance-templates create [TEMPLATE_NAME] \
    --project [SERVICE_PROJECT_ID] \
    --region [REGION] \
    --subnet projects/[HOST_PROJECT_ID]/regions/[REGION]/subnetworks/[SUBNET]
    

    donde harías la siguiente sustitución:

    • [TEMPLATE_NAME] por el nombre de la plantilla.
    • [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.
    • [HOST_PROJECT_ID] por el ID del proyecto del host de VPC compartida.
    • [REGION] por la región que contiene la subred compartida.
    • [SUBNET] por el nombre de la subred compartida.

Crear un balanceador de carga interno

En el procedimiento siguiente se describe cómo crear un balanceador de carga interno cuya regla de reenvío utiliza una subred en el proyecto del host de VPC compartida. Ten en cuenta que la propia regla de reenvío sigue definida en el proyecto de servicio y que las reglas de reenvío internas son las únicas que utilizan la referencia de subred.

Antes de crear un balanceador de carga interno en un proyecto del host, se recomienda revisar la información siguiente:

Consola

  1. Visita la página Balanceo de carga en la consola de Google Cloud Platform.
    Ir a la página Balanceo de carga

  2. Efectúa el procedimiento general para crear un balanceador de carga interno con el ajuste siguiente:

    • En la sección para configurar servicios de frontend, selecciona la subred de la VPC compartida que necesitas en Redes compartidas con otros proyectos dentro del menú Subred.
  3. Termina de crear el balanceador de carga interno.

gcloud

Los administradores de proyectos de servicio pueden crear un balanceador de carga interno en una subred del proyecto del host a la que tengan acceso. Efectúa el procedimiento general para crear un balanceador de carga interno, pero especifica una subred de la VPC compartida con el argumento --subnet cuando crees la regla de reenvío.

gcloud compute forwarding-rules create [FR_NAME] \
    --project [SERVICE_PROJECT_ID] \
    --load-balancing-scheme internal \
    --region [REGION] \
    --ip-protocol [IP_PROTOCOL] \
    --ports PORT,[PORT,…] \
    --backend-service [BACKEND_SERVICE_NAME] \
    --subnet projects/[HOST_PROJECT_ID]/regions/[REGION]/subnetworks/[SUBNET] \
    --address [INTERNAL_IP]

donde harías la siguiente sustitución:

  • [FR_NAME] por el nombre de la regla de reenvío.
  • [SERVICE_PROJECT_ID] por el ID del proyecto de servicio.
  • [REGION] por la región que contiene la subred compartida.
  • [IP_PROTOCOL] por el protocolo de IP que vas a utilizar, siendo TCP el predeterminado.
  • [PORT] por el puerto o lista de puertos numéricos para el balanceador de carga.
  • [BACKEND_SERVICE_NAME] por el nombre del servicio de backend (que ya se ha creado en el procedimiento general para crear un balanceador de carga interno).
  • [HOST_PROJECT_ID] por el ID del proyecto del host de VPC compartida.
  • [SUBNET] por el nombre de la subred compartida.
  • [INTERNAL_IP] por una dirección IP interna en la subred compartida. Si no se especifica, se seleccionará una disponible.

Consulta esta página para conocer más opciones que utilizar con gcloud compute forwarding-rules create.

Siguientes pasos

¿Te ha resultado útil esta página? Enviar comentarios: