Acceder a servicios publicados a través de puntos finales
En este documento se explica cómo acceder a servicios de otra red de VPC mediante puntos finales de Private Service Connect. Puedes conectarte a tus propios servicios o a los que ofrecen otros productores de servicios, incluido Google.
Para obtener más información sobre los servicios, consulta el artículo sobre cómo publicar servicios gestionados.
Antes de empezar
- Consulta el artículo Información sobre cómo conectarse a servicios mediante puntos finales, incluidas las limitaciones.
- Debes habilitar la API Compute Engine en tu proyecto.
- Debes habilitar la API Service Directory en tu proyecto.
- Debes habilitar la API Cloud DNS en tu proyecto.
- Identifica o crea una subred normal para asignar una dirección IP al endpoint.
- La subred debe estar en la misma región que el servicio al que quieras conectarte.
- Puedes usar una dirección IPv4 de una subred solo IPv4 o de una subred de doble pila.
- Puedes usar una dirección IPv6 de una subred solo IPv6 o de doble pila si la subred tiene un intervalo de direcciones IPv6 internas.
- La versión IP de la dirección IP afecta a los servicios publicados a los que puede conectarse el endpoint. Para obtener más información, consulta Versión de IP translation.
- Las reglas de cortafuegos de salida deben permitir el tráfico a la dirección IP interna del endpoint. La regla de cortafuegos de permiso implícito de salida permite la salida a cualquier dirección IP de destino. Si has creado reglas de cortafuegos de denegación de salida en tu red de VPC o políticas de cortafuegos jerárquicas que modifican el comportamiento de salida permitido implícito, es posible que se vea afectado el acceso al endpoint. Crea una regla o una política de cortafuegos de salida específica para permitir el tráfico al destino de la dirección IP interna del endpoint de servicio.
- Debes tener el URI de la vinculación de servicio del servicio. Por ejemplo:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Roles obligatorios
Para obtener los permisos que necesitas para acceder a los servicios publicados a través de endpoints, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Crea, consulta y elimina endpoints de tu proyecto:
Administrador de red de Compute (
roles/compute.networkAdmin
) en tu proyecto -
Crear, ver y eliminar endpoints en un proyecto de servicio de VPC compartida:
-
Administrador de red de Compute (
roles/compute.networkAdmin
) en el proyecto de servicio -
Usuario de red de Compute (
roles/compute.networkUser
) en el proyecto host
-
Administrador de red de Compute (
-
Configura automáticamente o manualmente las entradas DNS de un endpoint de tu proyecto:
-
Administrador de DNS (
roles/dns.admin
) en tu proyecto -
Editor del directorio de servicios (
roles/servicedirectory.editor
) en tu proyecto
-
Administrador de DNS (
-
Configura automáticamente o manualmente las entradas de DNS de un endpoint en un proyecto de servicio de VPC compartida:
-
Administrador de DNS (
roles/dns.admin
) en el proyecto de servicio -
Editor del directorio de servicios (
roles/servicedirectory.editor
) en el proyecto de servicio
-
Administrador de DNS (
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para acceder a los servicios publicados a través de los endpoints. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para acceder a los servicios publicados a través de endpoints, se necesitan los siguientes permisos:
-
Para crear, ver y eliminar endpoints de tu proyecto, sigue estos pasos:
-
compute.networks.use
en tu proyecto -
compute.subnetworks.use
en tu proyecto -
compute.addresses.createInternal
en tu proyecto -
compute.addresses.deleteInternal
en tu proyecto -
compute.addresses.get
en tu proyecto -
compute.addresses.list
en tu proyecto -
compute.addresses.use
en tu proyecto -
compute.forwardingRules.create
en tu proyecto -
compute.forwardingRules.delete
en tu proyecto -
compute.forwardingRules.get
en tu proyecto -
compute.forwardingRules.list
en tu proyecto -
compute.forwardingRules.pscCreate
en tu proyecto -
compute.forwardingRules.pscDelete
en tu proyecto -
compute.regionOperations.get
en tu proyecto -
servicedirectory.namespaces.create
en tu proyecto -
servicedirectory.namespaces.delete
en tu proyecto -
servicedirectory.services.create
en tu proyecto -
servicedirectory.services.delete
en tu proyecto
-
-
Para crear, ver y eliminar endpoints en un proyecto de servicio que esté asociado a una red de VPC compartida, sigue estos pasos:
-
compute.addresses.createInternal
en el proyecto de servicio -
compute.addresses.deleteInternal
en el proyecto de servicio -
compute.addresses.get
en el proyecto de servicio -
compute.addresses.list
en el proyecto de servicio -
compute.addresses.use
en el proyecto de servicio -
compute.forwardingRules.create
en el proyecto de servicio -
compute.forwardingRules.delete
en el proyecto de servicio -
compute.forwardingRules.get
en el proyecto de servicio -
compute.forwardingRules.list
en el proyecto de servicio -
compute.forwardingRules.pscCreate
en el proyecto de servicio -
compute.forwardingRules.pscDelete
en el proyecto de servicio -
compute.regionOperations.get
en el proyecto de servicio -
servicedirectory.namespaces.create
en el proyecto de servicio -
servicedirectory.namespaces.delete
en el proyecto de servicio -
servicedirectory.services.create
en el proyecto de servicio -
servicedirectory.services.delete
en el proyecto de servicio -
compute.networks.use
en el proyecto del host -
compute.subnetworks.use
en el proyecto del host
-
-
Para configurar automáticamente o manualmente las entradas DNS de un endpoint de tu proyecto, sigue estos pasos:
-
dns.managedZones.create
en tu proyecto -
dns.managedZones.delete
en tu proyecto -
dns.networks.bindPrivateDNSZone
en tu proyecto -
servicedirectory.namespaces.associatePrivateZone
en tu proyecto
-
-
Para configurar automáticamente o manualmente las entradas DNS de un endpoint en una red de VPC compartida, sigue estos pasos:
-
dns.managedZones.create
en el proyecto de servicio -
dns.managedZones.delete
en el proyecto de servicio -
dns.networks.bindPrivateDNSZone
en el proyecto de servicio -
servicedirectory.namespaces.associatePrivateZone
en el proyecto de servicio
-
-
Para acceder a la página Private Service Connect en la consola de Google Cloud , sigue estos pasos:
-
compute.forwardingRules.list
en tu proyecto -
compute.globalForwardingRules.list
en tu proyecto -
compute.networkEndpointGroups.list
en tu proyecto -
compute.regionNetworkEndpointGroups.list
en tu proyecto -
compute.urlMaps.list
en tu proyecto -
compute.backendService.list
en tu proyecto -
compute.regionBackendService.list
en tu proyecto -
compute.backendBucket.list
en tu proyecto -
compute.targetHttpProxy.list
en tu proyecto -
compute.targetHttpsProxy.list
en tu proyecto -
compute.regionTargetTcpProxy.list
en tu proyecto -
compute.targetTcpProxy.list
en tu proyecto -
compute.targetSslProxy.list
en tu proyecto -
compute.sslCertificate.list
en tu proyecto -
compute.sslPolicy.list
en tu proyecto -
compute.regionHealthCheck.list
en tu proyecto -
compute.healthCheck.list
en tu proyecto -
compute.httpHealthCheck.list
en tu proyecto -
compute.httpsHealthCheck.list
en tu proyecto
-
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Crear un punto final
Un punto final se conecta a los servicios de otra red de VPC mediante una regla de reenvío de Private Service Connect. Cada regla de reenvío se tiene en cuenta en la cuota por proyecto de las reglas de reenvío de Private Service Connect para acceder a los servicios de otra red de VPC.
Cuando creas un endpoint, se registra automáticamente en Service Directory con el espacio de nombres que elijas o con el espacio de nombres predeterminado, goog-psc-default
.
Si quieres que el endpoint esté disponible en más de una región, activa el acceso global.
Solo puedes actualizar el campo de acceso global de los puntos finales de los servicios publicados. Si quieres actualizar otros campos, elimina el endpoint y crea uno nuevo.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Puntos finales conectados.
Haz clic en Conectar punto final.
En Destino, selecciona Servicio publicado.
En Servicio de destino, introduce el URI de la vinculación de servicio al que quieras conectarte.
El URI de la vinculación de servicio tiene este formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
En Endpoint name (Nombre del endpoint), escribe el nombre que quieras usar para el endpoint.
Selecciona una red para el endpoint.
Selecciona una subred para el endpoint.
Selecciona una dirección IP para el endpoint. Si necesitas una dirección IP nueva, puedes crearla:
- Haga clic en el menú desplegable Dirección IP y seleccione Crear dirección IP.
- Escriba un nombre y una descripción (opcional) para la dirección IP.
- Selecciona una versión de IP.
Si vas a crear una dirección IPv4, selecciona Asignar automáticamente o Dejarme elegir.
Si has seleccionado Quiero seleccionarlas yo mismo, introduce la dirección IP personalizada que quieras usar.
Haz clic en Reservar.
Para que el endpoint esté disponible en cualquier región, selecciona Habilitar el acceso global.
Seleccione un espacio de nombres de la lista desplegable o cree uno.
El campo Región se rellena en función de la subred seleccionada.
Haz clic en Añadir endpoint.
gcloud
Reserva una dirección IP interna para asignarla al endpoint.
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET \ --ip-version=IP_VERSION
Haz los cambios siguientes:
ADDRESS_NAME
: el nombre que se asignará a la dirección IP reservada.REGION
: la región de la dirección IP del endpoint. Debe ser la misma región que contiene el adjunto de servicio del productor de servicios.SUBNET
: nombre de la subred de la dirección IP del endpoint.IP_VERSION
: la versión de IP de la dirección IP, que puede serIPV4
oIPV6
.IPV4
es el valor predeterminado. Para especificarIPV6
, la dirección IP debe estar conectada a una subred con un intervalo de direcciones IPv6 internas.
Busca la dirección IP reservada.
gcloud compute addresses list --filter="name=ADDRESS_NAME"
Crea una regla de reenvío para conectar el endpoint a la vinculación de servicio del productor del servicio. De forma predeterminada, los endpoints solo están disponibles en su propia región. Para que un endpoint esté disponible en cualquier región, usa la marca
--allow-psc-global-access
.Crea un endpoint al que solo se pueda acceder desde su propia región.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT \ [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
Crea un endpoint al que se pueda acceder desde cualquier región.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT \ --allow-psc-global-access \ [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
Haz los cambios siguientes:
ENDPOINT_NAME
: el nombre que se asignará al endpoint.REGION
: la región del endpoint. Debe ser la misma región que contiene la vinculación de servicio del productor de servicios.NETWORK_NAME
: nombre de la red de VPC del endpoint.ADDRESS_NAME
: el nombre de la dirección reservada.SERVICE_ATTACHMENT
: el URI de la vinculación de servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
PROJECT_ID
: tu ID de proyecto.NAMESPACE
: el espacio de nombres del Directorio de servicios que quieras usar. Si especificas un espacio de nombres que no existe, se creará.Si omite la marca
--service-directory-registration
, se usará el espacio de nombres predeterminado degoog-psc-default
.
API
Reserva una dirección IP interna para asignarla al endpoint.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "addressType": "INTERNAL", "subnetwork": "SUBNET_URI", "ipVersion": "IP_VERSION" }
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.REGION
: la región del endpoint. Debe ser la misma región que contiene la vinculación de servicio del productor de servicios.ADDRESS_NAME
: el nombre que se asignará a la dirección IP reservada.SUBNET_URI
: la subred de la dirección IP. Usa el método subnetworks.list ogcloud compute networks subnets list --uri
para encontrar las URLs de tus redes.IP_VERSION
: la versión de IP de la dirección IP, que puede serIPV4
oIPV6
.IPV4
es el valor predeterminado. Para especificarIPV6
, la dirección IP debe estar conectada a una subred con un intervalo de direcciones IPv6 internas.
Crea una regla de reenvío para conectar el endpoint a la vinculación de servicio del productor del servicio. De forma predeterminada, los endpoints solo están disponibles en su propia región. Para que un endpoint esté disponible en cualquier región, asigna el valor
true
aallowPscGlobalAccess
.Crea un endpoint al que solo se pueda acceder desde su propia región.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "ADDRESS_URI", "target": "SERVICE_ATTACHMENT", "network": "NETWORK_URI", "serviceDirectoryRegistrations": [ { "namespace": "NAMESPACE" } ] }
Crea un endpoint al que se pueda acceder desde cualquier región.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "ADDRESS_URI", "target": "SERVICE_ATTACHMENT", "network": "NETWORK_URI", "allowPscGlobalAccess": true, "serviceDirectoryRegistrations": [ { "namespace": "NAMESPACE" } ] }
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.REGION
: la región del endpoint.ENDPOINT_NAME
: el nombre que se asignará al endpoint.ADDRESS_URI
: el URI de la dirección reservada en la red asociada. Usa el método addresses.list ogcloud compute addresses list --uri
para encontrar la URL de tu dirección reservada.SERVICE_ATTACHMENT
: el URI de la vinculación de servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
NETWORK_URI
: la red de VPC del punto final. Usa el método network.list ogcloud compute networks list --uri
para encontrar el URI de tu red.NAMESPACE
: el espacio de nombres del endpoint. Si especificas un espacio de nombres que no existe, se creará. Si omites el camponamespace
, se asignará el espacio de nombres predeterminadogoog-psc-default
.
Crear un endpoint con una dirección IP de una red de VPC compartida
Los administradores de proyectos de servicio pueden crear endpoints en proyectos de servicio de VPC compartida que usen direcciones IP de redes de VPC compartida conectadas. No se pueden crear endpoints de este tipo en la consola de Google Cloud . Debes usar la CLI de Google Cloud o enviar una solicitud de API. Para obtener más información, consulta VPC compartida.
En este ejemplo se muestra cómo crear un endpoint con una dirección IP de una red de VPC compartida a la que se puede acceder desde una sola región. Para habilitar el acceso global o elegir un espacio de nombres para Directorio de servicios, consulta Crear un endpoint.
gcloud
Para reservar una dirección IP interna que se asignará al endpoint, haz una de las siguientes acciones:
- En el proyecto de servicio, reserva una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
- En el proyecto host, pide a un administrador de VPC compartida que reserve una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
La dirección IP debe estar en la misma región que el adjunto de servicio del productor de servicios.
Para crear el endpoint en el proyecto de servicio, haz una de las siguientes acciones.
Si tienes permiso para usar todas las subredes del proyecto host, usa el siguiente comando:
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \ --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT
Haz los cambios siguientes:
ENDPOINT_NAME
: el nombre que se asignará al endpoint.REGION
: la región del endpoint. Debe ser la misma región que contiene el adjunto de servicio del productor de servicios.HOST_PROJECT
: el ID del proyecto de la red de VPC compartida.HOST_NETWORK
: el nombre de la red de VPC compartida que contiene la dirección IP del endpoint.ADDRESS_PROJECT
: el ID del proyecto en el que has reservado la dirección IP. Puede ser el proyecto de servicio o el proyecto del host.ADDRESS_NAME
: el nombre de la dirección IP reservada.SERVICE_ATTACHMENT
: el URI de la vinculación de servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Si solo tienes permiso para usar algunas subredes del proyecto del host, especifica una subred compartida con el siguiente comando:
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --subnet=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \ --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT
Sustituye
HOST_SUBNET
por el nombre de la subred que contiene la dirección IP del endpoint.
API
Para reservar una dirección IP interna que se asignará al endpoint, haz una de las siguientes acciones:
- En el proyecto de servicio, reserva una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
- En el proyecto host, pide a un administrador del proyecto host que reserve una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
La dirección IP debe estar en la misma región que el adjunto de servicio del productor de servicios.
Para crear el endpoint en el proyecto de servicio, haz una de las siguientes acciones.
Si tienes permiso para usar todas las subredes del proyecto del host, haz la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME", "target": "SERVICE_ATTACHMENT", "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK" }
Haz los cambios siguientes:
PROJECT
: el ID del proyecto de servicio.REGION
: la región del endpoint. Debe ser la misma región que contiene la vinculación de servicio del productor de servicios.ENDPOINT_NAME
: el nombre que se asignará al endpoint.ADDRESS_PROJECT
: el ID del proyecto en el que has reservado la dirección IP. Puede ser el proyecto de servicio o el proyecto host.ADDRESS_NAME
: el nombre de la dirección IP reservada.SERVICE_ATTACHMENT
: el URI de la vinculación de servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
HOST_PROJECT
: el ID del proyecto de la red de VPC compartida.HOST_NETWORK
: el nombre de la red de VPC compartida que contiene la dirección IP del endpoint.
Si solo tienes permiso para usar algunas subredes del proyecto del host, especifica una subred compartida haciendo la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME", "target": "SERVICE_ATTACHMENT", "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET" }
Sustituye
HOST_SUBNET
por el nombre de la subred que contiene la dirección IP del endpoint.
Permiso para mostrar puntos finales.
Puedes enumerar todos los endpoints configurados.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Puntos finales conectados.
Se muestran los endpoints.
gcloud
gcloud compute forwarding-rules list \ --filter 'target~serviceAttachments'
El resultado debería ser similar al siguiente:
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET RULE IP TCP REGION/serviceAttachments/SERVICE_NAME
API
Esta llamada a la API devuelve todas las reglas de reenvío, no solo los endpoints que se usan para acceder a los servicios.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
Haz los cambios siguientes:
PROJECT_ID
: el proyecto que contiene el endpoint.REGION
: la región del endpoint.
Ver los detalles de un endpoint
Puede ver todos los detalles de configuración de un endpoint, incluido su estado de conexión.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Puntos finales conectados.
Haz clic en el endpoint que quieras ver.
gcloud
gcloud compute forwarding-rules describe \ ENDPOINT_NAME --region=REGION
Haz los cambios siguientes:
ENDPOINT_NAME
: el nombre del endpoint.REGION
: la región del endpoint.
API
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Haz los cambios siguientes:
PROJECT_ID
: el proyecto que contiene el endpoint.REGION
: la región del endpoint.ENDPOINT_NAME
: el nombre del endpoint.
Etiquetar un endpoint
Puedes gestionar las etiquetas de los endpoints. Para obtener instrucciones detalladas, consulta Etiquetar recursos.
Eliminar un punto final
Puede eliminar un endpoint.
Sin embargo, las siguientes configuraciones de Directorio de servicios no se eliminan cuando eliminas el endpoint:
- Espacio de nombres de Directorio de servicios
- Zona DNS de Service Directory
Otros servicios pueden usar el espacio de nombres de Directorio de servicios y la zona DNS de Directorio de servicios. Comprueba que el espacio de nombres esté vacío antes de eliminar el espacio de nombres de Directorio de servicios o eliminar la zona DNS de Directorio de servicios.
.Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Puntos finales conectados.
Selecciona el endpoint que quieras eliminar y haz clic en Eliminar.
gcloud
gcloud compute forwarding-rules delete ENDPOINT_NAME \ --region=REGION
Haz los cambios siguientes:
ENDPOINT_NAME
: el nombre del endpoint.REGION
: la región del endpoint.
API
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Haz los cambios siguientes:
PROJECT_ID
: el proyecto que contiene el endpoint.REGION
: la región del endpoint.ENDPOINT_NAME
: el nombre del endpoint.
Acceder a endpoints desde redes híbridas
Los clientes de redes conectadas a Google Cloud mediante vinculaciones de VLAN para Cloud Interconnect o túneles de Cloud VPN pueden acceder a los puntos finales de Private Service Connect.La vinculación de VLAN o el túnel de Cloud VPN deben terminar en la misma red de VPC (o red de VPC compartida) que el endpoint. Los clientes de las redes de VPC emparejadas no pueden acceder a los endpoints.
El tráfico de clientes de las vinculaciones de VLAN o los túneles de Cloud VPN puede llegar a los endpoints de otra región si se configura el acceso global.
Se admiten tanto Dataplane v1 como Dataplane v2 para las vinculaciones de VLAN. Para obtener más información sobre las versiones de Dataplane, consulta Dataplane v2.
Si quieres acceder al endpoint mediante su nombre de DNS, debes configurar los sistemas de la otra red para que puedan hacer consultas a tus zonas de DNS privadas.
Si has implementado las zonas DNS privadas con Cloud DNS, sigue estos pasos:
Crea una política de servidor entrante en la red VPC a la que se conecta tu otra red.
Identifica los puntos de entrada del reenviador entrante en la región en la que se encuentra tu vinculación de VLAN o tu túnel de Cloud VPN, en la red de VPC a la que se conecta tu otra red.
Configura los sistemas y los servidores de nombres DNS de la otra red para que reenvíen los nombres de DNS del endpoint a un punto de entrada de reenviador entrante de la misma región que la conexión VLAN o el túnel de Cloud VPN que se conecta a la red de VPC.
Ver zonas DNS de Directorio de servicios
Si se cumplen los requisitos previos para la configuración automática del DNS, se crea una zona DNS con un nombre en el formato NAMESPACE--REGION
.
Consola
En la Google Cloud consola, ve a la página Zonas de Cloud DNS.
Busca una zona privada con el nombre
NAMESPACE--REGION
.
gcloud
Ejecuta el siguiente comando para enumerar todas las zonas DNS privadas:
gcloud dns managed-zones list \ --filter="visibility=private"
Ejecuta el siguiente comando para obtener los detalles de una zona con el nombre
NAMESPACE--REGION
.gcloud dns managed-zones describe NAMESPACE--REGION
Si la zona no está presente, consulte los detalles del endpoint y compruebe si la configuración del endpoint incluye un valor para el espacio de nombres.
Si el endpoint tiene una configuración de espacio de nombres, consulta Configurar una zona DNS de Directorio de servicios.
Si el endpoint no tiene una configuración de espacio de nombres, consulta Registrar un endpoint en Directorio de servicios.
Otras formas de configurar el DNS
Si no se cumplen los requisitos previos para la configuración automática del DNS, puede crear entradas DNS de otras formas:
Si el endpoint tiene un espacio de nombres configurado, consulta Configurar una zona DNS de Directorio de servicios.
Si el endpoint no tiene configurado un espacio de nombres, consulta Registrar un endpoint en Directorio de servicios.
Si prefieres configurar el DNS manualmente, consulta Configurar el DNS manualmente.
Configurar una zona DNS de Directorio de servicios
Si un endpoint se registra en Service Directory, pero el servicio publicado al que se conecta no tiene configurado un nombre de dominio, no se realiza ningún cambio en el DNS.
Si quieres replicar la configuración automática de DNS, puedes configurar manualmente una zona DNS de Directorio de servicios que esté respaldada por el espacio de nombres de Directorio de servicios. Una vez creada la zona, se crearán automáticamente las entradas DNS del endpoint.
Crea una zona DNS de Directorio de servicios con la siguiente configuración:
Nombre de la zona: especifica
NAMESPACE--REGION
, dondeNAMESPACE
es el espacio de nombres en el que se ha registrado el endpoint yREGION
es la región en la que se ha creado el endpoint.Nombre de DNS: el dominio DNS que usa el productor de servicios para sus servicios publicados. Ponte en contacto con el productor del servicio para obtener esta información.
El nombre de DNS puede tener el formato
REGION.p.DOMAIN
. Por ejemplo, si el dominio público del productor de servicios esexample.com
y el servicio publicado está enus-west1
, le recomendamos que haga que su servicio esté disponible mediante nombres de dominious-west1.p.example.com
. Incluye un punto al final, por ejemplo,us-west1.p.example.com.
Espacio de nombres de Directorio de servicios: el espacio de nombres que has configurado para este endpoint.
Consulta los detalles del endpoint para encontrar el espacio de nombres y la región de Directorio de servicios.
Con esta configuración, si has configurado una zona DNS de Directorio de servicios con el nombre DNS us-west1.p.example.com
y creas un endpoint con el nombre analytics
, se creará automáticamente un registro DNS para analytics.us-west1.p.example.com
.
Registrar un endpoint en Directorio de servicios
Los nuevos endpoints se registran automáticamente en Directorio de servicios. Sin embargo, si se creó un endpoint antes de habilitar el registro automático con Service Directory, es posible que falte esta configuración.
Puedes eliminar el punto final y crear otro, que se registrará automáticamente en Directorio de servicios.
También puedes seguir estos pasos para registrar un endpoint en un espacio de nombres de Directorio de servicios.
Crea un espacio de nombres de Directorio de servicios para el endpoint,
NAMESPACE
.Crea un servicio de Directorio de servicios para el endpoint,
SERVICE_NAME
.En el caso del servicio, usa el mismo nombre que el de la regla de reenvío utilizada para el punto final,
ENDPOINT_NAME
.Crea un endpoint de Service Directory con el nombre
default
y usa la dirección IP y el puerto (443
) del endpoint.
Una vez que hayas registrado el endpoint en Directorio de servicios, sigue las instrucciones para configurar una zona DNS de Directorio de servicios.
Configurar el DNS manualmente
Si has evitado la configuración automática de DNS o no está habilitada en tu configuración, puedes usar Cloud DNS para crear registros DNS manualmente.
Para obtener más información, consulta las siguientes páginas:
Control de acceso: el rol Administrador de DNS (
roles/dns.admin
) proporciona los permisos necesarios para crear zonas y registros DNS.-
Cuando configuras una zona privada, proporcionas un nombre de DNS. Usa el dominio DNS que el productor de servicios esté usando para sus servicios publicados. Ponte en contacto con el productor del servicio para obtener esta información.
Puede tener este formato:
REGION.p.DOMAIN
. Por ejemplo, si el dominio público del productor de servicios esexample.com
y el servicio publicado está enus-west1
, le recomendamos que haga que su servicio esté disponible mediante nombres de dominious-west1.p.example.com
.
Problemas conocidos
Los backends en mal estado reciben tráfico con acceso global
Habilita el acceso global solo si sabes que el balanceador de carga del productor del servicio está configurado para el acceso global. Si crea un endpoint de acceso global para un servicio publicado que no usa el acceso global, el tráfico podría enviarse a backends incorrectos y descartarse.
Solución de problemas
Se produce un error al crear una zona de DNS privada
Cuando creas un endpoint, se crea una zona DNS de Directorio de servicios. La creación de zonas puede fallar por los siguientes motivos:
No has habilitado la API Cloud DNS en tu proyecto.
No tienes los permisos necesarios para crear una zona DNS de Service Directory.
Ya existe una zona DNS con el mismo nombre de zona en esta red de VPC.
Ya existe una zona DNS para el mismo nombre de dominio en esta red VPC.
Para crear manualmente la zona DNS de Service Directory, sigue estos pasos:
Comprueba que la API Cloud DNS esté habilitada en tu proyecto.
Verifica que tienes los permisos necesarios para crear la zona DNS de Directorio de servicios:
dns.managedZones.create
dns.networks.bindPrivateDNSZone
servicedirectory.namespaces.associatePrivateZone
Si hay una zona en conflicto, pero ya no es necesaria, elimina la zona DNS.
Crea una zona DNS de Directorio de servicios que esté respaldada por el espacio de nombres de Directorio de servicios asociado a tu endpoint.
No se puede crear un endpoint cuando se configura el acceso global
No todos los servicios publicados de Private Service Connect admiten puntos finales con acceso global. Si creas un endpoint con acceso global y el servicio publicado no lo admite, verás este mensaje de error:
Private Service Connect global access is not supported for the given forwarding
rule, since its producer service does not support consumer global access.
Crea el endpoint sin la opción de acceso global.
Se crea el endpoint, pero no se establece la conectividad
Si creas correctamente un endpoint para los servicios publicados, pero no se establece la conectividad, comprueba el estado de la conexión del endpoint. El estado de la conexión puede indicar los pasos que puedes seguir para resolver el problema.
Errores de conexión propagados
Para obtener información sobre cómo solucionar problemas de conexiones propagadas, consulta el artículo Solucionar errores de propagación de conexiones de Private Service Connect.
El endpoint tiene problemas de rendimiento o se agota el tiempo de espera de la conexión
Si tu endpoint tiene problemas de rendimiento o se agota el tiempo de espera de la conexión de forma intermitente, puede deberse a que se han descartado paquetes. Para investigar los paquetes perdidos, puede consultar las métricas que se describen en las siguientes secciones.
Paquetes perdidos en el servicio publicado
La private_service_connect/consumer/dropped_sent_packets_count
métrica
monitoriza los paquetes de un consumidor de Private Service Connect, como un punto final, a un servicio publicado que se han descartado porque el punto final ha superado el número máximo de conexiones
con el servicio.
Si un endpoint informa valores de esta métrica, pruebe las siguientes soluciones:
- Crea puntos finales adicionales que se conecten al servicio publicado.
- Reduce el número de conexiones a través de este endpoint.
- Pide al productor del servicio que aumente la capacidad del servicio publicado. Por ejemplo, puede añadir más instancias de máquina virtual o endpoints de red.
Paquetes perdidos de servicios publicados
La
private_service_connect/consumer/dropped_received_packets_count
métrica
monitoriza los paquetes enviados desde un servicio publicado a un
consumidor de Private Service Connect, como un punto final, que se
han descartado porque Private Service Connect no encuentra una
conexión coincidente para los paquetes de respuesta.
Private Service Connect solo permite las conexiones que se inician desde la red de VPC del consumidor. Cuando un consumidor inicia una conexión, esta se monitoriza para asociar los paquetes de respuesta del servicio publicado con una conexión existente. Si Private Service Connect no encuentra ninguna coincidencia para un paquete de respuesta, el paquete se descarta.
Es posible que Private Service Connect no encuentre una coincidencia para un paquete de respuesta si un servicio publicado envía paquetes de respuesta después de que se haya agotado el tiempo de espera de una conexión. Si ve valores en esta métrica, póngase en contacto con el productor del servicio. Es posible que puedan configurar su servicio para evitar este problema.