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:

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.

Antes de comenzar

Tipos de balanceadores de cargas admitidos

Puedes alojar el servicio con los siguientes balanceadores de cargas:

A fin de obtener información sobre las opciones de configuración admitidas para cada tipo de balanceador de cargas, consulta Funciones y compatibilidad.

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.

Console

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en el nombre de una red de VPC para ver la página Detalles de la red de VPC.

  3. Haz clic en Agregar subred. En el panel que aparece, haz lo siguiente:

    1. Proporciona un Nombre.
    2. Selecciona una Región.
    3. En la sección Objetivo, selecciona Private Service Connect.
    4. Ingresa un Rango de direcciones IP. Por ejemplo, 10.10.10.0/24
    5. Haga clic en Agregar.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --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.

  • SUBNET_RANGE: El rango de direcciones IP 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",
}

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 IP 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.

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)
  • 130.211.0.0/22
  • 35.191.0.0/16
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:

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 Visualiza la información de conexión del consumidor.

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Servicios publicados.

  3. Haz clic en Publicar servicio.

  4. 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
  5. Selecciona el Balanceador de cargas interno que aloja el servicio que deseas publicar.

    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.

    Los campos de red y región se propagan con los detalles del balanceador de cargas interno seleccionado.

  6. Si se te solicita, selecciona la Regla de reenvío asociada con el servicio que deseas publicar.

  7. En Nombre del servicio, ingresa un nombre para el adjunto del servicio.

  8. 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.

  9. Si deseas ver la información de conexión del consumidor, selecciona Usar protocolo de proxy.

  10. Si deseas configurar un nombre de dominio, 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.

  11. Selecciona Aceptar conexiones de forma automática.

  12. 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 y PSC_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

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Servicios publicados.

  3. Haz clic en Publicar servicio.

  4. Selecciona el Tipo de balanceador de cargas: Balanceador de cargas TCP/UDP interno o Balanceador de cargas HTTP(S) interno.

  5. Selecciona el Balanceador de cargas interno que aloja el servicio que deseas publicar.

    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.

    Los campos de red y región se propagan con los detalles del balanceador de cargas interno seleccionado.

  6. Si se te solicita, selecciona la Regla de reenvío asociada con el servicio que deseas publicar.

  7. En Nombre del servicio, ingresa un nombre para el adjunto del servicio.

  8. 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.

  9. Si deseas ver la información de conexión del consumidor, marca la casilla de verificación Protocolos.

  10. Si deseas configurar un nombre de dominio, 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.

  11. Si deseas aceptar conexiones para los proyectos seleccionados, selecciona Aceptar conexiones para los proyectos seleccionados.

    1. Sigue estos pasos para cada proyecto del que quieras aceptar conexiones:
      1. 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.
    2. 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.
  12. Si deseas aceptar conexiones para las redes seleccionadas, selecciona Aceptar conexiones para las redes seleccionadas.

    1. Para cada red de la que deseas aceptar conexiones, haz lo siguiente:
      1. 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.
    2. 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.
  13. Si deseas inhabilitar la conciliación de conexiones, borra la casilla de verificación Habilitar la conciliación de conexiones.

  14. 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 y ACCEPTED_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 y LIMIT_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 y REJECTED_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 y PSC_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 y REJECTED_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 y ACCEPTED_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 y LIMIT_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 y REJECTED_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 y REJECTED_NETWORK_2: Son los nombres de las redes que deseas rechazar.
    • ACCEPTED_PROJECT_ID_1 y ACCEPTED_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 y ACCEPTED_NETWORK_2: Son los nombres de las redes que deseas aceptar.
    • LIMIT_1 y LIMIT_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

De forma predeterminada, Private Service Connect traduce la dirección IP de origen del consumidor a una dirección en una de las subredes de Private Service Connect en la red de VPC del productor de servicios. Si, en cambio, deseas ver la dirección IP de origen original del consumidor, puedes habilitar el protocolo PROXY.

No todos los servicios admiten el protocolo PROXY. Para obtener más información, consulta Funciones y compatibilidad.

Si el protocolo PROXY está habilitado, puedes obtener la dirección IP de origen del consumidor y el ID de conexión de PSC (pscConnectionId) desde el encabezado del protocolo PROXY.

Cuando habilitas el protocolo PROXY para un adjunto de servicio, el cambio se aplica solo a las conexiones nuevas. Las conexiones existentes no incluyen el encabezado del protocolo PROXY.

Si habilitas el protocolo PROXY, consulta la documentación del software del servidor web de backend para obtener información sobre el análisis y el procesamiento de los encabezados del protocolo PROXY entrantes en las cargas útiles de TCP de la conexión del cliente. Si el protocolo PROXY está habilitado en el adjunto de servicio, pero el servidor web de backend no está configurado para procesar encabezados de protocolo PROXY, las solicitudes web pueden tener un formato incorrecto. Si las solicitudes tienen formato incorrecto, el servidor no puede interpretarlas.

El pscConnectionId se codifica en el encabezado del protocolo PROXY en formato Type-Length-Value (TLV).

Campo Longitud del campo Valor del campo
Tipo 1 byte 0xE0 (PP2_TYPE_GCP)
Duración 2 bytes 0x8 (8 bytes)
Valor 8 bytes El pscConnectionId de 8 bytes en orden de red

Puedes ver el pscConnectionId de 8 bytes de la regla de reenvío del consumidor o el adjunto de servicio del productor.

pscConnectionId es único a nivel global para todas las conexiones activas en un momento determinado. Sin embargo, con el tiempo, un pscConnectionId podría volver a usarse en estas situaciones:

  • Dentro de una red de VPC determinada, si borras un extremo (regla de reenvío) y creas un extremo nuevo con la misma dirección IP, se podría usar el mismo pscConnectionId.

  • Si borras una red de VPC que contenía extremos (reglas de reenvío), después de un período de espera de siete días, el pscConnectionId que se usa para esos extremos podría usarse para un extremo diferente en otra red de VPC.

Puedes usar pscConnectionId para depurar y realizar un seguimiento de la fuente de los paquetes.

Además, hay un ID de adjunto de PSC de 16 bytes que está disponible en el adjunto de servicio del productor. El ID de adjunto de PSC es un ID global único que identifica un adjunto de servicio de Private Service Connect. Puedes usar el ID de adjunto de PSC para obtener visibilidad y depurar. El ID de adjunto de PSC no se incluye en el encabezado del protocolo PROXY.

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

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Servicios publicados.

    Se muestran los adjuntos del servicio de Private Service Connect.

gcloud

  1. 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 o us-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.

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Servicios publicados.

  3. 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:

Console

  1. En la consola de Google Cloud, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Servicios publicados.

  3. Haz clic en el servicio que deseas borrar.

  4. 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 a true 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.

  1. 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
    
  2. 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 del adjunto 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.

  1. 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
      
  2. Edita el resultado del comando para quitar los proyectos borrados de la lista de aceptación y la lista de rechazo.

  3. 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.