Cómo configurar el acceso privado a Google de los hosts locales

El acceso privado a Google local permite que tus hosts locales se conecten a las API y los servicios de Google a través de un túnel de Cloud VPN o de una conexión de Cloud Interconnect. Los hosts no requieren de una dirección IP externa. A fin de obtener más información sobre el acceso privado a Google para los hosts locales y otras opciones de acceso privado, consulta Opciones de acceso privado a servicios.

A fin de ver las API y los servicios aptos que puedes utilizar con el acceso privado a Google para los hosts locales, consulta servicios admitidos en la descripción general del acceso privado a Google para los hosts locales.

Requisitos

  • Debes habilitar las API que quieres que accedan a través de la página de API y de servicios en Google Cloud Platform Console.
  • 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.
  • 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.
  • Debes utilizar una ruta que tenga como próximo salto la puerta de enlace predeterminada de Internet para que tu red de VPC reenvíe el tráfico destinado a 199.36.153.4/30. Para hacerlo, puedes utilizar la ruta predeterminada o una ruta estática personalizada.

Cómo configurar el acceso privado a Google para los hosts locales

A fin de configurar el acceso privado a Google para los hosts locales, debes realizar las siguientes acciones:

  • Configurar las rutas para que el tráfico hacia la API de Google se reenvíe a través de tu Cloud VPN o de tu conexión de Cloud Interconnect. Para obtener más información, consulta Cómo configurar las rutas.
  • Configurar las reglas de firewall en tu firewall local para permitir que el tráfico de tus hosts locales llegue al rango de IP de las API restringidas de Google. Para obtener más información, consulta Cómo configurar las reglas de firewall.
  • Configurar un DNS para que el tráfico hacia la API de Google se resuelva en el rango de IP restringido de las API de Google. Para obtener más información, consulta Cómo configurar un DNS.

Cómo configurar las rutas

Anuncios personalizados de Cloud Router

Puedes utilizar el anuncio de ruta personalizado de Cloud Router para anunciar las direcciones IP restringidas de las API de Google en tu red local. El rango de direcciones IP restringido de las API de Google es 199.36.153.4/30. Aunque este es un rango de direcciones IP públicas, Google no anuncia sus rutas de forma pública. Este rango de direcciones IP está disponible solo para hosts locales que lleguen a tu red de VPC a través de direcciones IP internas, como a través de un túnel de Cloud VPN o de una conexión de Cloud Interconnect.

Para anunciar el rango de direcciones restringido, agrega un anuncio de ruta personalizado a través de Cloud Router. Puedes agregar este anuncio a Cloud Router o a una sesión de BGP exclusiva (por ejemplo, a un único túnel de Cloud VPN o un adjunto de VLAN).

Realiza los siguientes pasos y crea un anuncio de ruta personalizado del rango restringido para todas las sesiones de BGP en un Cloud Router existente:

Console


  1. Ve a la página Cloud Router en Google Cloud Platform Console.
    Lista de Cloud Router
  2. Selecciona el Cloud Router que quieras 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. 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 un rango de IP personalizado.
    • Rango de direcciones IP: especifica 199.36.153.4/30.
    • 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 y utiliza los marcadores --set-advertisement-ranges o --add-advertisement-ranges para especificar los rangos de IP personalizados:

  • Para configurar los rangos de IP personalizados, utiliza el marcador --set-advertisement-ranges. Se reemplazará cualquier anuncio personalizado existente. En el siguiente ejemplo se actualiza el Cloud Router my-router para anunciar todas las subredes y el rango de IP restringido 199.36.153.4/30 de las API de Google:

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • Para agregar un rango de IP personalizado a un anuncio existente, utiliza el marcador --add-advertisement-ranges. Ten en cuenta que este marcador requiere que el modo del anuncio de Cloud Router esté configurado como custom. En el siguiente ejemplo se agrega la IP personalizada Restricted Google APIs IPs a los anuncios de Cloud Router:

    gcloud compute routers update my-router \
        --add-advertisement-ranges 199.36.153.4/30
    

Realiza los siguientes pasos para crear un anuncio de ruta personalizado del rango restringido de una sesión de BGP específica en un Cloud Router existente.

Console


  1. Ve a la página Cloud Router en Google Cloud Platform Console.
    Lista de Cloud Router
  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 un rango de IP personalizado.
    • Rango de direcciones IP: especifica 199.36.153.4/30.
    • 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 y utiliza los marcadores --set-advertisement-ranges o --add-advertisement-ranges para especificar los rangos de IP personalizados.

  • Para configurar los rangos de IP personalizados, utiliza el marcador --set-advertisement-ranges. Se reemplazará cualquier anuncio personalizado existente. En el siguiente ejemplo se actualiza la sesión de BGP my-bgp-session en el Cloud Router my-router para anunciar todas las subredes y el rango de IP personalizado 199.36.153.4/30:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • Para agregar los rangos de IP personalizados a rangos existentes, utiliza el marcador --add-advertisement-ranges. Ten en cuenta que este marcador requiere que el modo del anuncio de Cloud Router esté configurado como custom. En el siguiente ejemplo se agregan las IP 199.36.153.4/30 restringidas de las API de Google a los anuncios de Cloud Router:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges 199.36.153.4/30
    

    Para obtener más información sobre los anuncios personalizados, consulta Anuncios de ruta personalizados.

Requisito de ruta de la red de VPC

Tu red de VPC debe estar configurada para enrutar el tráfico hacia 199.36.153.4/30 que utilice la puerta de enlace de Internet predeterminada como el siguiente salto. En una red de VPC nueva, esto se logra a través de la ruta predeterminada. Sin embargo, también puedes crear una ruta estática personalizada que tenga como destino 199.36.153.4/30 y que su siguiente salto sea la puerta de enlace de Internet predeterminada. Es obligatorio crear una ruta estática personalizada si quitas la ruta predeterminada.

Cómo configurar las reglas de firewall

Debes configurar las reglas de tu firewall local para permitir que el tráfico desde tus hosts locales alcance 199.36.153.4/30.

Cómo configurar un DNS

Configura tu propio servidor de DNS para resolver *.googleapis.com como un CNAME en restricted.googleapis.com. Puedes utilizar BIND para configurar el DNS.

Puedes utilizar las zonas de DNS privadas de Cloud DNS o BIND.

  • Las zonas de DNS privadas de Cloud DNS te permiten alojar una zona DNS accesible desde redes de VPC autorizadas y, si configuras el reenvío, desde ciertos servidores de nombre locales. Puedes crear una zona privada en googleapis.com con un registro A para restricted.googleapis.com y registros CNAME adecuados por cada nombre de *.googleapis.com. Las zonas privadas de Cloud DNS no admiten anulaciones parciales, lo que significa que solo puedes elegir que todas las solicitudes a *.googleapis.com se redireccionen hacia restricted.googleapis.com. Como resultado, no podrás utilizar una API o un servicio de Google que no admita el uso del VIP de restricted.googleapis.com. Para obtener más información, consulta Cómo administrar las zonas.
  • No se puede utilizar BIND y el VIP de restricted.googleapis.com en Cloud Dataflow, ya que la resolución DNS en Cloud Dataflow no se puede personalizar.

Cómo configurar un DNS con Cloud DNS

Para habilitar la resolución DNS en el acceso privado a Google a través de Cloud DNS, realiza el siguiente procedimiento:

gcloud


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

    gcloud beta dns managed-zones create apis \
        --visibility private \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --dns-name googleapis.com
    
  2. Crea una política y habilita el reenvío de entrada en tu red de VPC.

    gcloud beta dns policies create --name apipolicy \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --enable-inbound-forwarding true
    
  3. Inicia una transacción.

    gcloud dns record-sets transaction start -z apis
    
  4. Agrega registros DNS.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. --zone apis --ttl 300
    
    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 apis --ttl 300
    
  5. Ejecuta la transacción.

    gcloud dns record-sets transaction execute --zone apis
    
  6. En tu red local, apunta tu DNS local hacia la dirección IP de reenvío de Cloud DNS. Para localizar la dirección IP de reenvío, utiliza el comando compute addresses list:

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

Cómo configurar un DNS con BIND

Si utilizas BIND en tu resolución de DNS local, puedes configurarla para que resuelva las solicitudes a la API de Google en las API restringidas de Google a través de zonas de política de respuestas (RPZ), como se muestra en la siguiente configuración de BIND:

  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.
    

Pasos siguientes

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