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 APIs 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 del 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 APIs a las que deseas acceder con la página de APIs y servicios en la consola de Google Cloud .
- Asegúrate de tener el rol necesario para crear o actualizar las subredes. Los propietarios del proyecto, los editores y los miembros de IAM con el rol 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 los roles de IAM.
- Verifica que una red de VPC esté configurada para el Acceso privado a Google y el Acceso privado a Google en 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 un túnel de Cloud VPN existente o una conexión de Cloud Interconnect a la red de VPC. 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 rutas para los rangos de direcciones IP de
restricted.googleapis.com. Para obtener más información, consulta Configura las rutas. - Configura reglas de firewall para permitir que el tráfico adecuado llegue a los
rangos de direcciones IP de
restricted.googleapis.com. Para obtener más información, consulta Configura las reglas de firewall. - Configura el DNS para que el tráfico hacia las APIs de Google se resuelva
en los rangos de direcciones IP de
restricted.googleapis.com. Para obtener más información, consulta Configura un DNS.
Compatibilidad con IPv6 para restricted.googleapis.com
Puedes acceder a las APIs de Google con 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 y tienes
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 con las direcciones IPv4. No todos los servicios aceptan tráfico de
clientes IPv6.
Para 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 la red
de VPC para que sea compatible con IPv6. Si deseas obtener más información, consulta las siguientes páginas:
- Compatibilidad con IPv6 para VPN con alta disponibilidad
- Compatibilidad con protocolos IP para Cloud Router
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 Configura
el Acceso privado a Google.
Conectividad directa a las APIs y los servicios
Algunos servicios y APIs de Google admiten la conectividad directa desde instancias de máquina virtual (VM) de Compute Engine, sin pasar por los Google Front Ends (GFEs), lo que ofrece un mejor rendimiento.
Para establecer la conectividad directa, es necesario que tus
rutas y
reglas de firewall
permitan que el tráfico de IPv4 llegue a 34.126.0.0/18 y el tráfico de IPv6
llegue a 2001:4860:8040::/42. Estas direcciones IP, que son un subconjunto del
dominio restricted.googleapis.com,
admiten los Controles del servicio de VPC.
Además, no es necesario crear registros DNS para estas direcciones.
Ten en cuenta que la conectividad directa solo está disponible desde los recursos de Google Cloud y no se admite desde los hosts locales.
Configura rutas a restricted.googleapis.com
Aunque los Controles del servicio de VPC se aplican a los servicios compatibles y configurados,
sin importar el dominio que uses, restricted.googleapis.com ofrece
una mitigación adicional de riesgos para el robo de datos. restricted.googleapis.com
rechaza el acceso a los servicios y a las APIs de Google que no son compatibles
con los Controles del servicio de VPC.
Tanto en el Acceso privado a Google como en el Acceso privado a Google para hosts locales,
la red de VPC debe incluir una ruta con destino a
los rangos de direcciones IP de restricted.googleapis.com cuyo próximo salto sea la puerta de enlace de Internet
predeterminada. Aunque el próximo salto es una puerta de enlace de Internet predeterminada, el
tráfico que se envía a restricted.googleapis.com permanece en la red de Google.
Si tu red de VPC no tiene una
ruta predeterminada cuyo siguiente salto sea la
puerta de enlace de Internet predeterminada, puedes crear una ruta estática personalizada que tenga como destino
al rango de direcciones IP de restricted.googleapis.com y usar esa puerta de enlace de
Internet predeterminada como próximo salto. Para evitar el acceso a Internet, debes quitar
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.
Configura 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 admiten 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: Es el rango de destino de la ruta.- Para enrutar el tráfico al VIP de
restricted.googleapis.com, usa los siguientes rangos:- Para el tráfico IPv4:
199.36.153.4/30 - Para el tráfico IPv6:
2600:2d00:0002:1000::/64
- Para el tráfico IPv4:
- Para enrutar el tráfico a las APIs que permiten la conectividad
directa, usa los siguientes rangos:
- Para el tráfico IPv4:
34.126.0.0/18 - Para el tráfico IPv6:
2001:4860:8040::/42
- Para el tráfico IPv4:
- Para enrutar el tráfico al VIP de
Anuncia la ruta restringida a los hosts en una red local
Si usas el Acceso privado a Google para hosts locales, configura las rutas para que el tráfico de la API de Google se reenvíe con Cloud VPN o de la conexión de Cloud Interconnect. Para anunciar los rangos de direcciones VIP restringidas en tu red local, usa el modo de anuncio personalizado de Cloud Router. Solo se puede acceder a los rangos de direcciones VIP restringidas desde hosts locales que puedan acceder a tu red de VPC con direcciones IP privadas.
Puedes agregar este anuncio de ruta personalizado a Cloud Router (para todas las sesiones de BGP en el router) o una sesión de BGP específica (para un solo túnel de Cloud VPN o un adjunto de VLAN).
Las rutas IPv6 solo se anuncian en las sesiones de BGP en las que IPv6 está habilitado.
Para crear una ruta anunciada personalizada en el rango restringido de todas las sesiones de BGP en un Cloud Router existente, sigue estos pasos:
Consola
En la consola de Google Cloud , ve a la página Cloud Routers.
Selecciona el Cloud Router que quieres actualizar.
En la página de detalles de Cloud Router, haz clic en Editar.
Expande la sección Rutas anunciadas.
En Rutas, selecciona Crear rutas personalizadas.
Si deseas seguir anunciando las subredes disponibles en Cloud Router, selecciona Anunciar todas las subredes visibles para Cloud Router. Habilitar esta opción imita el comportamiento predeterminado de Cloud Router.
Para agregar una ruta anunciada, selecciona Agregar ruta personalizada.
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
- Para la conectividad IPv4:
- Descripción: Agrega una descripción de
Restricted Google APIs IPs.
Después de agregar las 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. Se reemplazan todas las rutas anunciadas personalizadas existentes. En el siguiente ejemplo, se actualiza el Cloud Routermy-routerpara anunciar todas las subredes y los rangos de direcciones IPrestricted.googleapis.com.gcloud compute routers update my-router \ --advertisement-mode CUSTOM \ --set-advertisement-groups ALL_SUBNETS \ --set-advertisement-ranges RANGESReemplaza
RANGESpor 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 y, también, IPv6:
199.36.153.4/30,2600:2d00:0002:1000::/64
- Para la conectividad IPv4:
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 encustom. En el siguiente ejemplo, se agregan los rangos de direcciones IPrestricted.googleapis.coma los anuncios de Cloud Router:gcloud compute routers update my-router \ --add-advertisement-ranges RANGESReemplaza
RANGESpor 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 y, también, IPv6:
199.36.153.4/30,2600:2d00:0002:1000::/64
- Para la conectividad IPv4:
Si deseas crear una ruta anunciada personalizada para el rango restringido en una sesión de BGP específica de un Cloud Router existente, sigue estos pasos:
Consola
En la consola de Google Cloud , ve a la página Cloud Routers.
Selecciona el Cloud Router que contiene la sesión de BGP que quieres actualizar.
En la página de detalles de Cloud Router, selecciona la sesión de BGP que quieres actualizar.
En la página de detalles de la sesión de BGP, selecciona Editar.
En Rutas, selecciona Crear rutas personalizadas.
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.
Selecciona Agregar ruta personalizada para agregar una ruta anunciada.
Configura el anuncio de ruta.
- Fuente: Selecciona Rango de IP personalizado para especificar un 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
- Para la conectividad IPv4:
- Descripción: Agrega una descripción de
Restricted Google APIs IPs.
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. Se reemplazan todas las rutas anunciadas personalizadas 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, puedes actualizar la sesión de BGP
my-bgp-sessionen el Cloud Routermy-routerpara anunciar todas las subredes y el 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 RANGESReemplaza
RANGESpor 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 y, también, IPv6:
199.36.153.4/30,2600:2d00:0002:1000::/64
- Para la conectividad IPv4:
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 encustom.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 restringidas a los anuncios de Cloud Router:
gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --add-advertisement-ranges RANGESReemplaza
RANGESpor 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 y, también, IPv6:
199.36.153.4/30,2600:2d00:0002:1000::/64
Para obtener más información sobre el modo de anuncio personalizado, consulta Rutas anunciadas personalizadas.
- Para la conectividad IPv4:
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 que cumplan con los requisitos de acceso a Internet. Además de las rutas personalizadas anunciadas, puedes restringir el tráfico de salida desde las instancias de VM en la red de VPC con la creación de reglas de firewall para denegar 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. A continuación, puedes crear reglas de salida de prioridad
más alta que permitan el tráfico a los destinos seleccionados en la
red de VPC y al rango
de direcciones IP restricted.googleapis.com. Todas las comunicaciones a restricted.googleapis.com se encuentran en el puerto TCP
443.
Si deseas permitir que el tráfico de Google Cloud llegue a las VIP de restricted.googleapis.com,
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 los servicios que permiten la conectividad directa, agrega reglas de firewall para 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 las reglas de firewall locales para permitir que el tráfico de
los hosts locales llegue a los rangos
de direcciones IP de restricted.googleapis.com.
- Para el tráfico IPv4:
199.36.153.4/30 - Para el tráfico IPv6:
2600:2d00:0002:1000::/64
No se admite la conectividad directa a los servicios y las APIs de Google desde redes locales.
Configura un DNS
Puedes usar zonas privadas administradas para tus redes de VPC.
Las zonas privadas del DNS 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 los
rangos de direcciones IP de restricted.googleapis.com.
Luego, puedes crear una zona privada para googleapis.com con un registro A de DNS que
asigne los registros restricted.googleapis.com y CNAME apropiados de cada
nombre de *.googleapis.com. Para obtener más información, consulta
Administra las zonas.
Para el acceso local, puedes configurar una política de reenvío de entrada de Cloud DNS con el objetivo de permitir que los servidores de nombres locales consulten una zona privada administrada de Cloud DNS. Además, puedes configurar un servidor de nombres local, como uno que use BIND:
Configura DNS con Cloud DNS
Habilita la resolución de DNS para instancias de VM en la red de VPC, en hosts en una red local o en ambas opciones con Cloud DNS. Si usas 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 la red de VPC compartida en el mismo perímetro de servicio que los proyectos que se conectan a la red.
Configura Cloud DNS con zonas privadas
Puedes usar zonas privadas para configurar Cloud DNS de la siguiente manera:
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 aloja tu red de VPC.NETWORK_NAME: Es el nombre de tu red de VPC.DESCRIPTION: Es una descripción opcional y legible por humanos de la zona administrada.
Inicia una transacción.
gcloud dns record-sets transaction start --zone=ZONE_NAME
Reemplaza
ZONE_NAMEpor el nombre de la zona que creaste en el primer paso.Agrega registros DNS.
gcloud dns record-sets transaction add --name=*.googleapis.com. \ --type=CNAME restricted.googleapis.com. \ --zone=ZONE_NAME \ --ttl=300
Reemplaza
ZONE_NAMEpor 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_NAMEpor el nombre de la zona que creaste en el primer paso.Si configuras las direcciones IPv6 para
restricted.googleapis.com, también deberás crear 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
Ejecuta la transacción.
gcloud dns record-sets transaction execute --zone=ZONE_NAME
Reemplaza
ZONE_NAMEpor el nombre de la zona que creaste en el primer paso.Opcional. Para permitir que los hosts locales lleguen a la VIP restringida, completa los siguientes pasos:
Crea una política de DNS y habilita el reenvío de DNS entrante para 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 aloja tu red de VPC.NETWORK_NAME: Es el nombre de tu red de VPC.DESCRIPTION: Es una descripción opcional y legible por humanos de la zona administrada.
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 usa zonas de política de respuesta (RPZ) para lograr este comportamiento:
Agrega las siguientes líneas a
/etc/bind/named.conf:include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local";
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;}; };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;}; };
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 debas 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 propia resolución de DNS local, considera usar un Google Cloud método de reenvío de DNS.
Es posible que también debas configurar el DNS para
gcr.iosi, por ejemplo, usas Google Kubernetes Engine (GKE). Si deseas obtener más información, consulta Configura Container Registry para clústeres privados de GKE.