Configura una conectividad privada a los servicios y las API de Google

En este documento, se describe cómo configurar la conectividad privada de hosts en una red de VPC o una red local a los servicios y las API de Google que son compatibles con los Controles del servicio de VPC.

Antes de leer este documento, te recomendamos que te familiarices con los conceptos de Acceso privado a Google, las especificaciones y la configuración de red. Consulta ejemplos de diagramas de topología sobre el uso del Acceso privado a Google con los Controles del servicio de VPC.

Antes de comenzar

  • Habilita las API a las que deseas acceder a través de la página de API y servicios en la consola de Google Cloud.
  • Asegúrate de tener la función necesaria para crear o actualizar las subredes. Los propietarios del proyecto, los editores y las principales de IAM con la función de administrador de red pueden crear o actualizar las subredes y asignar direcciones IP. Para obtener más información sobre las funciones, consulta la documentación sobre las funciones de IAM.
  • Verifica que una red de VPC esté configurada para el Acceso privado a Google y el Acceso privado a Google para los hosts locales. Se admiten las redes de VPC en modo automático y personalizado. No se admiten las redes heredadas.
  • Asegúrate de que las instancias de VM en una red de VPC tengan una dirección IP privada (sin dirección IP pública) y que estén en una subred que tenga habilitado el Acceso privado a Google.
  • Para los hosts locales, asegúrate de tener una Cloud VPN existente. túnel o una conexión de Cloud Interconnect a tu de VPC de Google Cloud. Para admitir hosts locales que tienen direcciones IPv6 consulta Compatibilidad con IPv6.

Descripción general del procedimiento

Para configurar la conectividad privada, completa las siguientes tareas:

  • Configura las rutas para los restricted.googleapis.com rangos de direcciones IP. Para para obtener más información, consulta Cómo configurar rutas.
  • Configura reglas de firewall para permitir que el tráfico adecuado llegue restricted.googleapis.com de rangos de direcciones IP. Para obtener más información, consulta Configura reglas de firewall.
  • Configura el DNS para que el tráfico hacia las APIs de Google se resuelva en restricted.googleapis.com de rangos de direcciones IP. Para obtener más información, consulta Configura el DNS.

Compatibilidad con IPv6 para restricted.googleapis.com

Puedes acceder a las APIs de Google usando el rango de direcciones IPv6 para el dominio restricted.googleapis.com: 2600:2d00:0002:1000::/64.

Considera configurar las direcciones IPv6 si deseas usar el dominio restricted.googleapis.com tener clientes que usan direcciones IPv6. Los clientes IPv6 que también tienen direcciones IPv4 configuradas pueden acceder a los servicios y las APIs de Google mediante las direcciones IPv4. No todos los servicios aceptan tráfico de clientes IPv6.

Permitir que los clientes IPv6 de tu entorno local accedan a las APIs de Google con restricted.googleapis.com, debes configurar la conexión a tu VPC red de VPC para admitir IPv6. Si deseas obtener más información, consulta las siguientes páginas:

Los clientes locales pueden enviar solicitudes desde cualquier dirección IPv6 GUA o ULA, excepto el rango ULA fda3:e722:ac3:cc00::/64, que está reservado para uso interno.

Para obtener más información sobre la VIP de restricted.googleapis.com, consulta Cómo configurar Acceso privado a Google.

Conectividad directa a APIs y servicios

Algunos servicios y APIs de Google ofrecen conectividad directa desde Compute Engine de máquina virtual (VM), con el fin de evitar Google Front End (GFE). Permitir debes asegurarte de que tus rutas y reglas de firewall permitan tráfico para llegar a 34.126.0.0/18 y 2001:4860:8040::/42. No es necesario crear registros DNS para estas direcciones. Varios servicios de Google Cloud servicios compatibles con la conectividad directa para mejorar el rendimiento de Google APIs de gRPC. Para habilitar este rendimiento mejorado, debes proporcionar acceso al rangos de direcciones IP específicos.

La conectividad directa solo es compatible con los recursos de Google Cloud. No puedes usar conectividad directa desde hosts locales.

Los servicios que ofrecen conectividad directa con los Controles del servicio de VPC.

Configura rutas a restricted.googleapis.com

Aunque los Controles del servicio de VPC se aplican servicios, independientemente del dominio que uses, restricted.googleapis.com proporciona una mitigación adicional del riesgo de robo de datos. restricted.googleapis.com rechaza el acceso a los servicios y a las API de Google que no son compatibles con los Controles del servicio de VPC.

Para el Acceso privado a Google y el Acceso privado a Google para el entorno local de VPC, tu red de VPC debe incluir una ruta para la restricted.googleapis.com rangos de direcciones IP cuyo próximo salto es el predeterminado puerta de enlace de Internet. Aunque el próximo salto es una puerta de enlace de Internet predeterminada, el el tráfico que se envía a restricted.googleapis.com permanece dentro de la red de Google.

Si tu red de VPC no tiene un default route cuyo próximo salto es el puerta de enlace de Internet predeterminada, puedes crear una ruta estática es el rango de direcciones IP restricted.googleapis.com y cuyo próximo salto es el de Internet predeterminada. Para evitar el acceso a Internet, debes quitar a otras rutas cuyo próximo salto sea la puerta de enlace de Internet predeterminada.

Para obtener más información sobre cómo trabajar con rutas de VPC, consulta Usa rutas en la documentación de VPC.

Configurar rutas estáticas personalizadas en una red de VPC

Agrega rutas estáticas personalizadas para habilitar el acceso a los servicios administrados por Google que son compatibles con los Controles del servicio de VPC.

gcloud compute routes create ROUTE_NAME \
  --network=NETWORK_NAME \
  --destination-range=DESTINATION_RANGE \
  --next-hop-gateway=default-internet-gateway

Reemplaza lo siguiente:

  • ROUTE_NAME: Es un nombre para la ruta personalizada.
  • NETWORK_NAME es el nombre de tu red de VPC.
  • DESTINATION_RANGE: El rango de destino de la ruta
    • Para enrutar el tráfico a la VIP de restricted.googleapis.com, usa el siguiente comando: intervalos:
      • Para el tráfico IPv4: 199.36.153.4/30
      • Para el tráfico IPv6: 2600:2d00:0002:1000::/64
    • Para enrutar el tráfico a las APIs que permiten el tráfico directo conectividad, usa los siguientes rangos:
      • Para el tráfico IPv4: 34.126.0.0/18
      • Para el tráfico IPv6: 2001:4860:8040::/42

Anuncia la ruta restringida a los hosts en una red local

Si usas el Acceso privado a Google para hosts locales, configura las rutas a fin de que el tráfico de la API de Google se reenvíe a través de Cloud VPN o de la conexión de Cloud Interconnect. Cómo anunciar los rangos de direcciones VIP restringidos a tu red local, usa un anuncio personalizado de Cloud Router automático. El los rangos de direcciones VIP restringidos solo son accesibles para los hosts locales que llegue a tu red de VPC a través de direcciones IP privadas.

Puedes agregar esta ruta anunciada personalizada a un Cloud Router (para todos sesiones de BGP en el router) o una sesión de BGP seleccionada (para una sola Cloud VPN) túnel o adjunto de VLAN).

Las rutas IPv6 solo se anuncian en las sesiones de BGP en las que IPv6 está habilitado.

Crear una ruta anunciada personalizada para el rango restringido de todos los BGP en un Cloud Router existente, sigue estos pasos:

Console

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

    Ir a Cloud Routers

  2. Selecciona el Cloud Router que quieres actualizar.

  3. En la página de detalles de Cloud Router, haz clic en Editar.

  4. Expande la sección Rutas anunciadas.

  5. En Rutas, selecciona Crear rutas personalizadas.

  6. A fin de seguir anunciando las subredes disponibles para Cloud Router, selecciona Anunciar todas las subredes visibles para Cloud Router. Habilitar esta opción imita el comportamiento predeterminado de Cloud Router.

  7. Para agregar una ruta anunciada, selecciona Agregar ruta personalizada .

  8. Configura el anuncio de ruta.

    • Fuente: Selecciona Rango de IP personalizado.
    • Rango de direcciones IP:
      • Para la conectividad IPv4: 199.36.153.4/30
      • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Descripción: agrega una descripción de Restricted Google APIs IPs
  9. Después de agregar rutas, selecciona Guardar.

gcloud

Ejecuta el comando update y usa las marcas --set-advertisement-ranges o --add-advertisement-ranges para especificar los rangos de IP personalizados:

  • Para establecer rangos de IP personalizados, usa la marca --set-advertisement-ranges. Cualquiera se reemplazan las rutas personalizadas anunciadas existentes. En el siguiente ejemplo, actualiza el Cloud Router my-router para anunciar todas las subredes y los rangos de direcciones IP restricted.googleapis.com.

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Reemplaza RANGES por los rangos que deseas usar:

    • Para la conectividad IPv4: 199.36.153.4/30
    • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Para la conectividad IPv4 e IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

  • Para agregar rangos de IP personalizados a un anuncio existente, usa la marca --add-advertisement-ranges. Ten en cuenta que esta marca requiere que el modo del anuncio del Cloud Router ya esté configurado en custom. En el siguiente ejemplo, se agrega la dirección IP restricted.googleapis.com. a los anuncios de Cloud Router:

    gcloud compute routers update my-router \
        --add-advertisement-ranges RANGES
    

    Reemplaza RANGES por los rangos que deseas usar:

    • Para la conectividad IPv4: 199.36.153.4/30
    • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Para la conectividad IPv4 e IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

Para crear una ruta anunciada personalizada para el rango restringido en un BGP específico de un Cloud Router existente, sigue estos pasos:

Console

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

    Ir a Cloud Routers

  2. Selecciona el Cloud Router que contiene la sesión de BGP que quieres actualizar.

  3. En la página de detalles de Cloud Router, selecciona la sesión de BGP que quieres actualizar.

  4. En la página de detalles de la sesión de BGP, selecciona Editar.

  5. En Rutas, selecciona Crear rutas personalizadas.

  6. Selecciona Anunciar todas las subredes visibles para Cloud Router. Esto hará que continúe el anuncio de las subredes disponibles en el Cloud Router. Habilitar esta opción imita el comportamiento predeterminado de Cloud Router.

  7. Selecciona Agregar ruta personalizada para agregar una ruta anunciada.

  8. Configura el anuncio de ruta.

    • Origen: Selecciona Rango de IP personalizado para especificar una IP personalizada del rango de destino de la ruta.
    • Rango de direcciones IP:
      • Para la conectividad IPv4: 199.36.153.4/30
      • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Descripción: Agrega una descripción de Restricted Google APIs IPs.
  9. Cuando termines de agregar las rutas, selecciona Guardar.

gcloud

Ejecuta el comando update-bgp-peer mediante las marcas --set-advertisement-ranges o --add-advertisement-ranges para especificar los rangos de IP personalizados.

  • Para establecer rangos de IP personalizados, usa la marca --set-advertisement-ranges. Cualquiera se reemplazan las rutas personalizadas anunciadas existentes.

    Si agregas rangos personalizados IPv6, y si el tráfico IPv6 está inhabilitado para la sesión de BGP, puedes habilitarlo con la marca --enable-ipv6.

    Con el siguiente ejemplo, se actualiza la sesión de BGP my-bgp-session en el my-router para anunciar todas las subredes y las rango de IP personalizado:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Reemplaza RANGES por los rangos que deseas usar:

    • Para la conectividad IPv4: 199.36.153.4/30
    • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Para la conectividad IPv4 e IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

  • Para agregar rangos de IP personalizados a los existentes, usa la marca --add-advertisement-ranges. Ten en cuenta que esta marca requiere que el modo del anuncio del Cloud Router ya esté configurado en custom.

    Si agregas rangos personalizados IPv6, y si el tráfico IPv6 está inhabilitado para la sesión de BGP, puedes habilitarlo con la marca --enable-ipv6.

    En el siguiente ejemplo, se agregan los rangos de direcciones VIP restringidos al Anuncios de Cloud Router:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges RANGES
    

    Reemplaza RANGES por los rangos que deseas usar:

    • Para la conectividad IPv4: 199.36.153.4/30
    • Para la conectividad IPv6: 2600:2d00:0002:1000::/64
    • Para la conectividad IPv4 e IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

    Para obtener más información sobre el modo de anuncio personalizado, consulta Personalizado rutas anunciadas.

Configura reglas de firewall

En el Acceso privado a Google, las instancias de VM usan direcciones IP internas y no requieren direcciones IP externas para alcanzar los recursos protegidos de la API de Google. Sin embargo, es posible que las instancias de VM tengan direcciones IP externas o Cumplir con los requisitos de acceso a Internet Además de las rutas anunciadas personalizadas, puedes restringir de salida de instancias de VM en tu red de VPC creando reglas de firewall para rechazar el tráfico de salida.

De forma predeterminada, la regla de firewall de permiso de salida implícita permite que las instancias de VM envíen tráfico a cualquier destino si hay una ruta aplicable. Primero, puedes crear una regla de denegación de salida para bloquear todo el tráfico saliente. Luego, puedes crear reglas reglas de salida prioritarias que permiten el tráfico a destinos seleccionados en tu a la red de VPC y a la dirección IP restricted.googleapis.com o rangos. Todas las comunicaciones con restricted.googleapis.com se realizan mediante TCP. puerto 443.

Para permitir que el tráfico de Google Cloud llegue a restricted.googleapis.com VIP, agrega reglas de firewall para los siguientes destinos:

  • Para el tráfico IPv4: 199.36.153.4/30
  • Para el tráfico IPv6: 2600:2d00:0002:1000::/64

Para permitir que el tráfico de Google Cloud llegue a las APIs y servicios que permiten conectividad directa, agrega reglas de firewall para la los siguientes destinos:

  • Para el tráfico IPv4: 34.126.0.0/18
  • Para el tráfico IPv6: 2001:4860:8040::/42

Para obtener más información sobre cómo trabajar con reglas de firewall de VPC, consulta Usa reglas de firewall de VPC en la Documentación de Cloud Next Generation Firewall.

Configura tus reglas de firewall locales para permitir que el tráfico los hosts locales llegan a la dirección IP restricted.googleapis.com o rangos.

  • Para el tráfico IPv4: 199.36.153.4/30
  • Para el tráfico IPv6: 2600:2d00:0002:1000::/64

La conectividad directa a las APIs y los servicios de Google no es compatibles con redes locales.

Configura un DNS

Puedes usar zonas privadas administradas para tus redes de VPC. Las zonas de DNS privadas de Cloud DNS te permiten alojar una zona DNS a la que se puede acceder desde redes de VPC autorizadas. Para configurar el reenvío desde ciertos servidores de nombres locales, puedes usar el restricted.googleapis.com de rangos de direcciones IP. Luego, puedes crear una zona privada para googleapis.com con un registro A de DNS que asigna restricted.googleapis.com y los registros CNAME apropiados para cada Nombre de *.googleapis.com. Para obtener más información, consulta Administra zonas.

Para el acceso local, puedes configurar una política de reenvío de entrada de Cloud DNS a fin de permitir que los servidores de nombres locales consulten una zona privada administrada de Cloud DNS, o puedes configurar un servidor de nombres local, como uno que use BIND:

Configura DNS con Cloud DNS

Usa Cloud DNS a fin de habilitar la resolución de DNS para instancias de VM en la red de VPC, en hosts en una red local o en ambas opciones. Si estás mediante una VPC compartida, consulta Zonas privadas y VPC compartida. en la documentación de Cloud DNS. Además, si usas una VPC compartida, te recomendamos que incluyas el proyecto host de red de VPC compartida en el mismo como proyectos que se conectan a la red.

Configura Cloud DNS mediante zonas privadas

Puedes usar zonas privadas para configurar Cloud DNS:

  1. Crea una zona privada administrada para tu red de VPC.

    gcloud dns managed-zones create ZONE_NAME \
     --visibility=private \
     --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
     --description=DESCRIPTION \
     --dns-name=googleapis.com
    

    Reemplaza lo siguiente:

    • ZONE_NAME es un nombre para la zona que estás creando. Por ejemplo, vpc Este nombre se usa en cada uno de los siguientes pasos.
    • PROJECT_ID es el ID del proyecto que contiene tu red de VPC.
    • NETWORK_NAME: El nombre de tu red de VPC
    • DESCRIPTION es una descripción opcional y legible de la zona administrada.
  2. Inicia una transacción.

    gcloud dns record-sets transaction start --zone=ZONE_NAME
    

    Reemplaza ZONE_NAME por el nombre de la zona que creaste en el primer paso.

  3. Agrega registros DNS.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. \
        --zone=ZONE_NAME \
        --ttl=300
    

    Reemplaza ZONE_NAME por el nombre de la zona que creaste en el primer paso.

    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=A 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7 \
        --zone=ZONE_NAME \
        --ttl=300
    

    Reemplaza ZONE_NAME por el nombre de la zona que creaste en el primer paso.

    Si configuras las direcciones IPv6 para restricted.googleapis.com, también crea el siguiente conjunto de registros:

    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=AAAA 2600:2d00:0002:1000:: \
        --zone=ZONE_NAME \
        --ttl=300
    
  4. Ejecuta la transacción.

    gcloud dns record-sets transaction execute --zone=ZONE_NAME
    

    Reemplaza ZONE_NAME por el nombre de la zona que creaste en el primer paso.

  5. Opcional. Para permitir que los hosts locales lleguen a la VIP restringida, completa los siguientes pasos:

    1. Crea una política de DNS y habilita el reenvío de DNS entrante a fin de que los servicios de resolución de nombres de la red de VPC estén disponibles de forma externa para los sistemas en redes locales.

      gcloud dns policies create POLICY_NAME \
       --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
       --enable-inbound-forwarding \
       --description=DESCRIPTION
      

      Reemplaza lo siguiente:

      • POLICY_NAME es un nombre para la política que estás creando. Por ejemplo, apipolicy.
      • PROJECT_ID es el ID del proyecto que contiene tu red de VPC.
      • NETWORK_NAME es el nombre de tu red de VPC.
      • DESCRIPTION es una descripción opcional y legible de la zona administrada.
    2. En la red local, apunta el DNS local hacia la dirección IP de reenvío de Cloud DNS. Para encontrar la dirección IP de reenvío, usa el comando compute addresses list:

      gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \
       --format='csv[no-heading](address, subnetwork)'
      

Configura DNS con BIND

Si usas BIND en la resolución de DNS, puedes configurarlo para resolver las solicitudes a la API de Google en las API de Google restringidas. Usa el siguiente ejemplo de configuración de BIND, que utiliza una política de respuestas zonas (RPZ) para lograr este comportamiento:

  1. Agrega las siguientes líneas a /etc/bind/named.conf:

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. Agrega las siguientes líneas a /etc/bind/named.conf.options:

    options {
      directory "/var/cache/bind";
    
      dnssec-validation no;
    
      auth-nxdomain no;    # conform to RFC 1035
      listen-on-v6 { any; };
      listen-on { any; };
      response-policy { zone "googleapis.zone"; };
      allow-query { any;};
    };
    
  3. Agrega las siguientes líneas a /etc/bind/named.conf.local:

    include "/etc/bind/named.conf.default-zones";

    zone "googleapis.zone" { type master; file "/etc/bind/db.googleapis.zone"; allow-query {none;}; };

  4. Agrega las siguientes líneas a /etc/bind/db.googleapis.zone:

    $TTL 1H
    @                       SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h)
                            NS  LOCALHOST.

    *.googleapis.com CNAME restricted.googleapis.com. restricted.googleapis.com CNAME rpz-passthru.

Configura DNS en casos especiales

Cuando necesites configurar el DNS en casos especiales, ten en cuenta lo siguiente:

  • No se admite BIND personalizado cuando se usa Dataflow. Para personalizar la resolución de DNS cuando usas Dataflow con los Controles del servicio de VPC, usa las zonas privadas de Cloud DNS, en lugar de los servidores BIND personalizados. Para usar tu resolución de DNS local, considera usar un método de reenvío de DNS de Google Cloud.
  • Es posible que también debas configurar el DNS para gcr.io si, por ejemplo, usas Google Kubernetes Engine (GKE). Si deseas obtener más información, consulta Configura Container Registry para clústeres privados de GKE.