Accede a las API de Google mediante Private Service Connect

Private Service Connect te permite conectarte a los productores de servicios mediante extremos con direcciones IP internas en la red de VPC.

En este documento, se explica cómo usar los extremos de Private Service Connect para conectarte a las API de Google. En lugar de enviar solicitudes a la API a las direcciones IP disponibles de forma pública para extremos de servicio como storage.googleapis.com, puedes enviar las solicitudes a la dirección IP interna de un extremo de Private Service Connect.

También puedes usar Private Service Connect para acceder a los servicios en otra red de VPC y publicar servicios.

Funciones

Las siguientes funciones de IAM proporcionan los permisos necesarios para realizar las tareas de esta guía.

Tarea Funciones
Crear un extremo de Private Service Connect Todas las siguientes funciones:
Administrador de red de Compute (roles/compute.networkAdmin),
Editor del Directorio de servicios (roles/servicedirectory.editor) y
Administrador de DNS (roles/dns.admin)
Configurar Acceso privado a Google (opcional) Administrador de red de Compute (roles/compute.networkAdmin)

Antes de comenzar

  • Private Service Connect no habilita de forma automática ninguna API. Debes habilitar las API de Google por separado desde la página API y servicios en Google Cloud Console.

  • Debes habilitar la API de Compute Engine en tu proyecto.

  • Debes habilitar la API de Directorio de servicios en tu proyecto.

  • Debes habilitar la API de Cloud DNS en tu proyecto.

  • Las reglas de firewall de salida deben permitir el tráfico al extremo de Private Service Connect. 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.

  • Las instancias de máquina virtual (VM) sin una dirección IP externa asignada deben usar una subred con Acceso privado a Google habilitado para acceder a las API y los servicios de Google mediante un extremo de Private Service Connect.

    Una VM con una dirección IP externa puede acceder a los servicios y las API de Google mediante extremos de Private Service Connect, incluso si el Acceso privado a Google está inhabilitado para su subred. La conectividad con el extremo de Private Service Connect permanece dentro de la red de Google.

  • Si tu red de VPC no contiene extremos de Private Service Connect, verifica si existe una zona privada de Cloud DNS para p.googleapis.com. Si la zona existe, bórrala antes de crear el extremo de Private Service Connect. Si no la borras, la creación de la zona DNS del Directorio de servicios usada para la Private Service Connect falla. Si deseas obtener más información, consulta Solución de problemas.

  • No se puede acceder a los extremos de Private Service Connect desde redes de VPC con intercambio de tráfico.

Habilita Acceso privado a Google para una subred

Las VM sin una dirección IP externa asignada deben conectarse a una subred con Acceso privado a Google habilitado para acceder a las API y los servicios de Google mediante un extremo de Private Service Connect.

Si la VM tiene más de una interfaz, conecta la interfaz que está configurada con una ruta predeterminada (por lo general, nic0).

La dirección IP de origen de los paquetes que se envían desde la VM debe coincidir con la dirección IP interna principal de la interfaz de VM o con una dirección IP interna de un rango de IP de alias.

Para habilitar Acceso privado a Google en una subred, sigue estos pasos.

Console

  1. En Google Cloud Console, ve a Redes de VPC.
    Ir a las 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. Haz clic en el nombre de la subred. Se mostrará la página Detalles de la subred.
  4. Haz clic en Editar.
  5. En la sección Acceso privado a Google selecciona Habilitar.
  6. Haz clic en Guardar.

gcloud

  1. 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
    
  2. 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
    
  3. 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 subred
  • REGION: La región de la subred
  • NETWORK_NAME: El nombre de la red de VPC que contiene la subred

Terraform

Puedes usar el recurso de Terraform para habilitar el Acceso privado a Google en una subred.

resource "google_compute_network" "network" {
  provider                = google-beta
  project                 = var.project # Replace this with your project ID in quotes
  name                    = "tf-test"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "vpc_subnetwork" {
  provider                 = google-beta
  project                  = google_compute_network.network.project
  name                     = "test-subnetwork"
  ip_cidr_range            = "10.2.0.0/16"
  region                   = "us-central1"
  network                  = google_compute_network.network.id
  private_ip_google_access = true
}

Private Service Connect y Directorio de servicios

Los extremos de Private Service Connect se registran en el Directorio de servicios. El Directorio de servicios es una plataforma para almacenar, administrar y publicar servicios. Cuando creas un extremo de Private Service Connect para acceder a las API y los servicios de Google, seleccionas una región del Directorio de servicios y un espacio de nombres del Directorio de servicios.

Región del Directorio de servicios

El Directorio de servicios es un servicio regional. La región que selecciones define dónde reside el plano de control del Directorio de servicios. No hay diferencias funcionales entre las regiones, pero es posible que tengas una preferencia por motivos administrativos.

Cuando creas el primer extremo de Private Service Connect para las API de Google en una red de VPC, la región que seleccionas se usa como la región predeterminada para todos los extremos posteriores creados en esa red. Si una región aún no está configurada para una red y no especificas una región, se establece en us-central1. Todos los extremos de una red deben usar la misma región del Directorio de servicios.

Espacio de nombres del Directorio de servicios

Cuando creas el primer extremo de Private Service Connect para las API de Google en una red de VPC, el espacio de nombres que seleccionas se usa como el espacio de nombres predeterminado para todos los extremos posteriores creados en esa red. Si el espacio de nombres aún no está configurado para una red y no especificas un espacio de nombres, se usa un espacio de nombres generado por el sistema. Todos los extremos de una red deben usar el mismo espacio de nombres del Directorio de servicios. El espacio de nombres que elijas debe usarse solo para los extremos de Private Service Connect que se usan a fin de acceder a las API de Google. Puedes usar el mismo espacio de nombres para los extremos en varias redes.

Cuando creas un extremo de Private Service Connect, se crean las siguientes configuraciones de DNS:

  • Se crea una zona de DNS privado del Directorio de servicios para p.googleapis.com.

  • Registros DNS se crean en p.googleapis.com para algunos servicios y API de Google de uso común que están disponibles mediante Private Service Connect y tienen nombres de DNS predeterminados que terminan en googleapis.com.

    Consulta Crea registros DNS y obtén instrucciones sobre cómo crear registros DNS para API y servicios que no tienen un registro DNS en p.googleapis.com.

Los servicios disponibles varían según si seleccionas el paquete de API all-apis o vpc-sc.

Se crea una zona DNS de Directorio del servicio para cada red de VPC que contiene un extremo de Private Service Connect.

Los nombres DNS para un extremo de Private Service Connect son accesibles en todas las regiones en tu red de VPC.

API admitidas

Cuando creas un extremo de Private Service Connect para acceder a las API y los servicios de Google, debes elegir a qué paquete de API necesitas acceder: Todas las API (all-apis) o VPC-SC (vpc-sc).

Los paquetes de API proporcionan acceso a las mismas API que están disponibles a través de los VIP del Acceso privado a Google.

  • El paquete all-apis proporciona acceso a las mismas API que private.googleapis.com.

  • El paquete vpc-sc proporciona acceso a las mismas API que restricted.googleapis.com.

Los paquetes de API solo admiten protocolos basados en HTTP mediante TCP (HTTP, HTTPS y HTTP/2) No se admiten todos los demás protocolos, incluidos ICMP y MQTT.

Paquete de API Servicios compatibles Ejemplo de uso
all-apis Habilita el acceso a la mayoría de los servicios y las API de Google, sin importar si son compatibles con los Controles del servicio de VPC. Incluye acceso a la API de Maps, Google Ads, Google Cloud y la mayoría de las demás API de Google, incluidas las listas que aparecen a continuación. Es incompatible con las aplicaciones web de Google Workspace. No es compatible con ningún sitio web interactivo.

Nombres de dominio que coinciden:
  • accounts.google.com (solo las rutas de acceso necesarias para la autenticación OAuth)
  • appengine.google.com
  • *.appspot.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • dl.google.com
  • gcr.io o *.gcr.io
  • *.googleadapis.com
  • *.googleapis.com
  • *.gstatic.com
  • *.ltsapis.goog
  • *.notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev o *.pkg.dev
  • pki.goog o *.pki.goog
  • *.run.app
  • source.developers.google.com
Elige all-apis en estas circunstancias:
  • Si no usas los Controles del servicio de VPC.
  • Debes usar los Controles del servicio de VPC, pero también debes acceder a los servicios y las API de Google que no son compatibles con estos controles.
vpc-sc Habilita el acceso a la API a los servicios y las API de Google que son compatibles con los Controles del servicio de VPC.

Bloquea el acceso a los servicios y a las API de Google que son incompatibles con los Controles del servicio de VPC. Es incompatible con las aplicaciones web de Google Workspace y con las API de Google Workspace.

Elige vpc-sc cuando solo necesites acceso a los servicios y las API de Google que son compatibles con los Controles del servicio de VPC. El paquete vpc-sc no permite el acceso a los servicios ni las API de Google que no son compatibles con los Controles del servicio de VPC.

Elige una dirección IP para el extremo de Private Service Connect

Cuando configuras Private Service Connect en una red de VPC, proporcionas una dirección IP para usar en el extremo de Private Service Connect.

La dirección se considera dentro de la cuota del proyecto para direcciones IP internas globales.

La dirección IP debe cumplir con las siguientes especificaciones:

  • Debe ser una sola dirección IP y no un rango de direcciones.

  • Debe ser una dirección IPv4 válida. Puede ser una dirección RFC 1918 o una dirección que no sea RFC 1918. Las direcciones IPv6 no son compatibles con Private Service Connect.

  • No puede estar dentro del rango de subredes configuradas en la red de VPC.

  • No puede estar dentro de un rango de direcciones IP principal o secundario de ninguna subred en la red de VPC ni en una red conectada a la red de VPC con el intercambio de tráfico entre redes de VPC.

  • No puede superponerse con una ruta estática personalizada /32 en la red de VPC local. Por ejemplo, si la red de VPC tiene una ruta estática personalizada para 10.10.10.10/32, no puedes reservar la dirección 10.10.10.10 para Private Service Connect.

  • No se puede superponer con una ruta estática personalizada de intercambio de tráfico /32 si configuraste la red con intercambio de tráfico para exportar rutas personalizadas y si configuraste tu red de VPC para importar rutas personalizadas.

  • No puede estar en ninguno de los rangos de IP de modo automático (en 10.128.0.0/9) si la red de VPC local es una red de modo automático o si intercambia tráfico con una red de modo automático.

  • No puede estar dentro de un rango de IP asignado en la red de VPC local. Sin embargo, puede estar dentro de un rango de IP asignado en una red de VPC con intercambio de tráfico.

  • Si un extremo de Private Service Connect se superpone con una ruta dinámica personalizada cuyo destino es el mismo /32, el extremo de Private Service Connect tendrá prioridad.

  • Si una dirección IP de extremo de Private Service Connect se encuentra dentro del rango de destino de una ruta estática personalizada, una ruta dinámica personalizada o una ruta personalizada de intercambio de tráfico y esa ruta tiene una máscara de subred más corta que /32, el extremo de Private Service Connect tiene mayor prioridad.

Crea un extremo de Private Service Connect

Una vez que hayas elegido una dirección IP que cumpla con los requisitos, puedes crear un extremo de Private Service Connect.

Un extremo de Private Service Connect se conecta a los servicios y las API de Google mediante una regla de reenvío global. Cada regla de reenvío se tiene en cuenta en la cuota por red de VPC para Private Service Connect.

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Haz clic en Conectar extremo.

  4. En Destino, selecciona el paquete de la API de destino que deseas usar:

    • Todas las API de Google
    • VPC‑SC
  5. En Nombre del extremo, ingresa un nombre para el extremo.

  6. Selecciona una red para el extremo.

  7. Selecciona una dirección IP para el extremo.

    La dirección IP debe cumplir con estos requisitos.

    Si necesitas una dirección IP nueva, puedes crear una:

    1. Haz clic en Crear dirección IP.
    2. Ingresa un nombre y una descripción para la dirección IP.
    3. Ingresa la dirección IP que quieres usar y haz clic en Guardar.
  8. Si aún no se configuró una región del directorio de servicios para esta red de VPC, selecciona la región que deseas usar.

    Todos los extremos que se usan para acceder a las API y los servicios de Google en una red de VPC determinada usan la misma región del Directorio de servicios.

  9. Si un espacio de nombres del Directorio de servicios aún no se configuró para esta red de VPC, configura el espacio de nombres que deseas usar:

    • Para usar un espacio de nombres asignado de forma automática, haz clic en el menú desplegable Espacio de nombres y selecciona el espacio de nombres asignado de forma automática.

    • Para seleccionar un espacio de nombres existente que se use en otra red, haz clic en el menú desplegable Espacio de nombres y selecciona un espacio de nombres de la lista. La lista muestra todos los espacios de nombres del proyecto. Debes seleccionar un espacio de nombres que se use solo para los extremos de Private Service Connect que se usan a fin de acceder a las API de Google.

    • Para crear un nuevo espacio de nombres, haz clic en el menú desplegable Espacio de nombres y, luego, en Crear espacio de nombres. Ingresa el espacio de nombres y haz clic en Crear.

    Todos los extremos que usas para acceder a los servicios y las API de Google en una red de VPC determinada usan el mismo espacio de nombres del Directorio de servicios.

  10. Haz clic en Agregar extremo.

gcloud

  1. Reserva una dirección IP interna global para asignar al extremo.

    gcloud compute addresses create ADDRESS_NAME \
      --global \
      --purpose=PRIVATE_SERVICE_CONNECT \
      --addresses=ENDPOINT_IP \
      --network=NETWORK_NAME
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: nombre que se asignará a la dirección IP reservada.

    • ENDPOINT_IP: dirección IP que se reservará para el extremo.

      La dirección IP debe cumplir con estos requisitos.

    • NETWORK_NAME: nombre de la red de VPC para el extremo.

  2. Crea una regla de reenvío para conectar el extremo a los servicios y las API de Google.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
      --global \
      --network=NETWORK_NAME \
      --address=ADDRESS_NAME \
      --target-google-apis-bundle=API_BUNDLE \
      [ --service-directory-registration=REGION_NAMESPACE_URI ]
    

    Reemplaza lo siguiente:

    • ENDPOINT_NAME: nombre que se asignará al extremo. El nombre debe ser una string de 1 a 20 caracteres y contener solo letras minúsculas y números. El nombre debe empezar con una letra.

    • NETWORK_NAME: nombre de la red de VPC para el extremo.

    • ADDRESS_NAME: nombre de la dirección reservada en la red asociada.

    • API_BUNDLE: paquete de API que estará disponible mediante el extremo. Consulta la lista de API compatibles.

      • Usa all-apis para otorgar acceso a todas las API compatibles.

      • Usa vpc-sc para restringir el acceso a las API de Google que admiten los Controles del servicio de VPC.

    • REGION_NAMESPACE_URI: Es el URI de la región o el espacio de nombres del Directorio de servicios que deseas usar. Este URI debe hacer referencia al mismo proyecto en el que estás creando el extremo de Private Service Connect.

      • Solo puedes definir una región con projects/PROJECT_NAME/locations/REGION.

      • Puedes definir una región y un espacio de nombres con projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE.

      Si omites --service-directory-registration por completo o configuras una región sin un espacio de nombres, ocurre lo siguiente:

      • Si ya se configuró una región o un espacio de nombres para esta red de VPC, se usan esos valores predeterminados.

      • Si no se configura una región, se establece en us-central1. Si un espacio de nombres no está configurado, se asigna un espacio de nombres generado por el sistema.

API

  1. Reserva una dirección IP interna global para asignar al extremo.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    
    {
    "name": ADDRESS_NAME,
    "address": ENDPOINT_IP,
    "addressType": "INTERNAL",
    "purpose": PRIVATE_SERVICE_CONNECT,
    "network": NETWORK_URL
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto

    • ADDRESS_NAME: nombre que se asignará a la dirección IP reservada.

    • ENDPOINT_IP: dirección IP que se reservará para el extremo.

      La dirección IP debe cumplir con estos requisitos.

    • NETWORK_URL: red de VPC para el extremo. Usa el método network.list o gcloud compute networks list --uri para encontrar las URL de tus redes.

  2. Crea una regla de reenvío para conectar el extremo a los servicios y las API de Google.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules
    {
     "IPAddress": ADDRESS_URL,
     "network": NETWORK_URL,
     "name": ENDPOINT_NAME,
     "target": API_BUNDLE,
     "serviceDirectoryRegistrations : [
       {
         "service_directory_region": REGION,
         "namespace": "NAMESPACE"
    
       }
     ],
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto

    • ENDPOINT_NAME: nombre que se asignará al extremo. El nombre debe ser una string de 1 a 20 caracteres y contener solo letras minúsculas y números. El nombre debe empezar con una letra.

    • NETWORK_URL: red de VPC para el extremo. Usa el método network.list o gcloud compute networks list --uri para encontrar las URL de tus redes.

    • ADDRESS_URL: URL de la dirección reservada en la red asociada. Usa el método globalAddresses.list o gcloud compute addresses list --uri para encontrar las URL de tus direcciones reservadas.

    • API_BUNDLE: paquete de API que estará disponible mediante el extremo. Consulta la lista de API compatibles.

      • Usa all-apis para otorgar acceso a todas las API compatibles.

      • Usa vpc-sc para restringir el acceso a las API de Google que admiten los Controles del servicio de VPC.

    • REGION: la región del Directorio de servicios que deseas usar. Por ejemplo, us-central1. Si omites REGION y ya existe una región configurada para esta red de VPC, esa región se usa. Si no se configura una región, se establece en us-central1.

    • NAMESPACE: Es el nombre del espacio de nombres del Directorio de servicios que deseas usar. Si omites NAMESPACE y ya se configuró un espacio de nombres para esta red de VPC, ese espacio de nombres se usa. Si un espacio de nombres no está configurado, se asigna un espacio de nombres generado por el sistema.

Terraform

Puedes usar los siguientes recursos de Terraform para crear un extremo de Private Service Connect:

resource "google_compute_global_address" "default" {
  provider     = google-beta
  project      = google_compute_network.network.project
  name         = "global-psconnect-ip"
  address_type = "INTERNAL"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.network.id
  address      = "10.3.0.5"
}
resource "google_compute_global_forwarding_rule" "default" {
  provider              = google-beta
  project               = google_compute_network.network.project
  name                  = "globalrule"
  target                = "all-apis"
  network               = google_compute_network.network.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
}

Verifica que el extremo funcione

Crea una instancia de VM en la red de VPC en la que esté configurado Private Service Connect y ejecuta este comando en la VM para verificar que el extremo de Private Service Connect funcione.

curl -v ENDPOINT_IP/generate_204

Reemplaza lo siguiente:

  • ENDPOINT_IP: dirección IP del extremo de Private Service Connect.

Si el extremo está funcionando, verás un código de respuesta HTTP 204.

Enumera extremos

Puedes enumerar todos los extremos configurados de Private Service Connect.

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

    Se muestran los extremos de Private Service Connect.

gcloud

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

El resultado es similar al siguiente:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          all-apis

Obtén información sobre un extremo

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

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

    Se muestran los extremos de Private Service Connect.

  3. Haz clic en el extremo de Private Service Connect del que deseas ver los detalles.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --global

Etiqueta un extremo

Puedes administrar etiquetas para los extremos de Private Service Connect. Consulta cómo etiquetar recursos para obtener más información.

Borra un extremo

Puedes borrar un extremo de Private Service Connect.

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Selecciona el extremo de Private Service Connect que deseas borrar y haz clic en Borrar.

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --global

Reemplaza lo siguiente:

  • ENDPOINT_NAME: nombre del extremo que deseas borrar.

Usa un extremo

Para usar un extremo de Private Service Connect, envía solicitudes a un nombre de host DNS que se resuelve en la dirección IP del extremo.

  • Puedes usar los nombres DNS p.googleapis.com creados automáticamente si puedes configurar tus clientes para que usen un extremo personalizado, y si se crean registros DNS p.googleapis.com para las API y los servicios que quieres usar. Consulta Usa nombres de DNS p.googleapis.com para obtener más información.

    Por ejemplo, si el nombre de tu extremo es xyz, los registros DNS se crean para storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com y otras API que se usan con frecuencia en el paquete de API.

  • Puedes crear registros DNS con los nombres DNS predeterminados si usas un cliente que no se configuró para usar un extremo personalizado, o si no existe un registro DNS p.googleapis.com en el servicio que quieres usar. Consulta Crea registros DNS con nombres DNS predeterminados para obtener más información.

    Por ejemplo, crea registros DNS para storage.googleapis.com y compute.googleapis.com.

Usa nombres de DNS p.googleapis.com

Cuando creas un extremo de Private Service Connect, el Directorio de servicios crea registros DNS para las API y los servicios de uso común que están disponibles mediante el extremo. Los registros DNS se crean solo para las API y los servicios que tienen nombres de DNS predeterminados que terminan con googleapis.com y solo para un subconjunto de esas API y servicios.

Los registros DNS se crean en una zona privada p.googleapis.com. Los registros apuntan a la dirección IP del extremo y usan este formato: SERVICE-ENDPOINT.p.googleapis.com

Por ejemplo, si el nombre de tu extremo es xyz, se crean registros DNS para storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com y otras API compatibles.

Los clientes que se pueden configurar para usar un extremo personalizado pueden usar los nombres de DNS p.googleapis.com a fin de enviar solicitudes a un extremo de Private Service Connect.

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 la Clase de opciones del cliente en el paquete google-api-core.

  • Go: Puedes configurar WithEndpoint en el Paquete de opciones del cliente en el paquete api.

  • gcloud: Puedes configurar api_endpoint_overrides con este comando.

    gcloud config set api_endpoint_overrides/SERVICE ENDPOINT_URL

    Por ejemplo: gcloud config set api_endpoint_overrides/compute https://compute-xyz.p.googleapis.com/compute/v1/

Crea registros DNS con nombres DNS predeterminados

Debes crear registros DNS para dirigir los nombres DNS predeterminados a las API y los servicios al extremo de Private Service Connect en estas circunstancias:

  • Tu cliente o aplicación no se puede configurar para usar un nombre de DNS p.googleapis.com.

  • Debes acceder a un servicio compatible, pero no hay un nombre de DNS p.googleapis.com creado de forma automática para ese servicio.

Para crear registros DNS que apunten a tu extremo de Private Service Connect, sigue estas instrucciones:

  1. Crea una zona DNS para el dominio que necesitas usar (por ejemplo, googleapis.com o gcr.io). Se recomienda crear una zona privada de Cloud DNS para este propósito.

  2. En esta zona DNS, haz lo siguiente:

    1. Crea un registro A para el nombre de dominio (zona), por ejemplo, googleapis.com o gcr.io. Haz que este registro A apunte a la dirección IP del extremo de Private Service Connect. Si usas Cloud DNS, consulta cómo agregar un registro.

    2. Crea un registro CNAME para todos los nombres de host posibles del dominio adicional. Para ello, usa un asterisco y un punto seguidos del nombre de dominio (zona). Por ejemplo, *.googleapis.com o *.gcr.io. Haz que este registro CNAME apunte al registro A en la misma zona. Por ejemplo, apunta *.googleapis.com a googleapis.com o *.gcr.io a gcr.io.

Usa Private Service Connect desde hosts locales

Si tu red local está conectada a una red de VPC, puedes usar Private Service Connect para acceder a las API y los servicios de Google desde hosts locales con la dirección IP interna del extremo de Private Service Connect.

  • Tu red local debe estar conectada a una red de VPC mediante túneles de Cloud VPN o adjuntos de Cloud Interconnect (VLAN).

  • El extremo de Private Service Connect está en la red de VPC que está conectada a tu red local.

  • La red local debe tener rutas adecuadas para el extremo de Private Service Connect. Configura un anuncio de ruta personalizado de Cloud Router a fin de anunciar rutas para el extremo de Private Service Connect en la sesión de BGP que administra las rutas del túnel de Cloud VPN o el adjunto de Cloud Interconnect (VLAN).

  • Debes configurar los sistemas locales para que puedan realizar consultas a tus zonas de DNS privadas.

    Si implementaste las zonas de DNS privadas con Cloud DNS, completa los siguientes pasos:

Casos de uso

Puedes crear varios extremos de Private Service Connect en la misma red de VPC. No hay límite para el ancho de banda total enviado a un extremo en particular. Dado que los extremos de Private Service Connect usan direcciones IP internas globales, pueden ser usados por cualquier recurso en tu red de VPC, o por una red local conectada mediante túneles de Cloud VPN o adjuntos de Cloud Interconnect.

Con varios extremos, puedes especificar diferentes rutas de acceso a la red con Cloud Router y las reglas de firewall.

  • Puedes crear reglas de firewall para evitar que algunas VM accedan a las API de Google a través de un extremo de Private Service Connect, a la vez que permite que otras VM tengan acceso.

  • Puedes tener una regla de firewall en una instancia de VM que prohíba todo el tráfico a Internet. El tráfico que se envíe a los extremos de Private Service Connect seguirá llegando a Google.

  • Si tienes hosts locales conectados a una VPC con un túnel de Cloud VPN o un adjunto de Cloud Interconnect (VLAN), puedes enviar algunas solicitudes a través del túnel o VLAN mientras envías otras solicitudes a través de la Internet pública. Esta configuración te permite omitir el túnel o la VLAN para servicios como Google Libros que no son compatibles con el Acceso privado a Google.

    Para crear esta configuración, crea un extremo de Private Service Connect, anuncia las direcciones IP del extremo de Private Service Connect con los anuncios de ruta personalizados de Cloud Router y habilita una Política de reenvío entrante de Cloud DNS. La aplicación puede enviar algunas solicitudes a través del túnel de Cloud VPN o el adjunto de Cloud Interconnect (VLAN) mediante el nombre del extremo de Private Service Connect, y otras a través de Internet con el nombre de DNS predeterminado.

  • Si conectas tu red local a tu red de VPC con varios adjuntos de Cloud Interconnect (VLAN), puedes enviar parte del tráfico local a través de una VLAN y el resto a través de otros medios, como se muestra en la figura 3. Esto te permite usar tus propias redes en áreas extensas, en lugar de las de Google, y controlar el movimiento de datos para cumplir con los requisitos geográficos.

    Para crear esta configuración, crea dos extremos de Private Service Connect. Crea un anuncio de ruta personalizado para el primer extremo de la sesión de BGP del Cloud Router que administra la primera VLAN y crea un anuncio de ruta personalizado diferente para el segundo extremo de la sesión del Cloud Router que administra la segunda VLAN. Los hosts locales que están configurados para usar el nombre del extremo de Private Service Connect envían tráfico en el adjunto de Cloud Interconnect (VLAN) correspondiente.

  • También puedes usar varios adjuntos de Cloud Interconnect (VLAN) en una topología activa/activa. Si anuncias la misma dirección IP del extremo de Private Service Connect mediante anuncios de ruta personalizados para las sesiones de BGP en los routers de Cloud que administran las VLAN, los paquetes enviados desde sistemas locales a los extremos se enrutan en todas las VLAN que usan ECMP.

    Figura 3. Mediante la configuración de Private Service Connect, Cloud Router y los hosts locales, puedes controlar qué adjunto de Cloud Interconnect (VLAN) se usa para enviar tráfico a las API de Google.

Soluciona problemas

No se puede crear una zona DNS privada

Cuando creas un extremo de Private Service Connect, se crea una zona DNS del Directorio de servicios. La creación de zonas puede fallar por los siguientes motivos:

  • No habilitaste la API de Cloud DNS en tu proyecto.

  • No tienes los permisos necesarios para crear una zona DNS del Directorio de servicios.

  • Existe una zona DNS con el mismo nombre en esta red de VPC.

  • Ya existe una zona de DNS para p.googleapis.com en esta red de VPC.

Pueden existir zonas en conflicto por una falla de eliminación anterior.

Para crear la zona DNS del Directorio de servicios, haz lo siguiente:

  1. Verifica que la API de Cloud DNS esté habilitada en tu proyecto.

  2. Verifica que tengas los permisos necesarios para crear la zona DNS del Directorio de servicios:

    • dns.managedZones.create
    • servicedirectory.namespaces.associatePrivateZone
  3. Borra la zona DNS.

  4. Crea una zona DNS de Directorio del servicio respaldada por el espacio de nombres del Directorio de servicios asociado con tu extremo de Private Service Connect.

    Usa los siguientes valores cuando crees la zona:

    • Nombre de zona: Usa el mismo nombre de zona que usó el sistema durante el intento de creación fallido. El mensaje de error muestra qué nombre de zona se usó.

    • Nombre DNS: p.googleapis.com. (incluye el punto final).

    • Espacio de nombres del Directorio de servicios: Encuentra el espacio de nombres del directorio de servicios para el extremo de Private Service Connect que creaste y usa este espacio de nombres cuando crees la zona DNS del Directorio de servicio.

    El espacio de nombres del Directorio de servicios tiene el siguiente formato: goog-psc-NETWORK_NAME-NETWORK_ID.

No se puede borrar la zona de DNS privada

Cuando borras el último extremo privado del servicio de conexión en una red de VPC, se borra la configuración asociada del Directorio de servicios, incluida la zona DNS.

Esta eliminación puede fallar por los siguientes motivos:

  • No tienes los permisos necesarios para borrar la zona DNS.

  • La zona contiene entradas DNS definidas por el usuario que el Directorio de servicios no creó.

Para solucionar este problema, haz lo siguiente:

  1. Verifica que tengas el permiso dns.managedZones.delete. Para obtener más información, consulta Control de acceso en la documentación de Cloud DNS.

  2. Borra la zona DNS.