Publica servicios mediante Private Service Connect
Como productor de servicios, puedes usar Private Service Connect para publicar servicios mediante direcciones IP internas en tu red de VPC. Los consumidores de servicios pueden acceder a los servicios publicados mediante direcciones IP internas en las redes de VPC de consumidor.
En esta guía, se describe cómo usar Private Service Connect para publicar un servicio. Para publicar un servicio, haz lo siguiente:
Aloja el servicio en un balanceador de cargas compatible con una configuración compatible.
Crea un adjunto de servicio que apunte a la regla de reenvío asociada con el balanceador de cargas.
Private Service Connect proporciona dos métodos para conectarse a los servicios publicados:
Estos tipos de extremos requieren configuraciones de productor ligeramente diferentes. Para obtener más información, consulta Funciones y compatibilidad.
Roles
La siguiente función de IAM proporciona los permisos necesarios para realizar las tareas de esta guía.
- Administrador de red de Compute (
roles/compute.networkAdmin
)
Antes de comenzar
Lee Acerca de los servicios publicados para obtener más información, incluida la configuración y las limitaciones de DNS.
Decide si se puede acceder al servicio desde todos los proyectos o si deseas controlar qué proyectos pueden acceder a tu servicio.
Decide si deseas que este servicio admita extremos, backends o ambos. Para obtener más información sobre extremos y backends, consulta Tipos de Private Service Connect.
Para obtener más información sobre los requisitos de configuración del servicio, consulta Funciones y compatibilidad.
Crea un balanceador de cargas compatible
Para alojar el servicio, crea uno de los siguientes balanceadores de cargas en una red de VPC de productor de servicios:
A fin de obtener información sobre las opciones de configuración admitidas para cada tipo de balanceador de cargas, consulta Funciones y compatibilidad.
Puedes asociar cada adjunto de servicio con la regla de reenvío de un solo balanceador de cargas. No puedes asociar varios adjuntos de servicio con la misma regla de reenvío.
La versión de IP de la regla de reenvío de tu balanceador de cargas (IPv4 o IPv6) afecta qué consumidores pueden conectarse a tu servicio publicado. Las reglas de reenvío de IPv6 están disponibles en Vista previa. Para obtener más información, consulta Traducción de versiones de IP.
Para los balanceadores de cargas de red del proxy interno regional, los backends se pueden ubicar en Google Cloud, en otras nubes, en un entorno local o en cualquier combinación de estas ubicaciones.
También puedes publicar un servicio alojado en un balanceador de cargas de red de transferencia interno en Google Kubernetes Engine. Esta configuración, que incluye la configuración del balanceador de cargas y del adjunto de servicios, se describe en Crea un balanceador de cargas de red de transferencia interno con Private Service Connect en la documentación de GKE.
Crea una subred para Private Service Connect
Crea una o más subredes dedicadas para usar con Private Service Connect. Si usas la consola de Google Cloud para publicar un servicio, puedes crear las subredes durante ese procedimiento.
Si necesitas que más direcciones IP estén disponibles para un servicio existente, consulta Agrega o quita subredes de un servicio publicado.
También puedes crear una subred de Private Service Connect en un proyecto host de VPC compartida.
Crea la subred en la misma región que el balanceador de cargas del servicio.
No puedes convertir una subred normal en una subred de Private Service Connect.
Si deseas publicar un servicio que entregue tráfico IPv6 (vista previa), debes usar subredes de pila doble.
Console
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en el nombre de una red de VPC para ver la página Detalles de la red de VPC.
Haz clic en Subredes.
Haz clic en Agregar subred. En el panel que aparece, haz lo siguiente:
- Proporciona un Nombre.
- Selecciona una Región.
- En la sección Objetivo, selecciona Private Service Connect.
- Selecciona un Tipo de pila de IP.
- Ingresa un rango IPv4. Por ejemplo,
10.10.10.0/24
- Haga clic en Agregar.
gcloud
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --stack-type=STACK_TYPE \ --range=SUBNET_RANGE \ --purpose=PRIVATE_SERVICE_CONNECT
Reemplaza lo siguiente:
SUBNET_NAME
: nombre que se asignará al extremo.NETWORK_NAME
: Es el nombre de la VPC de la subred nueva.REGION
: Es la región de la subred nueva. Debe ser la misma región que el servicio que publicas.STACK_TYPE
: Es el tipo de pila de la subred, que puede serIPV4_ONLY
oIPV4_IPV6
. El valor predeterminado esIPV4_ONLY
.SUBNET_RANGE
: El rango de direcciones IPv4 que se usará para la subred, por ejemplo,10.10.10.0/24
.
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "SUBNET_RANGE", "name": "SUBNET_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "purpose": "PRIVATE_SERVICE_CONNECT", "stackType": "STACK_TYPE" }
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto de la subred.REGION
: Es la región de la subred nueva. Debe ser la misma región que el servicio que publicas.SUBNET_RANGE
: El rango de direcciones IPv4 que se usará para la subred. Por ejemplo,10.10.10.0/24
SUBNET_NAME
: nombre que se asignará al extremo.NETWORK_NAME
: Es el nombre de la red de VPC de la subred nueva.STACK_TYPE
: Es el tipo de pila de la subred, que puede serIPV4_ONLY
oIPV4_IPV6
.
Configura reglas de firewall
Configura las reglas de firewall para permitir el tráfico entre los extremos o backends y el adjunto del servicio. Las solicitudes de los clientes se originan en ubicaciones diferentes según el tipo de Private Service Connect.
Tipo de Private Service Connect | Rangos de direcciones IP para el tráfico de clientes | Detalles |
---|---|---|
Extremo (basado en una regla de reenvío) | Los rangos de direcciones IP de las subredes de Private Service Connect asociadas con este servicio. | Si usas la red predeterminada, la regla prepropagada default-allow-internal permite este tráfico, a menos que haya una regla de mayor prioridad que lo bloquee. |
Backend (basado en un balanceador de cargas de aplicaciones externo global) |
|
Los balanceadores de cargas de aplicaciones externos globales se implementan en Google Front Ends (GFE), que usan estos rangos de direcciones IP. |
Si tu configuración de firewall aún no permite el tráfico del tipo de extremo adecuado, configura las reglas de firewall para permitirlo.
En la siguiente configuración de ejemplo, puedes crear reglas de firewall de VPC para permitir el tráfico de los rangos de direcciones IP de cliente a las VM de backend en el balanceador de cargas del servicio del productor. En esta configuración, se supone que las VM de backend se configuraron con una etiqueta de red.
Ejemplo de regla de entrada:
gcloud compute firewall-rules create NAME \ --network=NETWORK_NAME \ --direction=ingress \ --action=allow \ --target-tags=TAG \ --source-ranges=CLIENT_IP_RANGES_LIST \ --rules=RULES_LIST
Reemplaza lo siguiente:
NAME
: Es el nombre de la regla de firewall.NETWORK_NAME
: Es la red que contiene el servicio y la subred de Private Service Connect.TAG
es la etiqueta de destino que se aplica a las VM de backend en el balanceador de cargas del servicio de productor.CLIENT_IP_RANGES_LIST
: Los rangos de direcciones IP desde los que se origina el tráfico del cliente. Para obtener más información, consulta la tabla anterior.RULES_LIST
es una lista separada por comas de protocolos y puertos de destino a los que se aplica la regla. Por ejemplo,tcp,udp
.
Ejemplo de regla de salida:
gcloud compute firewall-rules create NAME \ --network=NETWORK_NAME \ --direction=egress \ --action=allow \ --target-tags=TAG \ --destination-ranges=CLIENT_IP_RANGES_LIST \ --rules=RULES_LIST
Reemplaza lo siguiente:
NAME
: Es el nombre de la regla de firewall.NETWORK_NAME
: Es la red que contiene el servicio y la subred de Private Service Connect.TAG
es la etiqueta de destino que se aplica a las VM de backend en el balanceador de cargas del servicio de productor.CLIENT_IP_RANGES_LIST
: Los rangos de direcciones IP desde los que se origina el tráfico del cliente. Para obtener más información, consulta la tabla anterior.RULES_LIST
es una lista separada por comas de protocolos y puertos de destino a los que se aplica la regla. Por ejemplo,tcp,udp
.
Para obtener más información sobre cómo configurar las reglas de firewall de VPC, consulta Reglas de firewall de VPC. Para configurar las reglas de firewall jerárquicas a fin de permitir este tráfico, consulta Políticas de firewall jerárquicas.
Publica un servicio
Para publicar un servicio, debes crear un adjunto de servicio. Puedes hacer que el servicio esté disponible de dos maneras:
- Puedes publicar un servicio con aprobación automática.
- Puedes publicar un servicio con aprobación explícita.
Crea el adjunto del servicio en la misma región que el balanceador de cargas del servicio.
Cada adjunto de servicio puede apuntar a una o más subredes de Private Service Connect, pero no se puede usar una subred de Private Service Connect en más de un adjunto de servicio.
Publica un servicio con aprobación automática
Usa estas instrucciones para publicar un servicio y permitir que cualquier consumidor se conecte a este servicio de forma automática. Si deseas aprobar las conexiones de consumidor de forma explícita, consulta Publica un servicio con aprobación explícita.
Cuando publicas un servicio, creas un adjunto de servicio. Los consumidores de servicios utilizan los detalles del adjunto del servicio para conectarse a tu servicio.
Si deseas ver la información de conexión del consumidor, puedes habilitar el protocolo PROXY en los servicios compatibles. Para obtener información sobre los servicios compatibles, consulta Funciones y compatibilidad. Para obtener más información sobre el protocolo PROXY, consulta Información de conexión del consumidor.
Puedes asociar subredes de pila única y doble con el mismo adjunto de servicio. Si tu balanceador de cargas está configurado para el tráfico IPv6 (vista previa), debes usar subredes de pila doble.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Servicios publicados.
Haz clic en Publicar servicio.
Selecciona el Tipo de balanceador de cargas para el servicio que deseas publicar:
- Balanceador de cargas de red de transferencia interno
- Balanceador de cargas de red del proxy interno regional
- Balanceador de cargas de aplicaciones interno regional
Selecciona el Balanceador de cargas interno que aloja el servicio que deseas publicar. Los campos de red y región se propagan con los detalles del balanceador de cargas interno seleccionado.
Los administradores de proyectos de servicio pueden seleccionar un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
Si se te solicita, selecciona la Regla de reenvío asociada con el servicio que deseas publicar.
En Nombre del servicio, ingresa un nombre para el adjunto del servicio.
Selecciona una o más Subredes de Private Service Connect para el servicio. La lista se propaga con subredes de la red de VPC del balanceador de cargas interno seleccionado, incluidas las subredes que se comparten con un proyecto de servicio a través de una VPC compartida.
Si tu adjunto de servicio usa un balanceador de cargas interno con una dirección IP de una red de VPC compartida, debes seleccionar una subred compartida de la misma red de VPC compartida.
Si deseas agregar una subred nueva, puedes crear una:
- Haz clic en Reservar subred nueva.
- Ingresa un Nombre y una Descripción opcional para la subred.
- Selecciona una Región para la subred.
- Selecciona un Tipo de pila de IP.
- Ingresa el Rango IPv4 que se usará en la subred y haz clic en Agregar.
Si deseas ver la información de conexión del consumidor, selecciona Usar protocolo de proxy.
Selecciona Aceptar automáticamente todas las conexiones.
Si deseas inhabilitar la conciliación de conexiones, borra la casilla de verificación Habilitar la conciliación de conexiones.
Si deseas configurar un nombre de dominio, haz lo siguiente:
- Haz clic en Configuración avanzada.
Ingresa un nombre de dominio, incluido un punto final.
El formato recomendado para el nombre de dominio es
REGION.p.DOMAIN.
.Debes ser dueño del nombre de dominio. Para obtener más información, consulta Configuración de DNS.
Haz clic en Agregar servicio.
gcloud
gcloud compute service-attachments create ATTACHMENT_NAME \ --region=REGION \ --producer-forwarding-rule=RULE_NAME \ --connection-preference=ACCEPT_AUTOMATIC \ --nat-subnets=PSC_SUBNET_LIST \ [ --enable-proxy-protocol ] \ [ --domain-names=DOMAIN_NAME ]
Reemplaza lo siguiente:
ATTACHMENT_NAME
: Es el nombre que se asignará al adjunto de servicio.REGION
: Es la región del adjunto del servicio nuevo. Debe ser la misma región que el servicio que publicas.RULE_NAME
: El nombre de la regla de reenvío asociada con el servicio que publicas.Los administradores de proyectos de servicio pueden especificar la regla de reenvío de un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
PSC_SUBNET_LIST
: Una lista separada por comas de uno o más nombres de subred para usar con este adjunto de servicio.Si creas un adjunto de servicio con una regla de reenvío que tiene una dirección IP de una red de VPC compartida, usa subredes compartidas de la misma red de VPC compartida. Para cada subred compartida, especifica el URI del recurso completo, por ejemplo,
--nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
.DOMAIN_NAME
: un nombre de dominio DNS para el servicio, incluido un punto final. Formato recomendado:REGION.p.DOMAIN.
Para obtener más información, consulta Configuración de DNS.
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments { "name": "ATTACHMENT_NAME", "connectionPreference": "ACCEPT_AUTOMATIC", "targetService": "RULE_URI", "enableProxyProtocol": false, "natSubnets": [ "PSC_SUBNET_1_URI", "PSC_SUBNET_2_URI" ], "domainNames": [ "DOMAIN_NAME" ] }
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto del adjunto de servicio.REGION
: Es la región del adjunto del servicio nuevo. Debe ser la misma región que el servicio que publicas.ATTACHMENT_NAME
: Es el nombre que se asignará al adjunto de servicio.RULE_URI
: El URI de la regla de reenvío asociada con el servicio que publicas.Los administradores de proyectos de servicio pueden especificar la regla de reenvío de un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
PSC_SUBNET_1_URI
yPSC_SUBNET_2_URI
: Son los URI de subred que se usarán para este adjunto de servicio. Puedes especificar una o más subredes por URI.Si creas un adjunto de servicio con una regla de reenvío que tiene una dirección IP de una red de VPC compartida, usa subredes compartidas de la misma red de VPC compartida.
DOMAIN_NAME
: un nombre de dominio DNS para el servicio, incluido un punto final. Formato recomendado:REGION.p.DOMAIN.
Para obtener más información, consulta Configuración de DNS.
Publica un servicio con aprobación explícita
Usa estas instrucciones para publicar un servicio si deseas aprobar de forma explícita a los consumidores antes de que puedan conectarse a este. Si deseas aprobar automáticamente las conexiones del consumidor, consulta Publica un servicio con aprobación automática.
Cuando publicas un servicio, creas un adjunto de servicio. Los consumidores de servicios utilizan los detalles del adjunto del servicio para conectarse a tu servicio.
Cada adjunto de servicio tiene una lista de aceptación del consumidor y otra de rechazo, que se usan para determinar qué extremos pueden conectarse al servicio. Un adjunto de servicio determinado puede usar proyectos o redes en estas listas, pero no ambos. No se admite la especificación de consumidores por carpeta.
Sigue estos pasos, si pasas de aceptar consumidores según el proyecto a aceptarlos según la red, o viceversa:
- Reemplaza todos los proyectos o redes aprobados en una sola operación.
- Si necesitas proporcionar el mismo acceso que antes, asegúrate de que las listas nuevas de aceptación y rechazo sean equivalentes a las anteriores.
Si agregas un proyecto o una red a la lista de aceptación y a la de rechazo, se rechazan las solicitudes de conexión de ese proyecto o red.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Servicios publicados.
Haz clic en Publicar servicio.
Selecciona el Tipo de balanceador de cargas para el servicio que deseas publicar:
- Balanceador de cargas de red de transferencia interno
- Balanceador de cargas de red del proxy interno regional
- Balanceador de cargas de aplicaciones interno regional
Selecciona el Balanceador de cargas interno que aloja el servicio que deseas publicar. Los campos de red y región se propagan con los detalles del balanceador de cargas interno seleccionado.
Los administradores de proyectos de servicio pueden seleccionar un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
Si se te solicita, selecciona la Regla de reenvío asociada con el servicio que deseas publicar.
En Nombre del servicio, ingresa un nombre para el adjunto del servicio.
Selecciona una o más Subredes de Private Service Connect para el servicio. La lista se propaga con subredes de la red de VPC del balanceador de cargas interno seleccionado, incluidas las subredes que se comparten con un proyecto de servicio a través de una VPC compartida.
Si tu adjunto de servicio usa un balanceador de cargas interno con una dirección IP de una red de VPC compartida, debes seleccionar una subred compartida de la misma red de VPC compartida.
Si deseas agregar una subred nueva, puedes crear una:
- Haz clic en Reservar subred nueva.
- Ingresa un Nombre y una Descripción opcional para la subred.
- Selecciona una Región para la subred.
- Selecciona un Tipo de pila de IP.
- Ingresa el Rango IPv4 que se usará en la subred y haz clic en Agregar.
Si deseas ver la información de conexión del consumidor, selecciona Usar protocolo de proxy.
Si deseas aceptar conexiones para los proyectos seleccionados, selecciona Aceptar conexiones para los proyectos seleccionados.
- Sigue estos pasos para cada proyecto del que quieras aceptar conexiones:
- Haz clic en Agregar proyecto aceptado y, luego, ingresa la siguiente información:
- El ID o el número del proyecto del que deseas aceptar conexiones.
- Un Límite de conexión para especificar la cantidad máxima de extremos del proyecto especificado que se puede conectar.
- Haz clic en Agregar proyecto aceptado y, luego, ingresa la siguiente información:
- Opcional: Para cada proyecto del que quieras rechazar de forma explícita las conexiones, haz clic en Agregar proyecto rechazado y, luego, ingresa el ID o el número del proyecto.
- Sigue estos pasos para cada proyecto del que quieras aceptar conexiones:
Si deseas aceptar conexiones para las redes seleccionadas, selecciona Aceptar conexiones para las redes seleccionadas.
- Para cada red de la que deseas aceptar conexiones, haz lo siguiente:
- Haz clic en Agregar red aceptada y, luego, ingresa la siguiente información:
- El ID del proyecto o el número del proyecto superior de la red desde la que deseas aceptar conexiones.
- Es el nombre de la red desde la que deseas aceptar conexiones.
- Un Límite de conexión para especificar la cantidad máxima de extremos de la red especificada que pueden conectarse.
- Haz clic en Agregar red aceptada y, luego, ingresa la siguiente información:
- Opcional: Para cada red de la que deseas rechazar conexiones de forma explícita, haz clic en Agregar red rechazada y, luego, ingresa el ID o el número de proyecto del proyecto superior de la red y el nombre de la red.
- Para cada red de la que deseas aceptar conexiones, haz lo siguiente:
Si deseas inhabilitar la conciliación de conexiones, borra la casilla de verificación Habilitar la conciliación de conexiones.
Si deseas configurar un nombre de dominio, haz lo siguiente:
- Haz clic en Configuración avanzada.
Ingresa un nombre de dominio, incluido un punto final.
El formato recomendado para el nombre de dominio es
REGION.p.DOMAIN.
.Debes ser dueño del nombre de dominio. Para obtener más información, consulta Configuración de DNS.
Haz clic en Agregar servicio.
gcloud
gcloud compute service-attachments create ATTACHMENT_NAME \ --region=REGION \ --producer-forwarding-rule=RULE_NAME \ --connection-preference=ACCEPT_MANUAL \ --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \ --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \ --nat-subnets=PSC_SUBNET_LIST \ [--enable-proxy-protocol ] \ [--domain-names=DOMAIN_NAME] \ [--reconcile-connections]
Reemplaza lo siguiente:
ATTACHMENT_NAME
: Es el nombre que se asignará al adjunto de servicio.REGION
: Es la región del adjunto del servicio nuevo. Debe ser la misma región que el servicio que publicas.RULE_NAME
: El nombre de la regla de reenvío asociada con el servicio que publicas.Los administradores de proyectos de servicio pueden especificar la regla de reenvío de un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
ACCEPTED_PROJECT_OR_NETWORK_1
yACCEPTED_PROJECT_OR_NETWORK_2
: Son los ID del proyecto, los nombres de los proyectos o los URIs de red que se aceptarán.--consumer-accept-list
es opcional y puede contener uno o más proyectos o redes, pero no una combinación de ambos tipos.LIMIT_1
yLIMIT_2
: Son los límites de conexión de los proyectos o las redes. El límite de conexiones es la cantidad de extremos o backends de consumidores que se pueden conectar a este servicio. Cada proyecto o red aceptado debe tener configurado un límite de conexiones.REJECTED_PROJECT_OR_NETWORK_1
yREJECTED_PROJECT_OR_NETWORK_2
: Son los ID del proyecto, los nombres de los proyectos o los URIs de red que se rechazarán.--consumer-reject-list
es opcional y puede contener uno o más proyectos o redes, pero no una combinación de ambos tipos.PSC_SUBNET_LIST
: Una lista separada por comas de uno o más nombres de subred para usar con este adjunto de servicio.Si creas un adjunto de servicio con una regla de reenvío que tiene una dirección IP de una red de VPC compartida, usa subredes compartidas de la misma red de VPC compartida. Para cada subred compartida, especifica el URI del recurso completo, por ejemplo,
--nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
.DOMAIN_NAME
: un nombre de dominio DNS para el servicio, incluido un punto final. Formato recomendado:REGION.p.DOMAIN.
Para obtener más información, consulta Configuración de DNS.
API
Para publicar un servicio y aprobar de forma explícita a los consumidores en función del proyecto, envía la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments { "name": "ATTACHMENT_NAME", "region": "REGION", "connectionPreference": "ACCEPT_MANUAL", "targetService": "RULE_URI", "enableProxyProtocol": false, "natSubnets": [ "PSC_SUBNET_1_URI", "PSC_SUBNET_2_URI" ], "consumerRejectLists": [ "REJECTED_PROJECT_1", "REJECTED_PROJECT_2" ], "consumerAcceptLists": [ { "projectIdOrNum": "ACCEPTED_PROJECT_1", "connectionLimit": "LIMIT_1" }, { "projectIdOrNum": "ACCEPTED_PROJECT_2", "connectionLimit": "LIMIT_2" } ], "domainNames": [ "DOMAIN_NAME" ] }
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto del adjunto de servicio.REGION
: Es la región del adjunto del servicio.ATTACHMENT_NAME
: Es el nombre que se asignará al adjunto de servicio.RULE_URI
: El URI de la regla de reenvío asociada con el servicio que publicas.Los administradores de proyectos de servicio pueden especificar la regla de reenvío de un balanceador de cargas interno que tenga una dirección IP de una red de VPC compartida. Para obtener más información, consulta VPC compartida.
PSC_SUBNET_1_URI
yPSC_SUBNET_2_URI
: Son los URI de subred que se usarán para este adjunto de servicio. Puedes especificar una o más subredes por URI.Si creas un adjunto de servicio con una regla de reenvío que tiene una dirección IP de una red de VPC compartida, usa subredes compartidas de la misma red de VPC compartida.
REJECTED_PROJECT_1
yREJECTED_PROJECT_2
: Son los ID o los números de los proyectos que se rechazarán.consumerRejectLists
es opcional y puede contener uno o más proyectos.ACCEPTED_PROJECT_1
yACCEPTED_PROJECT_2
: Son los números o los ID de los proyectos que se aceptarán.consumerAcceptLists
es opcional y puede contener uno o más proyectos.LIMIT_1
yLIMIT_2
: Son los límites de conexión de los proyectos. El límite de conexiones es la cantidad de extremos o backends de consumidores que se pueden conectar a este servicio. Cada proyecto aceptado debe tener configurado un límite de conexiones.DOMAIN_NAME
: un nombre de dominio DNS para el servicio, incluido un punto final. Formato recomendado:REGION.p.DOMAIN.
Para obtener más información, consulta Configuración de DNS.
Para publicar un servicio y aprobar de forma explícita a los consumidores en función de la red de VPC, envía la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments { "name": "ATTACHMENT_NAME", "region": "REGION", "connectionPreference": "ACCEPT_MANUAL", "targetService": "RULE_URI", "enableProxyProtocol": false, "natSubnets": [ "PSC_SUBNET_1_URI", "PSC_SUBNET_2_URI" ], "consumerRejectLists": [ "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1", "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2" ], "consumerAcceptLists": [ { "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1", "connectionLimit": "LIMIT_1" }, { "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2", "connectionLimit": "LIMIT_2" } ], "domainNames": [ "DOMAIN_NAME" ] }
Reemplaza lo siguiente:
REJECTED_PROJECT_ID_1
yREJECTED_PROJECT_ID_2
: Son los ID de los proyectos superiores de las redes que deseas rechazar.consumerRejectLists
es opcional y puede contener uno o más proyectos.REJECTED_NETWORK_1
yREJECTED_NETWORK_2
: Son los nombres de las redes que deseas rechazar.ACCEPTED_PROJECT_ID_1
yACCEPTED_PROJECT_ID_2
: Son los ID de los proyectos superiores de las redes que deseas aceptar.consumerAcceptLists
es opcional y puede contener una o más redes.ACCEPTED_NETWORK_1
yACCEPTED_NETWORK_2
: Son los nombres de las redes que deseas aceptar.LIMIT_1
yLIMIT_2
: Son los límites de conexión de las redes. El límite de conexiones es la cantidad de extremos o backends de consumidores que se pueden conectar a este servicio. Cada proyecto aceptado debe tener configurado un límite de conexiones.
Para publicar un servicio con conciliación de conexión habilitada, envía una solicitud similar a las solicitudes anteriores, pero incluye el siguiente campo:
{ ... "reconcileConnections": true ... }
Ve información sobre la conexión del consumidor
Para obtener información sobre cómo ver la información de conexión del consumidor mediante el protocolo PROXY, consulta Visualiza la información de conexión del consumidor.
Administra solicitudes para acceder a un servicio publicado
Si tienes un servicio publicado con aprobación explícita, puedes aceptar o rechazar solicitudes de conexión de redes o proyectos de consumidor. Para obtener más información, consulta Administra solicitudes de acceso a un servicio publicado.
También puedes cambiar entre la aceptación automática y explícita del proyecto para un servicio publicado. Para obtener más información, consulta Cambia la preferencia de conexión de un servicio publicado.
Agrega o quita subredes de un servicio publicado
Puedes agregar o quitar subredes de un servicio publicado. Para obtener más información, consulta Agrega o quita subredes de un servicio publicado.
Enumera los servicios publicados
Puedes enumerar todos los servicios.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Servicios publicados.
Se muestran los adjuntos del servicio de Private Service Connect.
gcloud
Enumera los adjuntos del servicio.
gcloud compute service-attachments list [--regions=REGION_LIST]
Reemplaza lo siguiente:
REGION_LIST
: Una lista separada por comas de una o más regiones en las que deseas ver los adjuntos de servicio. Por ejemplo,us-central1
ous-west1,us-central1
.
API
Puedes ver todos los adjuntos de servicio en una región determinada o en todas las regiones.
Visualiza todos los adjuntos de servicio en una región:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
Visualiza todos los adjuntos de servicio en todas las regiones:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto del adjunto de servicio.REGION
: Es la región del adjunto del servicio.ATTACHMENT_NAME
: Es el nombre del adjunto de servicio.
Ve detalles de un servicio publicado
Puedes ver todos los detalles de configuración de un servicio publicado.
Puedes ver algunos detalles de configuración en la consola de Google Cloud, por ejemplo, el URI del adjunto del servicio que los consumidores del servicio necesitan conectarse al servicio. Para ver todos los detalles, incluidos los valores de pscConnectionId
de los consumidores del adjunto de servicio, usa la CLI de Google Cloud o la API.
Console
Puedes ver los detalles de un servicio publicado. El campo Adjunto de servicio contiene el URI del adjunto de servicio.
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Servicios publicados.
Haz clic en el servicio que deseas ver.
gcloud
Puedes ver los detalles de un servicio publicado. El campo selfLink
contiene el URI del adjunto de servicio.
gcloud compute service-attachments describe \ ATTACHMENT_NAME --region=REGION
API
Puedes ver los detalles de un servicio publicado. El campo selfLink
contiene el URI del adjunto de servicio.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto del adjunto de servicio.REGION
: Es la región del adjunto del servicio.ATTACHMENT_NAME
: Es el nombre del adjunto de servicio.
Borra un servicio publicado
Puedes borrar un servicio publicado, incluso si hay conexiones de consumidor en el adjunto de servicio. Si borras el servicio publicado, solo se quitará el adjunto del servicio. El balanceador de cargas asociado no se borra. Cuando borras un servicio publicado, se aplica lo siguiente:
El tráfico de los extremos (basados en reglas de reenvío) ya no se envía al balanceador de cargas.
El tráfico de los backends (basados en balanceadores de cargas HTTP(S) externos globales) se envía al balanceador de cargas hasta que este se borra.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Servicios publicados.
Haz clic en el servicio que deseas borrar.
Haz clic en Borrar.
gcloud
gcloud compute service-attachments delete \ ATTACHMENT_NAME --region=REGION
API
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: Es el proyecto del adjunto de servicio.REGION
: Es la región del adjunto del servicio.ATTACHMENT_NAME
: Es el nombre del adjunto de servicio.
Problemas conocidos
Desconexiones después de actualizar el proveedor de Google para Terraform
Si usaste el proveedor de Google para Terraform con versiones anteriores a la 4.76.0 para crear adjuntos de servicio, no actualices a las versiones 4.76.0 a 4.81.x. Cuando ejecutas terraform apply
después de actualizar a las versiones 4.76.0 a 4.81.x, Terraform puede borrar y volver a crear de forma involuntaria los adjuntos del servicio y cerrar las conexiones existentes de Private Service Connect. Los adjuntos de servicio creados de nuevo no vuelven a establecer conexiones de Private Service Connect de forma automática.
Si actualizas a la versión 4.82.0 y, luego, ejecutas terraform apply
, los adjuntos de servicio no se borrarán, pero la configuración de conciliación de conexiones se establece como verdadera. Si la configuración se estableció antes como falsa, es posible que se cierren algunas conexiones de Private Service Connect.
Actualiza a las versiones 4.76.0 a 4.81.x del proveedor de Google. En este caso, el resultado de
terraform plan
incluye lo siguiente:-/+ resource "google_compute_service_attachment" "SERVICE_NAME" { ... ~ reconcile_connections = false -> true # forces replacement ...
Usa la solución alternativa para evitar este problema.
Actualiza a las versiones 4.82.0 del proveedor de Google. En esta situación, el resultado de
terraform plan
incluye lo siguiente:~ reconcile_connections = false -> true
Si ignoras esta advertencia y aplicas los cambios, Terraform actualiza el adjunto del servicio para activar la conciliación de la conexión. Según el estado de su conexión, cambiar de
false
atrue
puede cerrar algunas conexiones existentes. Para obtener más información, consulta Conciliación de conexiones.Usa la solución alternativa para evitar este problema.
Solución alternativa
Te recomendamos actualizar el proveedor de Google para Terraform a la versión 4.82.0 o posterior. Esta versión evita la eliminación y la recreación involuntaria de los adjuntos de servicio.
Si no puedes actualizar de inmediato o si puedes actualizar, pero también quieres evitar que Terraform cambie la configuración de conciliación de la conexión, actualiza la configuración de Terraform para establecer de forma explícita la configuración de conciliación de conexión.
Consulta la configuración detallada del adjunto de servicio y anota la configuración
reconcileConnections
.$ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
El resultado incluye el campo
reconcileConnections
, que puede ser verdadero o falso.reconcileConnections: false
Actualiza tu archivo de configuración de Terraform para usar de forma explícita la misma configuración que se usa en el adjunto de servicio.
resource "google_compute_service_attachment" "SERVICE_NAME" { ... reconcile_connections = false }
Para ver una configuración de ejemplo, consulta Conexiones de conciliación de adjuntos de servicio en GitHub.
Actualizaciones de parches para adjuntos de servicio
Cuando actualizas un adjunto de servicio con la API de PATCH
, debes proporcionar todos los campos para el adjunto de servicio en el cuerpo de la solicitud, no solo los campos que estás actualizando. Usa serviceAttachments.get
para recuperar todos los campos.
Soluciona problemas
Error de actualización de un adjunto de servicio
Si ves el mensaje de error siguiente cuando actualizas un adjunto de servicio, las listas de aceptación o de rechazo pueden incluir proyectos borrados: The
resource PROJECT was not found
.
Quita los proyectos borrados de la configuración del adjunto de servicio para resolver el problema.
Usa el comando
gcloud compute service-attachments describe
para mostrar la configuración del adjunto del servicio que deseas modificar.Para mostrar la lista de aceptación en un formato que puedes usar más adelante a fin de actualizar el adjunto del servicio, haz lo siguiente:
gcloud compute service-attachments describe ATTACHMENT_NAME \ --region=REGION --flatten="consumerAcceptLists[]" \ --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \ | xargs | sed -e 's/ /,/g'
El resultado de la lista de aceptación es similar al siguiente:
PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
Para mostrar la lista de rechazo en un formato que puedes usar más adelante a fin de actualizar el adjunto del servicio, haz lo siguiente:
gcloud compute service-attachments describe ATTACHMENT_NAME \ --region=REGION \ --format="value[delimiter=','](consumerRejectLists[])"
El resultado de la lista de rechazo es similar al siguiente:
PROJECT_1,PROJECT_2,PROJECT_3
Edita el resultado del comando para quitar los proyectos borrados de la lista de aceptación y la lista de rechazo.
Actualiza el adjunto del servicio para quitar los proyectos borrados.
Para actualizar la lista de aceptación, haz lo siguiente:
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --consumer-accept-list=UPDATED_ACCEPT_LIST
Para actualizar la lista de rechazo, haz lo siguiente:
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --consumer-reject-list=UPDATED_REJECT_LIST
No se establece la conectividad
Si un consumidor creó un extremo o un backend que hace referencia a tu adjunto de servicio, pero no se estableció la conectividad, verifica el estado de conexión del adjunto de servicio. El estado de la conexión puede indicar los pasos a seguir para resolver el problema.
Se agota el tiempo de espera de las conexiones del consumidor
Si se agota el tiempo de espera de las conexiones del consumidor, verifica si tu servicio requiere conexiones de larga duración. El tiempo de espera de inactividad de la conexión establecida de TCP para NAT de Private Service Connect es de 20 minutos. Si tu servicio necesita un tiempo de espera mayor, es posible que debas realizar algunos cambios de configuración para garantizar que no se agote el tiempo de espera de las conexiones. Para obtener más información, consulta Especificaciones de NAT.