Cómo configurar el acceso privado a Google

El acceso privado a Google permite que las instancias de VM con direcciones IP internas (privadas) únicamente (no direcciones IP externas) alcancen las direcciones IP públicas de las API y los servicios de Google. Puedes habilitar el acceso privado a Google en el nivel de la subred. Cuando se encuentra habilitado, las instancias en la subred que solo tienen direcciones IP privadas pueden enviar tráfico a las API y los servicios de Google mediante la ruta predeterminada (0.0.0.0/0) con un siguiente salto a la puerta de enlace de Internet predeterminada.

El acceso privado a Google brinda acceso a ciertos servicios de Google Cloud desde instancias de VM con direcciones IP internas únicamente. Para obtener detalles acerca del acceso privado a Google y otras opciones de acceso privado, visita Opciones de acceso privado para servicios.

Para ver las API y los servicios elegibles que puedes usar con el acceso privado a Google, visita servicios compatibles en la descripción general del acceso privado a Google.

Especificaciones

Permisos

Los propietarios del proyecto, los editores y los miembros 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.

Resolución de DNS para API y servicios

La resolución de DNS para los dominios asociados con las API o los servicios de Google, incluidos *.googleapis.com y gcr.io, no varía cuando se habilita el acceso privado a Google en una subred. Los registros DNS de las API y los servicios de Google siempre se orientan a direcciones IP externas. El conjunto de direcciones IP externas que utilizan está sujeto a cambios, pero puede determinarse consultando _spf.google.com y los registros TXT a los que hace referencia.

Por ejemplo:

dig -t TXT _spf.google.com

El acceso privado a Google funciona junto con una ruta adecuada para permitir a las instancias de VM con direcciones IP internas únicamente alcanzar las direcciones IP externas de las API y los servicios de Google.

Logging

Stackdriver Logging captura todas las solicitudes a la API realizadas 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 usando la IP privada de la instancia.

Puedes configurar el uso diario y, también, informes mensuales de lista completa para que se envíen a un depósito de Cloud Storage. Consulta la página Cómo ver informes de uso para obtener detalles.

Requisitos

El acceso privado a Google tiene los siguientes requisitos:

  • El acceso privado a Google no habilita ninguna API de forma automática. Debes habilitar las API de Google que necesitas mediante la página de las API y los servicios de Google en Google Cloud Platform Console por separado.

  • El acceso privado a Google requiere una red de VPC. Se admiten las redes de VPC en modo automático y personalizado. No se admiten las redes heredadas.

  • El acceso privado a Google solo se aplica a las instancias que tienen direcciones IP internas únicamente. Habilitar o inhabilitar el acceso privado a Google no afecta aquellas instancias con direcciones IP externas.

  • Debes habilitar el acceso privado a Google con un arreglo de subred por subred, ya sea cuando creas una subred o editándola después. El acceso privado a Google, cuando se encuentra habilitado en una subred, se aplica a instancias de VM nuevas y existentes de esa subred que no tienen direcciones IP externas.

  • El acceso privado a Google requiere una ruta a las direcciones IP públicas usadas por las API y los servicios de Google. La ruta predeterminada normalmente proporciona esta ruta de acceso. Consulta la sección enrutamiento para obtener más detalles.

Enrutamiento

Enrutamiento con una ruta predeterminada

En una red de VPC típica, el propósito principal de una ruta predeterminada es brindar acceso a Internet a las instancias con direcciones IP externas.

Sin embargo, el acceso privado a Google usa la ruta predeterminada para enviar tráfico a las direcciones IP externas de las API y los servicios de Google desde las instancias de las subredes en las que el acceso privado a Google está habilitado. Revisa la descripción general de las rutas para obtener información sobre cómo funciona el enrutamiento en GCP.

No puedes usar una ruta predeterminada para el acceso privado a Google si tienes una ruta personalizada con un destino de 0.0.0.0/0 y un salto siguiente distinto a default Internet gateway. En cambio, debes crear una serie de rutas personalizadas para cumplir el requisito de enrutamiento del acceso privado a Google. Por ejemplo, debes crear rutas personalizadas en los siguientes casos:

  • Tienes una ruta estática personalizada para dirigir el tráfico destinado a 0.0.0.0/0 a un túnel VPN de Cloud o a otra instancia, como una instancia de NAT.
  • Usas un Cloud Router para aceptar una ruta dinámica personalizada con un destino de 0.0.0.0/0.

Enrutamiento avanzado

Puedes crear una serie de rutas estáticas personalizadas para enviar tráfico a las direcciones IP externas de las API y los servicios de Google. El siguiente salto para cada ruta de esta serie debe ser default Internet gateway, pero el destino de cada una es un rango de direcciones IP único del conjunto de rangos usados por las API y los servicios de Google. Consulta la resolución de DNS para las API y los servicios a fin de determinar esos rangos de IP.

Cómo comprobar la existencia de una ruta predeterminada

Con el objetivo de determinar si existe una ruta predeterminada para una red, usa GCP Console o la herramienta de línea de comandos de gcloud:

Console

  1. Ve a la página Rutas en Google Cloud Platform Console.
    Ir a la página Rutas
  2. Filtra la lista de rutas para ver solo las rutas de la red que debes inspeccionar.
  3. Busca una ruta cuyo destino sea 0.0.0.0/0 y cuyo siguiente salto sea 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]"

Cómo crear rutas obligatorias

Si puedes usar la ruta predeterminada para un acceso privado a Google y necesitas recrearla, crea una ruta estática personalizada de reemplazo con el destino y el siguiente salto que se encuentran a continuación:

  • Destino: 0.0.0.0/0
  • Siguiente salto: Puerta de enlace de Internet predeterminada

Si no puedes usar la ruta predeterminada, puedes crear varias rutas estáticas personalizadas para cumplir con los requisitos de enrutamiento del acceso privado a Google, en el que cada ruta tiene el destino y el siguiente salto que se encuentran a continuación:

  • Destino: uno de los rangos de direcciones IP usado por las API y los servicios de Google
  • Siguiente salto: Puerta de enlace de Internet predeterminada

Reglas de firewall

Además de cumplir los requisitos de enrutamiento, las reglas de firewall de tu red deben permitir el acceso desde las VM a las API de Google y los servicios de GCP.

Para que las instancias usen el acceso privado a Google, debes permitir el tráfico de salida desde las instancias a las API y los servicios de Google. Si tienes una regla de firewall que deniega el tráfico de salida, puedes aplicar esa regla de forma selectiva a otras instancias que no necesitan el acceso privado a Google, o puedes anularla creando una regla de mayor prioridad para permitir el tráfico a las API y los servicios de Google. Si eliges crear una regla de firewall de mayor prioridad para permitir el tráfico al acceso privado a Google, considera las siguientes opciones:

  • Crea una regla de firewall que permita la salida al rango de direcciones 0.0.0.0/0, que indica que la salida puede ir a cualquier destino. Aplica esa regla solo a las instancias que requieren un acceso privado a Google configurando etiquetas de destino en la regla de firewall. Usa una etiqueta de origen o cuenta de servicio en las instancias. Crear una regla que se aplique solo a destinos específicos que no tienen direcciones IP externas compensa el amplio rango de destinos. Las instancias que no tienen direcciones IP externas no pueden enviar paquetes fuera de la red de VPC. Visita los requisitos de acceso a Internet para obtener más detalles.
  • Si permites el tráfico del acceso privado a Google mediante la creación de varias reglas de firewall con el objetivo de permitir la salida a destinos específicos, debes revisar y actualizar periódicamente esas reglas para que incluyan todos los rangos de direcciones IP posibles que utilizan las API y los servicios de Google. Consulta la sección Resolución de DNS para las API y los servicios a fin de determinar esos rangos de IP.

Pasos de la configuración

De forma predeterminada, el acceso privado a Google no está habilitado. Puedes habilitarlo cuando creas una subred, y puedes habilitarlo o inhabilitarlo editando una subred.

Cómo habilitar el acceso privado a Google

Sigue estos pasos para habilitar el acceso privado a Google:

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Haz clic en el nombre de la red que contiene la subred en la que necesitas habilitar el acceso privado a Google.
  3. Para una subred existente:
    1. Haz clic en el nombre de la subred. Se mostrará la página Detalles de la subred.
    2. Haz clic en Editar.
    3. En la sección Acceso privado a Google selecciona Habilitar.
    4. Haz clic en Guardar.
  4. Para una subred nueva:
    1. Haz clic en Agregar subred.
    2. Especifica el Nombre y la Región de la subred nueva.
    3. Especifica el Rango de direcciones IP de la subred. Este rango no puede superponerse con ninguna subred de la red de VPC actual ni con ninguna red conectada mediante Intercambio de tráfico entre redes de VPC o VPN.
    4. Si deseas crear un rango secundario para esta subred, haz clic en Crear rango de IP secundario.
    5. Selecciona Habilitar en la sección Acceso privado a Google.
    6. Haz clic en Agregar.

gcloud

Para una subred existente:

  1. Determina el nombre y la región de la subred. Con el objetivo de enumerar las subredes para una red particular, usa el siguiente comando, y reemplaza [NETWORK-NAME] por el nombre de la red:

    gcloud compute networks subnets list --filter=[NETWORK-NAME]
    
  2. Ejecuta el siguiente comando para habilitar el acceso privado a Google, reemplazando [SUBNET-NAME] por el nombre de la subred y [REGION] por su región:

    gcloud compute networks subnets update [SUBNET-NAME] \
    --region [REGION] \
    --enable-private-ip-google-access
    
  3. Ejecuta el siguiente comando para verificar que el acceso privado a Google esté habilitado:

    gcloud compute networks subnets describe [SUBNET-NAME] \
    --region [REGION] \
    --format="get(privateIpGoogleAccess)"
    

Cuando creas una subred nueva, agrega el parámetro --enable-private-ip-google-access. En el siguiente ejemplo se crea una subred nueva:

gcloud compute networks subnets create [SUBNET-NAME] \
--region [REGION] \
--network [NETWORK] \
--range [IP-RANGE] \
--enable-private-ip-google-access

Donde:

  • [SUBNET-NAME] es el nombre de la subred.
  • [NETWORK]es el nombre de la red de VPC que contendrá la subred.
  • [IP-RANGE] es el rango principal de direcciones IP de la subred.
  • [REGION] es la región de la subred.

Cómo inhabilitar el acceso privado a Google

Sigue estos pasos para inhabilitar el acceso privado a Google en una subred existente:

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Haz clic en el nombre de la red que contiene la subred en la que necesitas inhabilitar el acceso privado a Google.
  3. Haz clic en el nombre de una subred existente. Se mostrará la página Detalles de la subred.
  4. Haz clic en Editar.
  5. En la sección Acceso privado a Google selecciona Inhabilitar.
  6. Haz clic en Guardar.

gcloud

  1. Determina el nombre y la región de la subred. Con el objetivo de enumerar las subredes para una red particular, usa el siguiente comando, y reemplaza [NETWORK-NAME] por el nombre de la red:

    gcloud compute networks subnets list --filter=[NETWORK-NAME]
    
  2. Ejecuta el siguiente comando para inhabilitar el acceso privado a Google, reemplazando [SUBNET-NAME] por el nombre de la subred y [REGION] por su región:

    gcloud compute networks subnets update [SUBNET-NAME] \
    --region [REGION] \
    --no-enable-private-ip-google-access
    
  3. Ejecuta el siguiente comando para verificar que el acceso privado a Google esté habilitado:

    gcloud compute networks subnets describe [SUBNET-NAME] \
    --region [REGION] \
    --format="get(privateIpGoogleAccess)"
    

Cómo quitar direcciones IP externas de las instancias

Dado que el acceso privado a Google solo es pertinente para instancias sin direcciones IP externas, es posible que debas modificar las instancias en ejecución después de habilitar el acceso privado a Google para una subred. Para quitar una dirección IP externa de una instancia, consulta Cómo desasignar una dirección IP estática externa en la documentación de Compute Engine.

Para obtener más información sobre las direcciones IP de instancia, consulta direcciones IP en la documentación de Compute Engine.

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión: