Configura el acceso privado a los servicios

El acceso privado a los servicios es una conexión privada entre tu red de VPC y una red de Google o terceros. Las entidades que ofrecen servicios, como Google o terceros, también se conocen como productores de servicios. La conexión privada permite que las instancias de VM en la red de VPC y los servicios a los que accedes se comuniquen de forma exclusiva mediante direcciones IP internas. Las instancias de VM no necesitan acceso a Internet o direcciones IP externas para alcanzar los servicios que están disponibles a través del acceso privado a los servicios.

Para obtener más información sobre el acceso privado a los servicios y otras opciones de acceso privado, consulta Opciones de acceso privado a los servicios.

En un nivel alto, para usar el acceso privado a los servicios, debes asignar un rango de direcciones IP (bloque CIDR) en tu red de VPC y, luego, crear una conexión privada con un productor de servicios.

Antes de comenzar

Para establecer una conexión privada, completa los siguientes requisitos previos:

  • Verifica que el servicio que usas admita el acceso privado a los servicios.
  • Debes tener una red de VPC existente que usarás para conectarte a la red del productor de servicios. Las instancias de VM deben usar esta red de VPC para conectarse a los servicios mediante una conexión privada.
  • Activa la API de Herramientas de redes de servicios en el proyecto. La API es necesaria para crear una conexión privada.
  • Crea un proyecto de Google Cloud o usa uno existente. Para obtener información sobre cómo crear un proyecto de Cloud, consulta Crea y administra proyectos.
  • Instala la CLI de gcloud si deseas ejecutar los ejemplos de la línea de comandos de gcloud de esta guía.

Permisos

Los propietarios del proyecto y los miembros de IAM que tengan la función de administrador de red de Compute (roles/compute.networkAdmin) pueden crear rangos de direcciones IP asignados y administrar conexiones privadas.

Para obtener más información sobre las funciones, consulta la documentación de funciones de IAM de VPC.

Situación de VPC compartida

Si usas una VPC compartida, crea el rango de IP asignado y la conexión privada en el proyecto host. Por lo general, un administrador de red en el proyecto host debe realizar estas tareas. Después de configurar el proyecto host, las instancias de VM en proyectos de servicio pueden usar la conexión privada.

Cuotas y límites

Debido a que una conexión privada se implementa como una conexión de intercambio de tráfico de VPC, los mismos límites y cuotas que se aplican al intercambio de tráfico entre redes de VPC también se aplican al acceso privado a los servicios.

Rangos de direcciones IP asignados para servicios

Antes de crear una conexión privada, debes asignar un rango de direcciones IPv4 para que la red de VPC del productor de servicios lo use. Esto garantiza que no haya una colisión de direcciones IP entre tu red de VPC y la red del productor de servicios. Crea un rango asignado para cada productor de servicios.

Cuando asignas un rango en tu red de VPC, ese rango no es apto para subredes (rangos principales y secundarios) ni los destinos de las rutas estáticas personalizadas.

No se admite el uso de rangos de direcciones IPv6 con acceso privado a servicios.

Tamaño del rango de direcciones IP

Rangos de acceso privado a los servicios (haz clic para ampliar)

Cuando un productor de servicios crea una subred en su lado de la conexión, se selecciona un rango abierto de la asignación para el rango de direcciones IP de la subred.

Cada productor de servicios requiere un tamaño mínimo de rango de direcciones IP. Para Google, el tamaño mínimo es un bloque único de /24 (256 direcciones), pero el tamaño recomendado es un bloque de /16 (65,536 direcciones).

El tamaño que elijas depende de varios factores, por ejemplo:

  • La cantidad de servicios y regiones que usas.
  • Los requisitos para los servicios que usas.
    • El tamaño mínimo del rango de direcciones IP para los servicios.
    • Si el proveedor de servicios requiere rangos de IP independientes para cada instancia del servicio que creas o si puede usar el mismo rango de IP para varias instancias del servicio.

Si no tienes un bloque /16 contiguo, puedes comenzar con una asignación más pequeña y agregar nuevas si necesitas más direcciones IP más adelante.

Acerca de la subred del productor de servicios

Cuando estableces una conexión privada y creas un recurso con una dirección IP privada, el servicio crea una subred para aprovisionar el recurso. El servicio selecciona un rango de direcciones IP disponibles del rango asignado. No puedes seleccionar o modificar el rango de direcciones IP de la subred del productor de servicios. El servicio borra la subred solo cuando borras todos los recursos en ella.

A medida que aprovisionas recursos adicionales, el servicio los aprovisiona en subredes regionales existentes que creaste antes. Si una subred está llena, el servicio crea una nueva en esa región.

Consideraciones

Antes de asignar un rango de direcciones IP, considera las siguientes restricciones:

  • Selecciona un rango que no se superponga con rangos asignados existentes, subredes o rutas estáticas personalizadas. No se pueden superponer dos rangos.
  • Selecciona un rango que no entre en conflicto con tus otras necesidades de dirección IP:
    • Algunos productos de Google y de terceros usan 172.17.0.0/16 para el enrutamiento dentro del sistema operativo invitado. Por ejemplo, la red predeterminada del puente Docker usa este rango. Si dependes de un producto que usa 172.17.0.0/16, no uses 172.17.0.0/16 en un rango asignado para el acceso privado a servicios.
    • Si usas una red de VPC de modo automático, no puedes crear un rango asignado que coincida o se superponga con 10.128.0.0/9. Google usa el rango 10.128.0.0/9 para subredes creadas de forma automática, incluidas las de regiones futuras.
  • Selecciona un bloque CIDR que sea lo suficientemente grande para satisfacer tus necesidades actuales y futuras. Si luego descubres que el rango no tiene el tamaño suficiente, expándelo de ser posible. Aunque puedes establecer varias asignaciones en un solo productor de servicios, Google aplica una cuota a la cantidad de rangos de direcciones IP que puedes asignar, pero no al tamaño (máscara de red) de cada rango.
  • Si agregas un rango asignado adicional a una conexión privada, se expande el rango de direcciones IP disponibles para el productor de servicios cuando crea recursos de servicio nuevos para cualquier servicio que proporcione. No puedes reservar un rango asignado específico dentro de una conexión privada para que lo use un servicio en particular.
  • No vuelvas a usar el mismo rango asignado para varios productores de servicios. Aunque es posible, hacerlo puede superponer las direcciones IP. Cada productor de servicios puede visualizar solo su red y no puede saber qué direcciones IP usan otros productores de servicios.
  • Solo puedes asignar un bloque CIDR a un rango asignado cuando creas la asignación. Si necesitas expandir el rango de direcciones IP, no puedes agregar más bloques a una asignación. En cambio, puedes crear otra asignación o volver a crear la existente mediante el uso de un bloque más grande que abarque los rangos nuevos y existentes.
  • Si tú mismo creas la asignación en lugar de que lo haga Google (como a través de Cloud SQL), puedes usar la misma convención de nombres a fin de indicar a otros usuarios o servicios de Google que ya existe una asignación para Google. Cuando un servicio de Google asigna un rango en tu nombre, el servicio usa el siguiente formato para otorgarle un nombre a la asignación: google-managed-services-[your network name]. Si esta asignación existe, los servicios de Google usan la existente en lugar de crear otra.
  • Debido a que las conexiones privadas se implementan como conexiones de intercambio de tráfico entre redes de VPC, los comportamientos y las restricciones de las conexiones de intercambio de tráfico también se aplican a las conexiones privadas, como los límites del intercambio de tráfico entre redes de VPC.
  • Si planeas cambiar la dirección IP interna de una instancia de servicio existente que usa VPC, considera si esta acción puede ser perjudicial, por ejemplo, si requiere que se borre y se vuelva a crear la instancia de servicio. Para obtener más información, revisa la documentación del servicio administrado asociado. Por ejemplo, si usas Cloud SQL, consulta Cambia la dirección IP privada de una instancia de Cloud SQL existente.

Crea una asignación de IP

En los pasos siguientes, se describe cómo crear un rango de direcciones IP asignado.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que se conectará a un productor de servicios.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Rangos de IP asignados para servicios.

  5. Haz clic en Rango de IP asignado.

  6. Ingresa un Nombre y una Descripción para el rango asignado.

  7. Especifica un Rango de IP para la asignación:

    • Para especificar un rango de direcciones IP, selecciona Personalizado y luego ingresa un bloque CIDR, como 192.168.0.0/16.
    • Para especificar la longitud de un prefijo y permitir que Google seleccione un rango disponible, selecciona Automático y luego ingresa la longitud de un prefijo, como 16.
  8. Haz clic en Asignar para crear un rango asignado.

gcloud

Para crear un rango asignado en tu red de VPC, usa el comando addresses create.

  • Para especificar un rango de dirección y una longitud de prefijo (máscara de subred), usa las marcas addresses y prefix-length. Por ejemplo, a fin de asignar el bloque CIDR 192.168.0.0/16, especifica 192.168.0.0 para la dirección y 16 como la longitud de prefijo.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    
  • Para especificar solo una longitud de prefijo (máscara de subred), usa la marca prefix-length. Cuando omites el rango de direcciones, Google Cloud selecciona de forma automática un rango de direcciones sin usar en tu red de VPC. En el siguiente ejemplo, se selecciona un rango de direcciones IP sin usar con una longitud de prefijo de 16 bits.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    

Reemplaza lo siguiente:

  • RESERVED_RANGE_NAME es un nombre para el rango asignado, como my-allocated-range.

  • DESCRIPTION una descripción para el rango, como allocated for my-service.

  • VPC_NETWORK es el nombre de la red de VPC, como my-vpc-network.

En el siguiente ejemplo, se crea una conexión privada a Google para que las instancias de VM en la red de VPC my-network puedan usar el acceso privado a los servicios a fin de llegar a los servicios de Google que la admiten.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network

Terraform

Para crear un rango asignado en tu red de VPC, usa el recurso google_compute_global_address.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Si ves un error sobre el permiso compute.globalAddresses.list del proyecto, consulta Permisos de la cuenta de servicio.

Enumera rangos de direcciones IP asignados

Para enumerar los rangos de direcciones IP asignados, usa el comando addresses list.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Crea una conexión privada

Después de crear un rango asignado, puedes crear una conexión privada a un productor de servicios. La conexión privada establece una conexión de intercambio de tráfico de red de VPC entre tu red de VPC y la red del productor de servicios.

Las conexiones privadas constituyen una relación uno a uno entre tu red de VPC y el productor de servicios. Si un solo productor de servicios ofrece varios servicios, solo necesitas una conexión privada para todos los servicios del productor.

Si un solo productor de servicios ofrece varios servicios y deseas controlar qué rangos asignados se usan para diferentes recursos de servicios, puedes usar varias redes de VPC, cada una con sus propias conexiones privadas. Esta configuración te permite seleccionar una red en particular cuando creas un recurso de servicio administrado nuevo a fin de garantizar que se usen los rangos asignados asociados para el recurso nuevo.

Si te conectas a varios productores de servicios, usa una asignación única para cada uno de ellos. Esta práctica te ayuda a administrar la configuración de la red, como las rutas y las reglas de firewall, para cada productor de servicios.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que se conectará a un productor de servicios.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios.

  5. Haz clic en Crear una conexión para crear una conexión privada entre tu red y un productor de servicios.

  6. Para la Asignación designada, selecciona uno o más rangos asignados existentes que no estén siendo usados por otros productores de servicios.

  7. Haz clic en Conectar para crear la conexión.

gcloud

  1. Usa el comando vpc-peerings connect

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    Reemplaza lo siguiente:

    • RESERVED_RANGE_NAME es el nombre de uno o más rangos asignados.

    • VPC_NETWORK es el nombre de tu red de VPC.

    El comando inicia una operación de larga duración y, luego, muestra un nombre de operación.

  2. Para verificar si la operación se realizó de forma correcta, usa el comando vpc-peerings operations describe.

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    Reemplaza OPERATION_NAME por el nombre de la operación que se mostró en el paso anterior.

Puedes especificar más de un rango asignado cuando creas una conexión privada. Por ejemplo, si se agotó un rango, puedes asignar rangos adicionales. El servicio usará direcciones IP de todos los rangos proporcionados en el orden que especificaste.

Terraform

Para crear una conexión privada, usa el recurso google_service_networking_connection.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Enumera conexiones privadas

Después de crear una conexión privada, puedes colocarla en una lista para verificar que existe. La lista también muestra los rangos asignados asociados a cada conexión. Por ejemplo, si no recuerdas qué rango asignado designaste a una conexión, consulta la lista para saberlo.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que contiene las conexiones.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios para ver todas las conexiones privadas de la red.

gcloud

Usa el comando vpc-peerings list

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

Reemplaza VPC_NETWORK por el nombre de la red de VPC.

Modifica una conexión privada

En el caso de las conexiones privadas existentes, puedes agregar o quitar rangos de direcciones IP asignados sin interrumpir el tráfico. Por ejemplo, a medida que escalas, puede agregar un rango asignado si estás a punto de agotar el existente.

No puedes quitar rangos de IP asignados mediante la consola de Google Cloud. Si deseas quitar un rango asignado, usa las instrucciones de gcloud para modificar la conexión. Cuando quitas un rango de una conexión privada, se aplica lo siguiente:

  • El rango asignado ya no está asociado a la conexión privada, pero no se borra.

  • Los recursos existentes del productor del servicio pueden seguir usando el rango que se quitó.

  • El acceso a servicios privados no usará los rangos que se quitaron para asignar subredes nuevas.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que contiene las conexiones.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios para ver todas las conexiones privadas de la red.

  5. Haz clic en el nombre de una conexión de la lista.

  6. En el menú desplegable Asignación designada, selecciona los rangos que deseas asignar.

  7. Haz clic en Aceptar.

gcloud

Para agregar o quitar rangos de direcciones IP asignados en una conexión privada existente, usa el comando vpc-peerings update.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    [--force]

Reemplaza lo siguiente:

  • RESERVED_RANGE_NAME es una lista de uno o más nombres de rangos asignados para asignarlos a la conexión privada.

    RESERVED_RANGE_NAME reemplaza la lista anterior de rangos asignados. Si omites un rango que estaba asociado con esta conexión privada, el rango se quitará de la conexión. Debes usar la opción --force para quitar un rango.

  • VPC_NETWORK es el nombre de tu red de VPC.

Borra un rango de direcciones IP asignado

Antes de borrar un rango de direcciones IP asignado, verifica si el rango lo usa una conexión privada.

Si el rango de direcciones IP asignado está en uso, primero modifica la conexión privada para quitar el rango. Luego, borra el rango de direcciones IP asignado.

Si borras una dirección IP asignada que está en uso y no modificas la conexión privada, se aplica lo siguiente:

  • Las conexiones existentes permanecen activas, pero nada impide que la red de VPC use direcciones IP que se superpongan con la red del productor de servicios.

  • Si borras el único rango de direcciones IP asignado que está asociado a una conexión privada, el servicio no podrá crear subredes nuevas porque no hay un rango de direcciones IP asignado para seleccionar.

  • Si luego creas un rango de direcciones IP asignado que coincide con el rango borrado o se superpone, agregar el rango a una conexión privada fallará.

Para evitar estos problemas, modifica siempre las conexiones privadas cuando borres un rango de direcciones IP asignado en uso.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que contiene las asignaciones que quieres borrar.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Rangos de IP asignados para servicios.

  5. Selecciona la asignación para borrar.

  6. Haz clic en Liberar para mostrar el rango de direcciones IP asignado al conjunto de direcciones IP internas disponibles de la red.

    Si el rango de direcciones IP sigue asignado a una conexión existente, debes ingresar una confirmación adicional antes de poder liberar la asignación.

  7. Vuelve a hacer clic en Liberar para confirmar la eliminación.

gcloud

Borra la asignación especificando el nombre de tu asignación.

gcloud compute addresses delete NAME \
    --global

Reemplaza NAME por el nombre del rango asignado que deseas borrar.

Borrar una conexión privada

Antes de borrar una conexión privada, debes borrar todas las instancias de servicio a las que accedes a través de la conexión. Por ejemplo, si deseas borrar una conexión privada que se usa para acceder a Cloud SQL, primero debes borrar las instancias de Cloud SQL que usan esa conexión. Después de borrar las instancias de servicio, se borran los recursos del productor de servicios, pero esta eliminación puede no ocurrir de inmediato. Algunos productores de servicios retrasan la eliminación hasta que haya pasado un período de espera. No puedes borrar la conexión privada durante el período de espera. Debes esperar hasta que se hayan borrado los recursos del productor de servicios para poder borrar la conexión.

Por ejemplo, si borras una instancia de Cloud SQL, recibirás una respuesta exitosa, pero el servicio esperará cuatro días antes de borrar los recursos del productor de servicios. El período de espera significa que, si cambias de opinión sobre la eliminación del servicio, puedes solicitar restablecer los recursos. Si intentas borrar la conexión durante el período de espera, la eliminación fallará con un mensaje que indica que el productor de servicios aún usa los recursos.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Selecciona la red de VPC que contiene las conexiones que quieres borrar.

  3. Selecciona la pestaña Conexión privada a servicios.

  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexión privada a servicios.

  5. Selecciona la conexión privada que quieres borrar.

  6. Haz clic en Borrar para eliminarla.

  7. Vuelve a hacer clic en Borrar para confirmar la eliminación.

gcloud

Para borrar la conexión de intercambio de tráfico de red de VPC de una conexión privada, usa el comando vpc-peerings delete.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

Reemplaza VPC_NETWORK por el nombre de la red de VPC.

Comparte zonas DNS privadas con los productores de servicios

Las zonas privadas de Cloud DNS son privadas para tu red de VPC. Si quieres permitir que una red del productor de servicios resuelva nombres de tu zona privada, puedes configurar el intercambio de tráfico de DNS entre las dos redes.

Cuando configuras el intercambio de tráfico de DNS, proporcionas una red de VPC y un sufijo DNS. Si el productor de servicios necesita resolver una dirección con ese sufijo DNS, deberá reenviar esas búsquedas a la red de VPC.

Estos servicios compatibles admiten el intercambio de tráfico de DNS, excepto Cloud SQL.

Si deseas habilitar el intercambio de tráfico de DNS, debes habilitar la API de Cloud DNS en tu proyecto.

Intercambia tráfico de DNS con un productor de servicios

gcloud

Para configurar el intercambio de tráfico de DNS entre tu red de VPC y la red del proveedor de servicios, usa el comando peered-dns-domains create.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

Reemplaza lo siguiente:

  • PEERING_NAME es un nombre para esta configuración de intercambio de tráfico de DNS.

  • VPC_NETWORK es el nombre de tu red de VPC que está conectada al productor de servicios mediante el acceso privado a servicios.

  • DNS_SUFFIX es el sufijo de DNS que quieres intercambiar con el productor de servicios. Debes proporcionar un nombre de dominio DNS completo, incluido el punto. Por ejemplo, example.com. es un sufijo de DNS válido.

Terraform

Para configurar el intercambio de tráfico de DNS entre tu red de VPC y la red del proveedor de servicios, usa el recurso google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Enumera las configuraciones de intercambio de tráfico de DNS

gcloud

Usa el comando peered-dns-domains list

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

Reemplaza VPC_NETWORK por el nombre de la red de VPC.

Borra una configuración de intercambio de tráfico de DNS

gcloud

Usa el comando peered-dns-domains delete

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

Reemplaza lo siguiente:

  • PEERING_NAME es el nombre de la configuración del intercambio de tráfico de DNS.

  • VPC_NETWORK es el nombre de tu red de VPC.

Soluciona problemas

¿Qué cantidad de mi asignación se utiliza?

Cuando creas una conexión privada con un productor de servicios, le asignas un rango de direcciones IP para que use. Si usas servicios múltiples de un productor de servicios, cada uno reservará un fragmento de direcciones IP de ese rango asignado. Puedes revisar qué direcciones IP usan los servicios para que, por ejemplo, puedas ver qué servicios usan grandes bloques de direcciones IP y evitar su agotamiento.

Cómo ver qué servicio usa un rango de direcciones IP en particular:

  1. Genera una lista de tus conexiones privadas.
  2. Busca el nombre de la conexión de intercambio de tráfico que te conecta al productor de servicios relevante.
  3. Genera una lista con las rutas para tu red de VPC.
  4. Encuentra las rutas con un salto siguiente que coinciden con el nombre de la conexión de intercambio de tráfico. El rango de destino de las rutas indica las direcciones IP que usa cada servicio.

Agotamiento del rango de direcciones IP

Para una conexión privada determinada, si agotas el espacio de direcciones IP asignadas, Google Cloud mostrará este error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges..

Puedes expandir la asignación existente o agregar otras nuevas. La asignación expandida debe ser un rango de direcciones IP contiguo que incluya el rango existente. Se recomienda expandir una asignación porque no existe un límite en el tamaño de una asignación, aunque existe un límite en la cantidad de asignaciones que puedes crear.

Para expandir una asignación existente, sigue estos pasos:

  1. Genera una lista de las conexiones privadas y registra el nombre del rango asignado que necesitas expandir.
  2. Borra el rango asignado existente.
  3. Crea un rango asignado nuevo con el mismo nombre que el rango borrado. Especifica un rango de direcciones IP que incluya el rango de direcciones IP que se borró. De esa manera, los recursos de intercambio de tráfico existentes que usan el rango asignado anterior pueden seguir usando las mismas direcciones IP sin entrar en conflicto con los recursos de la red de VPC. Por ejemplo, si el rango asignado con anterioridad era 192.168.0.0/20, crea un rango asignado nuevo como 192.168.0.0/16.

Para agregar rangos asignados a una conexión privada existente, sigue estos pasos:

  1. Crea un rango asignado nuevo. Este rango no tiene que ser contiguo a los rangos asignados existentes.
  2. Agrega el rango asignado a la conexión privada existente.

Los hosts locales no pueden comunicarse con la red del productor de servicios

Es posible que la red del productor de servicios no tenga las rutas correctas para dirigir el tráfico a tu red local. De forma predeterminada, la red del productor de servicios solo aprende las rutas de la subred desde tu red de VPC. Por lo tanto, el productor de servicios descarta cualquier solicitud que no sea de un rango de IP de subred.

En tu red de VPC, actualiza la conexión de intercambio de tráfico para exportar rutas personalizadas a la red del productor de servicios. La exportación de rutas envía todas las rutas estáticas y dinámicas aptas que se encuentran en la red de VPC, como las rutas a tu red local, a la red del productor de servicios. La red del productor de servicios los importa de forma automática y, luego, puede enviar el tráfico a tu red local a través de la red de VPC.

Permisos de las cuentas de servicio

Si ves un error sobre el permiso compute.globalAddresses.list para un proyecto cuando creas una asignación de IP o si experimentas errores como Error 400: Precondition check failed mientras creas, enumeras o modificas las conexiones privadas, podría ser un problema con los roles de Identity and Access Management (IAM) para la cuenta de servicio de la API de Service Networking. Esta cuenta de servicio se crea automáticamente después de que habilitas la API de Service Networking. La cuenta puede tardar un tiempo en aprovisionarse y mostrarse en la página IAM.

Console

Para asegurarte de que la cuenta de servicio tenga el rol de IAM correcto, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. Selecciona la casilla de verificación Incluir asignaciones de funciones proporcionadas por Google.

  3. En la columna Nombre, busca la principal del Agente de servicio de Service Networking y haz clic en Editar principal en la fila correspondiente.

  4. En el campo Rol, asegúrate de que esté presente el rol Agente de servicio de Service Networking (roles/servicenetworking.serviceAgent).

  5. Si el rol Agente de servicio de Service Networking no está presente, haz clic en Agregar rol o Agregar otro rol.

  6. Haga clic en Selecciona un rol.

  7. En el cuadro de texto Filtro, ingresa Service Networking Service Agent.

  8. Selecciona Agente de servicio de Service Networking en la lista y, luego, haz clic en Guardar.

gcloud

Para crear una cuenta de servicio de la API de Service Networking, usa el comando add-iam-policy-binding.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

Reemplaza lo siguiente:

  • HOST_PROJECT_NAME: el nombre del proyecto host
  • HOST_PROJECT_NUMBER: el número del proyecto host

La ruta de subred de intercambio de tráfico persiste después de actualizar la asignación de IP

Después de actualizar el rango de direcciones IP asignado de una conexión privada a servicios, es posible que la ruta de subred de intercambio de tráfico anterior aún aparezca en la tabla de enrutamiento de tu red de VPC. La ruta persiste porque el rango de direcciones IP aún está en uso.

Para solucionar este problema, haz lo siguiente:

La ruta de subred de intercambio de tráfico se quita de forma automática después de que el rango de direcciones IP ya no está en uso. Puede haber una demora entre la eliminación del recurso y el productor de servicios que lo borra por completo. Por ejemplo, si una instancia de Cloud SQL usa el rango de direcciones IP anterior, el productor de servicios puede tardar hasta cuatro días en borrar por completo tu instancia. La ruta de subred de intercambio de tráfico se quita después de que se completa la eliminación.