Configura el Acceso privado a Google
En esta página, se describe cómo habilitar y configurar el Acceso privado a Google. De forma predeterminada, cuando una VM de Compute Engine no tiene una dirección IP externa asignada a su interfaz de red, solo puede enviar paquetes a otros destinos con direcciones IP internas. Puedes permitir que estas VM se conecten al conjunto de direcciones IP externas que las API y los servicios de Google usan si habilitas el Acceso privado a Google en la subred que usa la interfaz de red de la VM.
El Acceso privado a Google también permite el acceso a las direcciones IP externas que usa App Engine, incluidos los servicios de terceros basados en App Engine.
Para ver las API y los servicios aptos que puedes usar con el Acceso privado a Google, visita Servicios compatibles en la descripción general del Acceso privado a Google.
Consulta Opciones de acceso privado a los servicios para obtener información general sobre el Acceso privado a Google y otras opciones de conectividad privada que ofrece Google Cloud.
Especificaciones
Una interfaz de VM puede enviar paquetes a las direcciones IP externas de los servicios y las API de Google mediante el Acceso privado a Google, si se cumplen todas estas condiciones:
La interfaz de VM está conectada a una subred en la que el Acceso privado a Google está habilitado.
La red de VPC que contiene la subred cumple con los requisitos de red para las API y los servicios de Google.
La interfaz de VM no tiene asignada una dirección IP externa.
La dirección IP de origen de los paquetes que se envían desde la VM coincide con una de las siguientes direcciones IP.
- La dirección IPv4 interna principal de la interfaz de VM
- La dirección IPv6 interna de la interfaz de VM
- Una dirección IPv4 interna de un rango de alias de IP
Una VM con una dirección IPv4 o IPv6 externa asignada a su interfaz de red no necesita Acceso privado a Google para conectarse a los servicios y las API de Google. Sin embargo, la red de VPC debe cumplir con los requisitos para acceder a las APIs y los servicios de Google.
Puedes anular la asignación de una dirección IP externa de una instancia de VM existente, incluso mientras se ejecuta.
Para anular la asignación de una dirección IPv4, consulta Anula la asignación de una dirección IP externa estática.
Para anular la asignación de un rango de direcciones IPv6, consulta Cambia el tipo de pila de una VM.
Requisitos de red
El Acceso privado a Google tiene los siguientes requisitos:
- Debido a que el Acceso privado a Google se habilita por subred, debes usar una red de VPC. Las redes heredadas no son compatibles porque no admiten subredes.
- Debes habilitar las APIs de Google que necesites usar en la página de API y servicios de la consola de Google Cloud.
Si deseas conectarte a los servicios y las APIs de Google mediante IPv6, debes cumplir con estos requisitos:
La VM debe estar configurada con un rango de direcciones IPv6
/96
.El software que se ejecuta en la VM debe enviar paquetes cuyos orígenes coincidan con una de esas direcciones IPv6 de ese rango.
Si usas los nombres de dominio
private.googleapis.com
orestricted.googleapis.com
, deberás crear registros DNS para dirigir el tráfico a las direcciones IP asociadas con esos dominios. Para obtener más información, consulta Configuración de red.La red debe tener rutas adecuadas para los rangos de IP de destino que usan las APIs y los servicios de Google. Estas rutas deben usar el siguiente salto de puerta de enlace de Internet predeterminado. Si usas los nombres de dominio
private.googleapis.com
orestricted.googleapis.com
, solo necesitas una ruta (por dominio). De lo contrario, deberás crear varias rutas. Consulta Opciones de enrutamiento para obtener más detalles.Los firewalls de salida deben permitir el tráfico a los rangos de direcciones IP que usan las API y los servicios de Google. La regla de firewall de permiso de salida implícita satisface este requisito. Para conocer otras formas de cumplir con el requisito de firewall, consulta la Configuración de firewall.
Permisos
Los propietarios del proyecto, los editores y los principales de IAM con la función de administrador de red pueden crear o actualizar las subredes y asignar direcciones IP.
Consulta la documentación sobre las funciones de IAM para obtener más información.
Logging
Cloud Logging captura todas las solicitudes a la API que se realizan desde las instancias de VM en las subredes que tienen el Acceso privado a Google habilitado. Las entradas de registro identifican el origen de la solicitud a la API como una dirección IP interna de la instancia que realiza la llamada.
Puedes configurar el uso diario y los informes mensuales acumulativos para que se envíen a un bucket de Cloud Storage. Consulta la página Visualiza informes de uso para obtener detalles.
Configuración de red
En esta sección, se describen los requisitos de red básicos que debes cumplir para que una VM en tu red de VPC acceda a las API y los servicios de Google.
Opciones de dominio
Elige el dominio que deseas usar para acceder a los servicios y las APIs de Google.
Las direcciones IP virtuales (VIP) private.googleapis.com
y restricted.googleapis.com
solo admiten protocolos basados en HTTP en TCP (HTTP, HTTPS y HTTP/2). No se admite ningún otro protocolo, incluidos ICMP y MQTT.
Rangos de direcciones IP y de dominio | Servicios compatibles | Ejemplo de uso |
---|---|---|
Dominios predeterminados. Todos los nombres de dominio para las APIs y los servicios de Google, excepto
Varios rangos de direcciones IP: puedes determinar un conjunto de rangos de IP que contenga las direcciones posibles que usan los dominios predeterminados si haces referencia a las direcciones IP para dominios predeterminados. |
Habilita el acceso a la mayoría de los servicios y las APIs de Google, sin importar si son compatibles con los Controles del servicio de VPC. Incluye el acceso a la API para Google Maps, Google Ads y Google Cloud. Incluye aplicaciones web de Google Workspace, como Gmail y Documentos de Google, y otras aplicaciones web. |
Los dominios predeterminados se usan cuando no configuras los registros DNS para |
|
Habilita el acceso a la mayoría de los servicios y las APIs de Google, sin importar si son compatibles con los Controles del servicio de VPC. Incluye acceso a la API de Google Maps, Google Ads, Google Cloud y la mayoría de las otras APIs de Google, incluida la siguiente lista. Es compatible con las aplicaciones web de Google Workspace, como Gmail y Documentos de Google. No es compatible con ningún sitio web interactivo. Nombres de dominio que coinciden:
|
Usa Elige
|
|
Habilita el acceso a la API a los servicios y las APIs de Google que son compatibles con los Controles del servicio de VPC. Bloquea el acceso a los servicios y a las APIs de Google que son incompatibles con los Controles del servicio de VPC. Es incompatible con las API de Google Workspace y con las aplicaciones web de Google Workspace, como Gmail y Documentos de Google. |
Usa Elige El dominio |
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. Usar 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. Consulta Configura una conectividad privada en la documentación de los Controles del servicio de VPC para obtener más información.
Compatibilidad con IPv6 para private.googleapis.com
y restricted.googleapis.com
Los siguientes rangos de direcciones IPv6 se pueden usar para dirigir el tráfico de los clientes IPv6 a los servicios y las APIs de Google:
private.googleapis.com
:2600:2d00:0002:2000::/64
restricted.googleapis.com
:2600:2d00:0002:1000::/64
Considera configurar las direcciones IPv6 si deseas usar el dominio private.googleapis.com
o 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 mediante las direcciones IPv4. No todos los servicios aceptan el tráfico de clientes IPv6.
Configuración de DNS
Para la conectividad a los servicios y las APIs de Google, puedes elegir enviar paquetes a las direcciones IP asociadas con la VIP private.googleapis.com
o restricted.googleapis.com
. Para usar una VIP, debes configurar DNS de modo que las VMs de tu red de VPC resuelvan las solicitudes a *.googleapis.com
y cualquier otro dominio al que necesites acceder. Por ejemplo, si usas Google Kubernetes Engine (GKE), también debes configurar *.gcr.io
y *.pkg.dev
.
En la siguiente sección se describe cómo usar las zonas del DNS para enviar paquetes a las direcciones IP asociadas con la VIP elegida.
Cuando configures los registros DNS para las VIP, usa solo las direcciones IP que se describen en los siguientes pasos. No mezcles direcciones de las VIP private.googleapis.com
y restricted.googleapis.com
. Esto puede causar fallas intermitentes porque los servicios que se ofrecen difieren según el destino del paquete.
Crea una zona de DNS y registros para googleapis.com
:
- Crea una zona de DNS privada para
googleapis.com
. Se recomienda crear una zona privada de Cloud DNS para este propósito. En la zona
googleapis.com
, crea los siguientes registros DNS paraprivate.googleapis.com
orestricted.googleapis.com
, según el dominio que elijas usar.Para
private.googleapis.com
:Crea un registro
A
paraprivate.googleapis.com
que apunte a las siguientes direcciones IP:199.36.153.8
,199.36.153.9
,199.36.153.10
y199.36.153.11
.Si deseas conectarte a las APIs mediante direcciones IPv6, también configura un registro
AAAA
paraprivate.googleapis.com
que apunte a2600:2d00:0002:2000::
.
Para
restricted.googleapis.com
:Crea un registro
A
pararestricted.googleapis.com
que apunte a las siguientes direcciones IP:199.36.153.4
,199.36.153.5
,199.36.153.6
y199.36.153.7
.Si deseas conectarte a las APIs mediante direcciones IPv6, también debes crear un registro
AAAA
pararestricted.googleapis.com
que apunte a2600:2d00:0002:1000::
.
Si usas Cloud DNS, agrega los registros a la zona privada
googleapis.com
.En la zona
googleapis.com
, crea un registroCNAME
para*.googleapis.com
que apunte al dominio que configuraste:private.googleapis.com
orestricted.googleapis.com
.
Algunos servicios y APIs de Google se proporcionan a través de nombres de dominio adicionales, incluidos *.gcr.io
, *.gstatic.com
, *.pkg.dev
y pki.goog
. Consulta la tabla de rangos de direcciones IP y dominios en Opciones de dominio para determinar si se puede acceder a los servicios del dominio adicional mediante private.googleapis.com
o restricted.googleapis.com
. Luego, para cada uno de los dominios adicionales, sigue estos pasos:
Crea una zona de DNS para
DOMAIN
(por ejemplo,gcr.io
). Si usas Cloud DNS, asegúrate de que esta zona se encuentre en el mismo proyecto que la zona privadagoogleapis.com
.En esta zona de DNS, crea los siguientes registros DNS para
private.googleapis.com
orestricted.googleapis.com
, según el dominio que elijas:Para
private.googleapis.com
:Crea un registro
A
paraDOMAIN
que apunte a las siguientes direcciones IP:199.36.153.8
,199.36.153.9
,199.36.153.10
y199.36.153.11
.Si deseas conectarte a las APIs mediante direcciones IPv6, también debes crear un registro
AAAA
paraDOMAIN
que apunte a2600:2d00:0002:2000::
.
Para
restricted.googleapis.com
:Crea un registro
A
paraDOMAIN
que apunte a las siguientes direcciones IP:199.36.153.4
,199.36.153.5
,199.36.153.6
y199.36.153.7
.Si deseas conectarte a las APIs mediante direcciones IPv6, también debes crear un registro
AAAA
pararestricted.googleapis.com
que apunte a2600:2d00:0002:1000::
.
En la zona
DOMAIN
, crea un registroCNAME
para*.DOMAIN
que apunte aDOMAIN
. Por ejemplo, crea un registroCNAME
para*.gcr.io
que apunte agcr.io
.
Opciones de enrutamiento
La red de VPC debe tener rutas adecuadas cuyo siguiente salto sea la puerta de enlace de Internet predeterminada. Google Cloud no admite el enrutamiento del tráfico a las API y a los servicios de Google a través de otras instancias de VM o siguientes saltos personalizados. A pesar de que se denominan puerta de enlace de Internet predeterminada, los paquetes enviados desde las VM de la red de VPC hacia las API y los servicios de Google permanecen dentro de la red de Google.
Si seleccionas los dominios predeterminados, las instancias de VM se conectarán a las API y a los servicios de Google mediante un subconjunto de direcciones IP externas de Google. Estas direcciones IP se pueden enrutar de forma pública, pero la ruta desde una VM en una red de VPC hacia esas direcciones permanece dentro de la red de Google.
Google no publica las rutas en Internet de ninguna de las direcciones IP que usan los dominios
private.googleapis.com
orestricted.googleapis.com
. En consecuencia, solo las VM en una red de VPC o en sistemas locales conectados a una red de VPC pueden acceder a estos dominios.
Si la red de VPC contiene una ruta predeterminada cuyo siguiente salto es la puerta de enlace de Internet predeterminada, puedes usar esa ruta a fin de acceder a los servicios y a las API de Google, sin necesidad de crear rutas personalizadas. Consulta Enruta con una ruta predeterminada para obtener más detalles.
Si reemplazaste una ruta predeterminada IPv4 (destino 0.0.0.0/0
) por una ruta personalizada cuyo siguiente salto no es la puerta de enlace de Internet predeterminada, puedes cumplir con los requisitos de enrutamiento de Google para las API y los servicios usando el enrutamiento personalizado en su lugar.
Si tu red de VPC no tiene una ruta IPv6 predeterminada, no tendrás conectividad IPv6 a las APIs y los servicios de Google. Agrega una ruta predeterminada IPv6 para permitir la conectividad IPv6.
Enrutamiento con una ruta predeterminada
Cada red de VPC contiene una ruta predeterminada de IPv4 (0.0.0.0/0
) cuando se crea. Si habilitas direcciones IPv6 externas en una subred, se agregará una ruta IPv6 predeterminada (::/0
) generada por el sistema a esa red de VPC.
Las rutas predeterminadas proporcionan una ruta a las direcciones IP para los siguientes destinos:
Los dominios predeterminados
private.googleapis.com
:199.36.153.8/30
y2600:2d00:0002:2000::/64
.restricted.googleapis.com
:199.36.153.4/30
y2600:2d00:0002:1000::/64
.
Para verificar la configuración de una ruta predeterminada en una red determinada, sigue estas instrucciones.
Consola
En la consola de Google Cloud, ve a la página Supervisión.
Filtra la lista de rutas para ver solo las rutas de la red que debes inspeccionar.
Busca una ruta cuyo destino sea
0.0.0.0/0
para el tráfico de IPv4 o::/0
para el tráfico de IPv6 y cuyo siguiente salto sea la puerta de enlace de Internet predeterminada.
gcloud
Usa el siguiente comando de gcloud
y reemplaza NETWORK_NAME
por el nombre de la red que quieres inspeccionar:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Si necesitas crear una ruta IPv4 de reemplazo predeterminada, consulta Agrega una ruta estática.
Si necesitas crear una ruta IPv6 predeterminada de reemplazo, consulta Agrega una ruta predeterminada IPv6.
Enrutamiento personalizado
Como alternativa a una ruta predeterminada para el tráfico IPv4, puedes usar rutas estáticas personalizadas; cada una debe tener un destino más específico y usar el siguiente salto de puerta de enlace de Internet predeterminada. La cantidad de rutas que necesitas y sus direcciones IP de destino dependen del dominio que elijas.
A fin de verificar la configuración de las rutas personalizadas para las APIs y los servicios de Google en una red determinada, sigue estas instrucciones.
Consola
En la consola de Google Cloud, ve a la página Supervisión.
Usa el campo de texto Tabla de filtros para filtrar la lista de rutas con los siguientes criterios y reemplaza
NETWORK_NAME
por el nombre de tu red de VPC.- Red:
NETWORK_NAME
- Tipo de salto siguiente:
default internet gateway
- Red:
Observa la columna Rango de IP de destino para cada ruta. Si seleccionaste los dominios predeterminados, busca varias rutas estáticas personalizadas, una para cada rango de direcciones IP que usa el dominio predeterminado. Si eliges
private.googleapis.com
orestricted.googleapis.com
, busca el rango de IP de ese dominio.
gcloud
Usa el siguiente comando de gcloud
y reemplaza NETWORK_NAME
por el nombre de la red que quieres inspeccionar:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Las rutas se enumeran en formato de tabla, a menos que personalices el comando con la marca --format
. Busca en la columna DEST_RANGE
el destino de cada ruta. Si seleccionaste los dominios predeterminados, busca varias rutas estáticas personalizadas, una para cada rango de direcciones IP que usa el dominio predeterminado. Si eliges private.googleapis.com
o restricted.googleapis.com
, busca el rango de IP de ese dominio.
Si necesitas crear rutas, consulta Agrega una ruta estática.
Configuración de firewall
La configuración de firewall de la red de VPC debe permitir el acceso de las VM a las direcciones IP que usan las API y los servicios de Google. La regla implícita allow egress
cumple con este requisito.
En algunas opciones de configuración de firewall, debes crear reglas de permiso de salida específicas.
Por ejemplo, supongamos que creaste una regla de denegación de salida que bloquea el tráfico a todos los destinos (0.0.0.0
para IPv4 o ::/0
para IPv6). En ese caso, debes crear una regla de firewall de permiso de salida cuya prioridad sea superior a la regla de denegación de salida para cada rango de direcciones IP que usa el dominio elegido para las API y los servicios de Google.
Para crear reglas de firewall, consulta Crea reglas de firewall. Puedes limitar las VM a las que se aplican las reglas de firewall cuando defines el destino de cada regla de permiso de salida.
Direcciones IP para dominios predeterminados
En esta sección, se describe cómo crear una lista de rangos de IP de dominio predeterminados que usan las APIs y los servicios de Google. Estos rangos se asignan de forma dinámica y cambian con frecuencia, por lo que no es posible definir rangos de IP específicos para APIs o servicios individuales. A fin de mantener una lista precisa, configura la automatización para ejecutar la secuencia de comandos todos los días. Para obtener alternativas a fin de mantener una lista de rangos de direcciones IP, considera usar la VIP privada.googleapis.com o Private Service Connect.
Sigue estos pasos para determinar los rangos de direcciones IP que usan los dominios predeterminados, como *.googleapis.com
y *.gcr.io
.
Google publica la lista completa de rangos de IP que pone a disposición de los usuarios en Internet, en goog.json.
Google también publica una lista de los rangos de direcciones IP externas internacionales y regionales disponibles para los recursos de Google Cloud del cliente en cloud.json.
Las direcciones IP que usan los dominios predeterminados para las APIs y los servicios de Google se ajustan a la lista de rangos calculados mediante la eliminación de todos los rangos en cloud.json
de los que están en goog.json
. Estas listas se actualizan con frecuencia.
Puedes usar la siguiente secuencia de comandos de Python a fin de crear una lista de rangos de direcciones IP que incluyan los que usan los dominios predeterminados para las APIs y los servicios de Google.
Para obtener información sobre cómo ejecutar esta secuencia de comandos, consulta Cómo ejecutar.
Configuración del Acceso privado a Google
Puedes habilitar el Acceso privado a Google después de cumplir con los requisitos de red en tu red de VPC.
Habilite el Acceso privado a Google
Sigue estos pasos para habilitar el acceso privado a Google:
Consola
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en el nombre de la red que contiene la subred en la que necesitas habilitar el Acceso privado a Google.
Para una subred existente:
- Haz clic en el nombre de la subred. Se mostrará la página Detalles de la subred.
- Haz clic en Editar.
- En la sección Acceso privado a Google selecciona Habilitar.
- Haz clic en Guardar.
Para una subred nueva:
- Haz clic en Agregar subred.
- Ingresa un Nombre.
- Selecciona una Región.
- En Tipo de pila IP, selecciona Solo IPv4 (pila única) o IPv4 y IPv6 (pila doble).
Ingresa un rango de IPv4. Este es el rango de IPv4 principal de la subred.
Si seleccionas un rango que no es una dirección RFC 1918, confirma que el rango no entre en conflicto con una configuración existente. Para obtener más información, consulta Rangos de subredes IPv4.
Si creas una subred de doble pila, selecciona un tipo de acceso IPv6: Interno o Externo.
Si deseas establecer el tipo de acceso como Interno, pero la opción Interno no está disponible, comprueba que se haya asignado un rango de IPv6 interno en la red.
Realiza otras selecciones en la subred nueva para satisfacer tus necesidades. Por ejemplo, es posible que debas crear rangos de IP de subredes secundarios o habilitar los registros de flujo de VPC.
Selecciona Habilitar en la sección Acceso privado a Google.
Haz clic en Agregar.
gcloud
Para una subred existente:
Determina el nombre y la región de la subred. Para ver una lista de las subredes de una red en particular, usa el siguiente comando:
gcloud compute networks subnets list --filter=NETWORK_NAME
Ejecuta el siguiente comando para habilitar el Acceso privado a Google:
gcloud compute networks subnets update SUBNET_NAME \ --region=REGION \ --enable-private-ip-google-access
Verifica que el Acceso privado a Google esté habilitado mediante la ejecución del siguiente comando:
gcloud compute networks subnets describe SUBNET_NAME \ --region=REGION \ --format="get(privateIpGoogleAccess)"
En todos los comandos anteriores, reemplaza los siguientes por valores válidos:
SUBNET_NAME
: El nombre de la subredREGION
: La región de la subredNETWORK_NAME
: El nombre de la red de VPC que contiene la subred
Cuando crees una subred nueva, usa la marca --enable-private-ip-google-access
para habilitar el Acceso privado a Google:
gcloud compute networks subnets create SUBNET_NAME \ --region=REGION \ --network=NETWORK_NAME \ --range=PRIMARY_IP_RANGE \ [ --stack-type=STACK_TYPE ] \ [ --ipv6-access-type=IPv6_ACCESS_TYPE ] \ --enable-private-ip-google-access
Reemplaza los siguientes elementos por valores válidos:
SUBNET_NAME
: El nombre de la subredREGION
: La región de la subredNETWORK_NAME
: El nombre de la red de VPC que contiene la subredPRIMARY_IP_RANGE
: El rango de direcciones IP principal de la subredSTACK_TYPE
es el tipo de pila para la subred:IPV4_ONLY
oIPV4_IPV6
.IPv6_ACCESS_TYPE
es el tipo de acceso IPv6:EXTERNAL
oINTERNAL
. Especifica el tipo de acceso IPv6 solo si también especificaste--stack-type=IPV4_IPV6
.
Inhabilita el Acceso privado a Google
Sigue estos pasos para inhabilitar el acceso privado a Google en una subred existente:
Consola
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en el nombre de la red que contiene la subred en la que necesitas inhabilitar el Acceso privado a Google.
Haz clic en el nombre de una subred existente. Se mostrará la página Detalles de la subred.
Haz clic en Editar.
En la sección Acceso privado a Google selecciona Inhabilitar.
Haz clic en Guardar.
gcloud
Determina el nombre y la región de la subred. Para ver una lista de las subredes de una red en particular, usa el siguiente comando:
gcloud compute networks subnets list \ --filter=NETWORK_NAME
Ejecuta el siguiente comando para inhabilitar el Acceso privado a Google:
gcloud compute networks subnets update SUBNET_NAME \ --region=REGION \ --no-enable-private-ip-google-access
Ejecuta el siguiente comando para verificar que el Acceso privado a Google esté inhabilitado:
gcloud compute networks subnets describe SUBNET_NAME \ --region=REGION \ --format="get(privateIpGoogleAccess)"
En todos los comandos anteriores, reemplaza los siguientes por valores válidos:
SUBNET_NAME
: El nombre de la subredREGION
: La región de la subredNETWORK_NAME
: El nombre de la red de VPC que contiene la subred