Accede a las APIs regionales de Google a través de extremos

En este documento, se explica cómo usar los extremos de Private Service Connect para conectarse a extremos regionales de las APIs de Google compatibles.

Para obtener información sobre otras opciones de configuración de Private Service Connect, consulta Private Service Connect.

Roles

Para obtener los permisos que necesitas a fin de crear un extremo regional de Private Service Connect, pídele a tu administrador que te otorgue los siguientes roles de IAM en la red de VPC:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios a través de funciones personalizadas o cualquier otro rol predefinido.

Antes de comenzar

  1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    $ gcloud init

  2. Habilita las API de Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory.

    Habilita las API

  3. Habilita las APIs de Google a las que deseas acceder a través de los extremos de Private Service Connect mediante la página APIs y servicios en la consola de Google Cloud. Private Service Connect no habilita de forma automática ninguna API.

  4. Asegúrate de que las reglas de firewall de salida permitan el tráfico al extremo. La configuración predeterminada del firewall para una red de VPC permite este tráfico, porque contiene una regla de permiso de salida implícita. Verifica que no hayas creado una regla de salida de prioridad más alta que bloquee el tráfico.

  5. Lee los problemas conocidos.

Crea un extremo regional de Private Service Connect

Puedes crear un extremo de Private Service Connect regional a fin de enviar solicitudes a un extremo regional para una API de Google de destino.

Para obtener una lista de extremos regionales admitidos, consulta Regiones y servicios compatibles.

Los nombres de host del extremo regional tienen dos formas:

  • Nombres de host públicos: SERVICE.REGION.rep.DOMAIN
  • Nombres de host privados: SERVICE.REGION.p.rep.DOMAIN

    El nombre de host privado agrega un subdominio p entre REGION y rep.

Cuando configuras la API de Google de destino, especificas el formato privado del nombre de host, por ejemplo, spanner.me-central2.p.rep.googleapis.com. Después de crear el extremo, crea un registro DNS privado para el extremo, mediante el mismo nombre de host regional del extremo.

Aunque puedes configurar el extremo de Private Service Connect con cualquier nombre, para facilitar el mantenimiento, recomendamos usar el nombre del servicio de la API de Google de destino, de modo que el nombre de DNS coincida con el nombre del extremo. Por ejemplo, si el extremo tiene un objetivo de spanner.me-central2.p.rep.googleapis.com, usa spanner como el nombre del extremo.

gcloud

Usa el comando regional-endpoints create.

gcloud beta network-connectivity regional-endpoints create ENDPOINT_NAME \
    --region=REGION \
    --network=NETWORK_URI \
    --subnetwork=SUBNET_URI \
    --target-google-api=REP_NAME

Si deseas que el extremo esté disponible para los recursos en otras regiones, agrega la marca --enable-global-access.

Reemplaza lo siguiente:

  • ENDPOINT_NAME: un nombre para el extremo.

  • REGION: región en la que deseas crear el extremo.

  • NETWORK_URI: el URI de la red de VPC del extremo: projects/PROJECT_ID/global/networks/NETWORK_NAME.

  • SUBNET_URI: el URI de la subred a la que deseas conectar el extremo: projects/PROJECT_ID/regions/SUBNET_NAME.

  • REP_NAME: el nombre del extremo del servicio regional al que deseas conectarte. Por ejemplo, spanner.me-central2.p.rep.googleapis.com

Enumerar extremos

Puedes enumerar todos los extremos configurados.

gcloud

Usa el comando regional-endpoints list.

gcloud beta network-connectivity regional-endpoints list \
    --region=REGION

Reemplaza REGION por la región de los extremos que deseas enumerar.

Verifica que el extremo funcione

Crea una instancia de máquina virtual (VM) en la red de VPC y la región en las que se configura el extremo. Ejecuta el siguiente comando en la VM para verificar que el extremo de Private Service Connect funcione. Los extremos no responden a las solicitudes de ping (ICMP).

curl --connect-to SERVICE.REGION.p.rep.DOMAIN:443:ENDPOINT_IP:443 \
'SERVICE.REGION.p.rep.DOMAIN/PATH'

Reemplaza lo siguiente:

  • SERVICE: el servicio al que apunta tu extremo. Por ejemplo, spanner o logging.
  • REGION: la región del extremo.
  • DOMAIN: dominio del servicio. Por ejemplo, googleapis.com
  • ENDPOINT_IP: la dirección IP del extremo.
  • PATH: la ruta a un recurso que entrega este servicio. Por ejemplo, muchos servicios ofrecen un documento de descubrimiento con la ruta $discovery/rest?version=v1.

En la siguiente solicitud de ejemplo, se prueba que un extremo con la dirección IP 192.168.1.100 puede solicitar el documento de descubrimiento de la API de Cloud Spanner del extremo regional en me-central2.

curl --connect-to spanner.me-central2.p.rep.googleapis.com:443:192.168.1.100:443 \
'https://spanner.me-central2.p.rep.googleapis.com/$discovery/rest?version=v1'

Crea una entrada de DNS privada para el extremo

Debes crear entradas de DNS para los extremos en este formato: SERVICE.REGION.p.rep.DOMAIN. Puedes usar Cloud DNS para crear las entradas de DNS.

  1. Crea una zona de DNS privada que tenga este formato: REGION.p.rep.DOMAIN.

    Por ejemplo, si deseas usar un extremo regional en el dominio googleapis.com, en la región me-central2, crea una zona de DNS privada con este nombre: me-central2.p.rep.googelapis.com.

  2. Crea un registro DNS que apunte a la dirección IP asignada al extremo. El nombre de host debe coincidir con el nombre del servicio, SERVICE. Por ejemplo, spanner o logging son nombres de servicio.

Por ejemplo, si tu extremo está configurado con el spanner.me-central2.p.rep.googleapis.com de destino, creas una zona de DNS privada llamada me-central2.p.rep.googelapis.com y un registro A llamado spanner que apunta a dirección IP del extremo. El nombre de dominio completamente calificado del extremo es spanner.me-central2.p.rep.googelapis.com.

Configura los clientes para usar el nombre del extremo privado

Debes configurar los clientes para que usen los nombres de DNS privados en lugar de los públicos de DNS. Consulta la documentación de tu cliente o biblioteca cliente para obtener información sobre cómo configurarla con el fin de usar extremos personalizados. Por ejemplo:

  • Python: puedes configurar api_endpoint en Opciones del cliente.

  • Go: puedes configurar WithEndpoint en ClientOptions.

  • .NET: puedes configurar Endpoint en la clase de compilador del cliente.

  • gcloud: Puedes configurar api_endpoint_overrides en la gcloud CLI.

Obtén información detallada sobre un extremo

Puedes ver todos los detalles de configuración de un extremo.

gcloud

Usa el comando regional-endpoints list describe.

gcloud beta network-connectivity regional-endpoints describe \
    ENDPOINT_NAME --region=REGION

Reemplaza lo siguiente:

  • ENDPOINT_NAME: El nombre del extremo.
  • REGION: la región del extremo.

Borra un extremo †

Puedes borrar un extremo.

gcloud

Usa el comando regional-endpoints list delete.

gcloud beta network-connectivity regional-endpoints delete \
    ENDPOINT_NAME --region=REGION

Reemplaza lo siguiente:

  • ENDPOINT_NAME: El nombre del extremo.
  • REGION: la región del extremo.

Accede a los extremos desde redes híbridas

Los clientes en las redes conectadas a Google Cloud con adjuntos de VLAN para los túneles de Cloud Interconnect o Cloud VPN pueden llegar a los extremos de Private Service Connect.

  • El adjunto de VLAN o el túnel de Cloud VPN deben finalizar en la misma red de VPC que el extremo. Los clientes en redes de VPC de intercambio de tráfico no pueden alcanzar extremos.

  • El tráfico del cliente desde los adjuntos de VLAN o los túneles de Cloud VPN puede llegar a los extremos en otra región si se configura el acceso global.

  • Dataplane v1 y Dataplane v2 son compatibles con los adjuntos de VLAN. Para obtener más información sobre las versiones de Dataplane, consulta Dataplane v2.

Debes configurar los sistemas en la otra red para que puedan realizar consultas a tus zonas de DNS privadas.

Si implementaste las zonas del DNS privado con Cloud DNS, completa los siguientes pasos:

  • Crea una política de servidor de entrada en la red de VPC a la que se conecta la otra red.

  • Identifica los puntos de entrada de reenvío entrantes en la región en la que se encuentra el adjunto de VLAN o el túnel de Cloud VPN, en la red de VPC a la que tu otra red se conecta.

  • Configura sistemas y servidores de nombres de DNS en la otra red para reenviar los Nombres de DNS para los extremos a un punto de entrada de reenvío entrante en la misma región que el adjunto de VLAN o el túnel de Cloud VPN que se conecta a la red de VPC.

Problemas conocidos

  • Cuando creas un extremo de Private Service Connect regional, se puede ver en la consola de Google Cloud con un nombre generado automáticamente en este formato: rep-autogen-fr-ENDPOINT_NAME. Sin embargo, no edites el extremo mediante la consola de Google Cloud ni mediante la modificación de la regla de reenvío.

    Si necesitas cambiar el nombre o habilitar el acceso global, borra el extremo y crea un extremo nuevo.