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.
Funciones
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 tu red de VPC:
-
Rol Compute Network Admin (
roles/compute.networkAdmin
) -
Rol DNS Administrator (
roles/dns.admin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Antes de comenzar
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:
$ gcloud init
Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.
Enable the Compute Engine, Network Connectivity Center, and Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Además, habilita la API para el servicio de destino al que deseas acceder a través del extremo de Private Service Connect. Por ejemplo, si deseas acceder a
spanner.me-central2.rep.googleapis.com
, habilita la API de Cloud Spanner. Private Service Connect no habilita automáticamente ninguna API.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.
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 las extremos regionales, consulta Extremos de servicios regionales.
Console
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en Conectar extremo.
En Target, selecciona Google API.
En la lista Alcance, selecciona Regional.
En la lista Región, selecciona la región que deseas usar.
En la lista Servicio de destino, selecciona el servicio al que deseas acceder.
En Nombre del extremo, ingresa un nombre para el extremo.
En Red, selecciona una red.
En Subred, selecciona una subred.
En Dirección IP, realiza una de las siguientes acciones para configurar una dirección IP:
- Selecciona Asignación automática para asignar y reservar automáticamente una dirección IP nueva.
- Selecciona una dirección IP reservada de la lista.
- Haz clic en Crear dirección IP para reservar una dirección IP nueva.
Opcional: Para que el extremo esté disponible desde todas las regiones de la red de VPC, selecciona Habilitar el acceso global.
Haz clic en Agregar extremo.
gcloud
Usa el comando gcloud network-connectivity regional-endpoints create
.
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --address=ADDRESS \ --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \ --subnetwork=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --target-google-api=REP_DNS_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.ADDRESS
: Es la dirección IPv4 o IPv6 que deseas usar para el extremo. Si se omite, se asigna una dirección IPv4 de la subred. Usa uno de los siguientes formatos:- Dirección IPv4, por ejemplo,
10.0.0.2
. - Es el URI del recurso de dirección IPv4 o IPv6, por ejemplo,
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- Dirección IPv4, por ejemplo,
PROJECT_ID
: Es el proyecto en el que crearás el extremo.NETWORK_NAME
: nombre de la red de VPC para el extremo.SUBNET_NAME
: Es la subred a la que conectas el extremo.REP_DNS_NAME
: Es el nombre de host del extremo del servicio regional al que te conectas. Por ejemplo,spanner.me-central2.rep.googleapis.com
API
Usa el método projects.locations.regionalEndpoints.create
.
Método HTTP y URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints?regionalEndpointId=ENDPOINT_NAME
{
"accessType": "REGIONAL",
"address": "ADDRESS",
"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
"targetGoogleApi": "REP_DNS_NAME"
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto del extremo.REGION
: región en la que deseas crear el extremo.ENDPOINT_NAME
: un nombre para el extremo.ADDRESS
: Es la dirección IPv4 o IPv6 que deseas usar para el extremo. Si se omite, se asigna una dirección IPv4 de la subred. Usa uno de los siguientes formatos:- Dirección IPv4, por ejemplo,
10.0.0.2
. - Es el URI del recurso de dirección IPv4 o IPv6, por ejemplo,
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- Dirección IPv4, por ejemplo,
NETWORK_NAME
: nombre de la red de VPC para el extremo.SUBNET_NAME
: Es el nombre de la subred a la que deseas conectar el extremo.REP_DNS_NAME
: Es el nombre de host del extremo del servicio regional al que deseas conectarte. Por ejemplo,spanner.me-central2.rep.googleapis.com
Enumerar extremos
Puedes enumerar todos los extremos configurados.
Console
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Se muestran todos los extremos, incluidos los que tienen objetivos de extremos regionales.
gcloud
Usa el comando gcloud network-connectivity regional-endpoints list
.
gcloud network-connectivity regional-endpoints list \ --region=REGION
Reemplaza REGION
por la región de los extremos que deseas enumerar.
API
Usa el método projects.locations.regionalEndpoints.list
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto del extremo.REGION
: Es 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).
Para verificar un extremo IPv4, haz lo siguiente:
curl --connect-to REP_DNS_NAME:443:ADDRESS:443 \ 'https://REP_DNS_NAME/PATH'
Para verificar un extremo IPv6, haz lo siguiente:
curl -6 --connect-to REP_DNS_NAME:443:[ADDRESS]:443 \ 'https://REP_DNS_NAME/PATH'
Reemplaza lo siguiente:
REP_DNS_NAME
: Es el nombre DNS público del extremo regional de destino, por ejemplo,spanner.me-central2.rep.googleapis.com
.ADDRESS
: 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.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.rep.googleapis.com/$discovery/rest?version=v1'
Crea una entrada de DNS privada para el extremo
Debes crear entradas de DNS privadas para que los clientes puedan dirigir solicitudes a tu extremo de Private Service Connect.
Te recomendamos que crees una zona privada que use el mismo nombre de host que el extremo regional de destino:
SERVICE.REGION.rep.DOMAIN
y que crees un registro de zona en esa zona.
Por ejemplo, si tu extremo de Private Service Connect tiene un destino de spanner.me-central2.rep.googleapis.com
, crea una zona privada para spanner.me-central2.rep.googleapis.com
que contenga un registro de vértice para spanner.me-central2.rep.googleapis.com
. Crear registros en el vértice del dominio significa que puedes acceder al nombre de host público de otros extremos regionales, por ejemplo, logging.me-central2.rep.googleapis.com
.
En las siguientes secciones, se describe cómo usar Cloud DNS para crear una zona privada y un registro DNS de vértice.
Crea una zona privada
Console
En la consola de Google Cloud , ve a la página Crear una zona de DNS.
En Tipo de zona, selecciona Privada.
En Nombre de zona, ingresa un nombre. Por ejemplo, si tu extremo de Private Service Connect apunta a
spanner.me-central2.rep.googleapis.com
, ingresaspanner-me-central2-rep-googleapis-com
.En Nombre de DNS, especifica el nombre de host del extremo regional de destino seguido de un punto final. Por ejemplo,
spanner.me-central2.rep.googleapis.com.
Opcional: Agrega una descripción.
En Opciones, selecciona Predeterminada (privada).
Selecciona las redes de VPC en las que quieres que la zona privada sea visible. Solo las redes de VPC que selecciones tienen autorización para consultar registros en la zona.
Haz clic en Crear.
gcloud
Ejecuta el comando dns managed-zones
create
:
gcloud dns managed-zones create ZONE_NAME \ --dns-name=REP_DNS_NAME. \ --networks=VPC_NETWORK_LIST \ --visibility=private \ --description="Private zone for REP_DNS_NAME"
Reemplaza lo siguiente:
ZONE_NAME
: Un nombre para tu zona, por ejemplo,spanner-me-central2-rep-googleapis.com
.DESCRIPTION
: Es una descripción para tu zonaREP_DNS_NAME
: Es el sufijo de DNS para tu zona. Usa el nombre de host del extremo regional de destino, por ejemplo,spanner.me-central2.rep.googleapis.com
.VPC_NETWORK_LIST
: Es una lista delimitada por comas de redes de VPC que están autorizadas a consultar la zona.
API
Envía una solicitud POST
mediante el método managedZones.create
:
Método HTTP y URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
Cuerpo JSON de la solicitud:
{
"name": "ZONE_NAME",
"dnsName": "REP_DNS_NAME.",
"description": "DESCRIPTION",
"visibility": "private",
"privateVisibilityConfig": {
"kind": "dns#managedZonePrivateVisibilityConfig",
"networks": [
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_1_URL"
},
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_2_URL"
}
]
}
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de la zona del DNS.ZONE_NAME
: Es el nombre de la zona privada que creaste para este extremo regional.REP_DNS_NAME
: Es el FQDN del registro que creas. Usa el nombre de host del extremo regional de destino, por ejemplo,spanner.me-central2.rep.googleapis.com
.DESCRIPTION
: Es una descripción de la zona de DNS.NETWORK_1_URL
yNETWORK_2_URL
: Son las URLs completas de las redes de VPC que están autorizadas para consultar la zona, por ejemplo,https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
.
Agrega un registro DNS a la zona
Console
En la consola de Google Cloud , ve a la página Zonas de Cloud DNS.
Haz clic en el nombre de la zona administrada a la que deseas agregar el registro.
En la página Detalles de la zona, haz clic en Agregar estándar.
En la página Crear conjunto de registros, deja en blanco el campo Nombre de DNS. Si dejas el campo en blanco, se creará un registro de recursos en la parte superior del dominio.
En Tipo de registro del recurso, selecciona
A
.En el campo Dirección IPv4, ingresa o selecciona la dirección IP del extremo de Private Service Connect.
Haz clic en Crear.
gcloud
Para agregar un conjunto de registros de recursos, usa el comando gcloud dns record-sets create
:
gcloud dns record-sets create REP_DNS_NAME \ --rrdatas=ADDRESS \ --type=RECORD_TYPE \ --ttl=TTL \ --zone=ZONE_NAME
Reemplaza lo siguiente:
REP_DNS_NAME
: Es el FQDN del registro que creas. Usa el nombre de host del extremo regional de destino, por ejemplo,spanner.me-central2.rep.googleapis.com
.ADDRESS
: dirección IP del extremo de Private Service Connect.RECORD_TYPE
: Es el tipo de registro DNS, comoA
para registros IPv4 oAAAA
para registros IPv6.TTL
: Es el TTL en segundos que el agente de resolución almacena en caché este conjunto de registros de recursos, por ejemplo,300
.ZONE_NAME
: Es el nombre de la zona privada que creaste para este extremo regional.
API
Para agregar un conjunto de registros de recursos, usa el método resourceRecordSets.create
:
Método HTTP y URL:
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME/rrsets
Cuerpo JSON de la solicitud:
{
"name": "REP_DNS_NAME.",
"type": "RECORD_TYPE",
"ttl": TTL,
"rrdatas": [ "ADDRESS" ]
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de la zona del DNS.ZONE_NAME
: Es el nombre de la zona privada que creaste para este extremo regional.REP_DNS_NAME
: Es el FQDN del registro que creas. Usa el nombre de host del extremo regional de destino, por ejemplo,spanner.me-central2.rep.googleapis.com
.RECORD_TYPE
: Es el tipo de registro DNS, comoA
para registros IPv4 oAAAA
para registros IPv6.TTL
: Es el TTL en segundos que el agente de resolución almacena en caché este conjunto de registros de recursos, por ejemplo,300
.ADDRESS
: dirección IP del extremo de Private Service Connect.
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. En las siguientes páginas, se incluyen los pasos de configuración para algunos clientes comunes:
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 gcloud network-connectivity regional-endpoints describe
.
gcloud network-connectivity regional-endpoints describe \ ENDPOINT_NAME --region=REGION
Reemplaza lo siguiente:
ENDPOINT_NAME
: El nombre del extremo.REGION
: la región del extremo.
API
Usa el comando projects.locations.regionalEndpoints.get
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto del extremo.REGION
: Es la región de los extremos que deseas enumerar.ENDPOINT_NAME
: El nombre del extremo.
Actualiza la configuración de acceso global
No puedes actualizar un extremo de Private Service Connect que tenga un destino de extremo regional. Si necesitas cambiar el parámetro de configuración de acceso global del extremo, borra el extremo y crea uno nuevo con el parámetro de configuración de acceso global requerido.
Borra un extremo †
Puedes borrar un extremo.
gcloud
Usa el comando gcloud network-connectivity regional-endpoints delete
.
gcloud network-connectivity regional-endpoints delete \ ENDPOINT_NAME --region=REGION
Reemplaza lo siguiente:
ENDPOINT_NAME
: El nombre del extremo.REGION
: la región del extremo.
API
Usa el comando projects.location.regionalEndpoints.delete
.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto del extremo.REGION
: la región del extremo.ENDPOINT_NAME
: El nombre 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 (o red de VPC compartida) 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.