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.

Funciones

La siguiente función de IAM proporciona los permisos necesarios para realizar las tareas de esta guía.

Antes de comenzar

  • Lee Acerca de los servicios publicados para obtener información sobre la publicación de servicios, incluidas las limitaciones.

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

  • Decide si deseas configurar un nombre de dominio para el servicio, lo que automatiza la configuración de DNS para los extremos de los consumidores de servicios. Si configuras un nombre de dominio, el mismo principal de IAM que publica el servicio debe verificar que tiene permisos de propietario para el dominio en Google Search Console. Si configuras un nombre de dominio, pero no eres propietario del dominio, la publicación del servicio falla. Para verificar la propiedad, ve a Google Search Console.

    El nombre de dominio que especificas en el adjunto de servicio puede ser un subdominio del dominio que verificas. Por ejemplo, puedes registrar example.com y, luego, crear un adjunto de servicio con un nombre de dominio de us-west1.p.example.com.

Crea un balanceador de cargas compatible

Para alojar el servicio, crea uno de los siguientes balanceadores de cargas en una red de VPC de un 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 a los consumidores que pueden conectarse a tu servicio publicado. Para obtener más información, consulta Traducción de versiones de IP.

En el caso de los balanceadores de cargas de red de proxy interno regional, los backends pueden estar ubicados en Google Cloud, en otras nubes, en un entorno local o 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. Debes crear la subred en la misma región que el balanceador de cargas del servicio.

Si usas la consola de Google Cloud para publicar un servicio, puedes crear las subredes durante ese procedimiento.

Puedes crear una subred de Private Service Connect en un proyecto host de VPC compartida.

No puedes convertir una subred normal en una subred de Private Service Connect.

Si deseas publicar un servicio que entregue tráfico IPv6, debes usar una subred de pila doble que tenga un rango de direcciones IPv6 internas.

Si necesitas que más direcciones IP estén disponibles para un servicio existente, consulta Agrega o quita subredes de un servicio publicado.

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

  4. 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. Selecciona un tipo de pila de IP.
    5. Ingresa un rango IPv4. Por ejemplo, 10.10.10.0/24
    6. Si creas una subred de doble pila, establece el tipo de acceso IPv6 en Interno.
    7. Haz clic en Agregar.

gcloud

  • Para crear una subred de Private Service Connect solo IPv4, haz lo siguiente:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • Para crear una subred de Private Service Connect de pila doble, haz lo siguiente:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --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: Es el rango de direcciones IPv4 que se usará para la subred, por ejemplo, 10.10.10.0/24.

API

  • Para crear una subred de Private Service Connect solo IPv4, haz lo siguiente:

    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",
    }
    
  • Para crear una subred de Private Service Connect de pila doble, haz lo siguiente:

    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": "IPV4_IPV6",
      "ipv6AccessType": "INTERNAL"
    }
    

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.

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 Información de conexión del consumidor.

Puedes asociar subredes de pila única y de pila doble con el mismo adjunto de servicio. Si tu balanceador de cargas está configurado para el tráfico IPv6, debes usar subredes de pila doble.

Cuando publicas un servicio con aprobación automática, el límite de conexiones propagadas se aplica a cada proyecto de consumidor que se conecta a tu adjunto de servicio.

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

  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.

    Si deseas agregar una subred nueva, puedes crear una:

    1. Haz clic en Reservar subred nueva.
    2. Ingresa un Nombre y una Descripción opcional para la subred.
    3. Selecciona una Región para la subred.
    4. Selecciona un tipo de pila de IP.
    5. Ingresa el Rango IPv4 que se usará en la subred y haz clic en Agregar.
  9. Si deseas ver la información de conexión del consumidor, selecciona Usar protocolo de proxy.

  10. Selecciona Aceptar automáticamente todas las conexiones.

  11. Si deseas inhabilitar la conciliación de conexiones, borra la casilla de verificación Habilitar la conciliación de conexiones.

  12. Opcional: Haz clic en Configuración avanzada y, luego, haz lo siguiente:

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

    2. Ingresa un límite de conexiones propagadas de NCC. Si no se especifica, el valor predeterminado es 250.

  13. 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 \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --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.

  • PROPAGATED_CONNECTION_LIMIT: Es el límite de conexiones propagadas por proyecto. El valor predeterminado es 250.

  • 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"
  ],
  "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
  "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.

  • PROPAGATED_CONNECTION_LIMIT: Es el límite de conexiones propagadas por proyecto. El valor predeterminado es 250.

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

Si tus listas de aceptación y rechazo del consumidor hacen referencia a proyectos, el límite de conexiones propagado se aplica a los proyectos de consumidor. Si tus listas de aceptación y rechazo de consumidores hacen referencia a redes de VPC, el límite de conexión propagada se aplica a las redes de VPC 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 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.

  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.

    Si deseas agregar una subred nueva, puedes crear una:

    1. Haz clic en Reservar subred nueva.
    2. Ingresa un Nombre y una Descripción opcional para la subred.
    3. Selecciona una Región para la subred.
    4. Selecciona un tipo de pila de IP.
    5. Ingresa el Rango IPv4 que se usará en la subred y haz clic en Agregar.
  9. Si deseas ver la información de conexión del consumidor, selecciona Usar protocolo de proxy.

  10. 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.
  11. 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.
  12. Si deseas inhabilitar la conciliación de conexiones, borra la casilla de verificación Habilitar la conciliación de conexiones.

  13. Opcional: Haz clic en Configuración avanzada y, luego, haz lo siguiente:

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

    2. Ingresa un límite de conexiones propagadas de NCC. Si no se especifica, el valor predeterminado es 250.

  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 \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --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.

  • PROPAGATED_CONNECTION_LIMIT: el límite de conexiones propagadas. El valor predeterminado es 250.

  • 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"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "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"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "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.
    • 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 con la conciliación de conexiones 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 con 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

  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 podría borrar y volver a crear los adjuntos de servicio sin querer, y cerrar las conexiones de Private Service Connect existentes. Los adjuntos de servicio recreados no restablecen automáticamente las conexiones de Private Service Connect.

Si actualizas a la versión 4.82.0 y, luego, ejecutas terraform apply, no se borrarán los archivos adjuntos de tu servicio, pero el parámetro de configuración reconcile connections se establecerá como verdadero. Si el parámetro de configuración se estableció como falso anteriormente, es posible que se cierren algunas conexiones de Private Service Connect.

  • Actualizar a las versiones 4.76.0 a 4.81.x del proveedor de Google En esta situación, 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.

  • Actualización 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 actualizará el archivo adjunto del servicio para activar la conciliación de conexiones. Según el estado de su conexión, cambiar de false a true podría 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 que actualices el Proveedor de Google para Terraform a la versión 4.82.0 o una posterior. Esta versión evita la eliminación y recreación no intencionales de los archivos adjuntos del servicio.

Si no puedes actualizar de inmediato o si puedes hacerlo, pero también quieres evitar que Terraform cambie la configuración de conciliación de conexiones, actualiza la configuración de Terraform para establecer de forma explícita la configuración de conciliación de conexiones.

  1. Consulta la configuración detallada del archivo adjunto de servicio y anota la configuración de 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 el mismo parámetro de configuración que se usa en el archivo adjunto del servicio.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Para ver un ejemplo de configuración, consulta Cómo reconciliar las conexiones de los archivos adjuntos de servicios en GitHub.

Actualizaciones de parches para archivos adjuntos de servicios

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 al archivo adjunto del servicio, pero no se estableció la conectividad, verifica el estado de conexión del archivo adjunto del 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.

No se establecen las conexiones propagadas

Para obtener información sobre la solución de problemas de conexiones propagadas, consulta Soluciona problemas de Network Connectivity Center.