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.
- Para que el balanceo de carga interno esté disponible dentro del proyecto del host de la VPC compartida, su regla de reenvío debe hacer referencia a una subred de la red de la VPC compartida. Consulta el ejemplo de balanceador de carga interno en este documento para ver más detalles.
-
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.
-
Indica tus credenciales de autenticación en
gcloud
como administrador de la organización o miembro de IAM con la funciónorgpolicy.policyAdmin
. Sustituye[ORG_ADMIN]
por el nombre de un administrador de la organización:gcloud auth login [ORG_ADMIN]
-
Determina el número de ID de la organización a través del resultado de este comando:
gcloud organizations list
-
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
-
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
- 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 - En el menú de proyectos, selecciona tu organización.
Si seleccionas un proyecto, no verás las entradas correctas en el menú Funciones. - Haz clic en Añadir.
- Escribe las direcciones de correo electrónico de los miembros.
- En Funciones, selecciona Compute Engine > Administrador de VPC compartidas de Compute.
- Haz clic en Añadir.
gcloud
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]
Determina el número de ID de la organización a través del resultado de este comando:
gcloud organizations list
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"
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
- Visita la página de la VPC compartida en la consola de Google Cloud Platform.
Ir a la página de VPC compartida - Inicia sesión como administrador de VPC compartidas.
- Selecciona el proyecto que vas a habilitar como proyecto del host de la VPC compartida en el selector de proyectos.
- Haz clic en Configurar VPC compartida.
- En la página siguiente, haz clic en Guardar y continuar en Habilitar el proyecto del host.
- En Seleccionar subredes, efectúa los pasos siguientes:
- 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.
- 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.
- Haz clic en Continuar.
Se mostrará la pantalla siguiente. - 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.
- 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. - Haz clic en Guardar.
gcloud
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]
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]
Confirma que el proyecto aparece como proyecto del host para tu organización. Sustituye
[ORG_ID]
por el ID de tu organización (determinado porgcloud organizations list
).gcloud compute shared-vpc organizations list-host-projects [ORG_ID]
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
- Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
- 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 - Haz clic en la pestaña Proyectos vinculados.
- Una vez que has entrado en la pestaña del paso anterior, haz clic en el botón Proyectos vinculados.
- 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.
- 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. - En la sección de modo de uso compartido de la red de VPC, selecciona una de las opciones siguientes:
- 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.
- 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.
- Haz clic en Guardar.
gcloud
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]
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]
Confirma que se ha vinculado el proyecto de servicio.
gcloud compute shared-vpc get-host-project [SERVICE_PROJECT_ID]
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]
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.
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]
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.
- Utiliza
Repite el paso anterior para cada administrador de proyectos de servicio que necesites definir.
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.
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]
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
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
.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:
porgroup:
para especificar un grupo de Google (mediante dirección de correo electrónico) como miembro. - Utiliza
user:
pordomain:
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.
- Cambia
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]
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:
-
Cuentas de servicio administradas por usuarios con este formato:
[USER_ID]@[SERVICE_PROJECT_ID].iam.gserviceaccount.com
-
La cuenta de servicio de Compute Engine predeterminada, que es un tipo de cuenta de servicio de API de Google con este formato:
[SERVICE_PROJECT_NUMBER]@cloudservices.gserviceaccount.com
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
- Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
- Visita la página de configuración en la consola de Google Cloud Platform.
Ir a la página Configuración - Cambia el proyecto al proyecto de servicio que contiene la cuenta de servicio que debe definirse como administrador de proyectos de servicio.
- 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]
. - Cambia el proyecto al proyecto del host de VPC compartido.
- Visita la página de IAM en la consola de Google Cloud Platform.
Ir a la página de IAM - Haz clic en Añadir.
- 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. - En el menú Funciones, selecciona Compute Engine > Usuario de red de Compute.
- Haz clic en Añadir.
gcloud
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]
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
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
- Inicia sesión en la consola de Google Cloud Platform como administrador de VPC compartidas.
- Visita la página de configuración en la consola de Google Cloud Platform.
Ir a la página Configuración - Cambia el proyecto al proyecto de servicio que contiene la cuenta de servicio que debe definirse como administrador de proyectos de servicio.
- 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]
. - Cambia el proyecto al proyecto del host de VPC compartido.
- Visita la página de IAM en la consola de Google Cloud Platform.
Ir a la página de IAM - Haz clic en Añadir.
- Añade
[SERVICE_PROJECT_NUMBER]@cloudservices.gserviceaccount.com
al campo Miembros. - En el menú Funciones, selecciona Compute Engine > Usuario de red de Compute.
- Haz clic en Añadir.
gcloud
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]
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
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
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]
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
- 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 - Haz clic en Crear.
- Escribe el nombre de la instancia.
- Haz clic en Administración, discos, redes, claves SSH.
- Haz clic en Redes.
- Haz clic en el botón de selección Redes compartidas conmigo.
- Selecciona la subred compartida donde vas a crear la instancia.
- Especifica cualquier otro parámetro necesario de la instancia.
- 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
- Visita la página Plantillas de instancias en la consola de Google Cloud Platform.
Ir a la página Plantillas de instancia - Haz clic en Crear plantilla de instancia.
- Especifica un nombre para la plantilla de instancia.
- Haz clic en Administración, discos, redes, claves SSH.
- Haz clic en Redes.
- Haz clic en el botón de selección Redes compartidas conmigo.
- Selecciona la subred compartida donde vas a crear la plantilla de instancia.
- Especifica cualquier otro parámetro necesario de la plantilla de instancia.
- 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:
-
El procedimiento general para crear un balanceador de carga interno.
-
Los límites operativos de la VPC compartida. Ten en cuenta que solo puedes crear un balanceador de carga interno en una subred del proyecto del host. Para todos los demás tipos de balanceadores de carga, debes crear sus recursos por completo dentro de los proyectos de servicio donde se encuentren las instancias de backend.
Consola
Visita la página Balanceo de carga en la consola de Google Cloud Platform.
Ir a la página Balanceo de cargaEfectú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.
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, siendoTCP
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
- Para obtener instrucciones sobre cómo eliminar una configuración de VPC compartida, consulta Eliminar la configuración de una VPC compartida.