Configura Private Service Connect para que acceda a los servicios

Private Service Connect te permite conectarte a los productores de servicios mediante extremos con direcciones IP internas en la red de VPC.

En este documento, se explica cómo usar los extremos de Private Service Connect para conectarse a servicios compatibles en otra red de VPC. Puedes conectarte a tus propios servicios o a los que proporcionan otros productores de servicios. Consulta Servicios de publicación para obtener más información.

También puedes usar Private Service Connect para acceder a los servicios y a las API de Google.

Funciones

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

Tarea Funciones
Crear un extremo de Private Service Connect Administrador de red de Compute (roles/compute.networkAdmin)

Antes de comenzar

  • Debes habilitar la API de Compute Engine en tu proyecto.

  • Las reglas de firewall de salida deben permitir el tráfico a la dirección IP interna del extremo de Private Service Connect. La regla de firewall implícita de permiso de salida permite la salida a cualquier dirección IP de destino.

    Si creaste reglas de firewall de denegación de salida en la red de VPC o si creaste políticas de firewall jerárquicas que modifican el comportamiento de salida permitido, el acceso al extremo podría verse afectado. Crea una política o regla de firewall de permiso de salida específicas para permitir el tráfico al destino de la dirección IP interna del extremo del servicio.

  • Debes tener el URI del adjunto del servicio para el servicio. Por ejemplo, projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

Limitaciones

  • No se puede acceder a los extremos de Private Service Connect desde redes de VPC con intercambio de tráfico.

  • No puedes enviar solicitudes desde un entorno local conectado a una VPC mediante túneles de Cloud VPN o adjuntos de Cloud Interconnect (VLAN) a un extremo de Private Service Connect que se usa para acceder a los servicios en otra red de VPC.

  • Consulta la sección Problemas conocidos para revisar problemas y soluciones alternativas.

Crea un extremo de Private Service Connect

Un extremo de Private Service Connect se conecta a servicios de otra red de VPC mediante una regla de reenvío de Private Service Connect. Cada regla de reenvío se tiene en cuenta para la cuota por proyecto de las reglas de reenvío de Private Service Connect a fin de acceder a los servicios en otra red de VPC.

Cuando usas Private Service Connect para conectarte a servicios en otra red de VPC, debes elegir una dirección IP de una subred en tu red de VPC.

La dirección IP debe estar en la misma región que el adjunto de servicio del productor del servicio.

La dirección IP se considera dentro de la cuota del proyecto para las direcciones IP internas.

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Haz clic en Conectar extremo.

  4. En Destino, selecciona Servicio publicado.

  5. En Servicio de destino, ingresa el URI del adjunto de servicio al que deseas conectarte.

    El URI del adjunto de servicio tiene el siguiente formato: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. En Nombre del extremo, ingresa un nombre para usar en el extremo.

  7. Selecciona una red para el extremo.

  8. Selecciona una Subred para el extremo.

  9. Selecciona una dirección IP para el extremo. Si necesitas una dirección IP nueva, puedes crear una:

    1. Haz clic en el menú desplegable Dirección IP y selecciona Crear dirección IP.
    2. Ingresa un nombre y una descripción para la dirección IP.
    3. En Dirección IP estática, selecciona Asignar de forma automática o Permitirme elegir.

      Si seleccionaste Permitirme elegir, ingresa la dirección IP personalizada que deseas usar.

    4. Haga clic en Reservar.

  10. Haz clic en Agregar extremo.

gcloud

  1. Reserva una dirección IP interna para asignarla al extremo.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: nombre que se asignará a la dirección IP reservada.

    • REGION: Es la región de la dirección IP del extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.

    • SUBNET: Es el nombre de la subred para la dirección IP del extremo.

  2. Busca la dirección IP reservada.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. Crea una regla de reenvío para conectar el extremo al adjunto de servicio del productor de servicios.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=NETWORK_NAME \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT
    

    Reemplaza lo siguiente:

    • ENDPOINT_NAME: nombre que se asignará al extremo.

    • REGION: Es la región para el extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.

    • NETWORK_NAME: nombre de la red de VPC para el extremo.

    • ADDRESS_NAME: Es el nombre de la dirección reservada.

    • SERVICE_ATTACHMENT: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

API

  1. Reserva una dirección IP interna para asignarla al extremo.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/addresses
    
    {
      "name": ADDRESS_NAME,
      "addressType": "INTERNAL",
      "subnetwork": SUBNET_URI
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto

    • ADDRESS_NAME: nombre que se asignará a la dirección IP reservada.

    • SUBNET_URI: la subred de la dirección IP. Usa el método subnetworks.list o gcloud compute networks subnets list --uri para encontrar las URL de tus redes.

  2. Crea una regla de reenvío para conectar el extremo a los servicios y las API de Google.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
    {
      "name": ENDPOINT_NAME,
      "IPAddress": ADDRESS_URI,
      "target": SERVICE_ATTACHMENT,
      "network": NETWORK_URI,
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto

    • REGION: Es la región para el extremo.

    • ENDPOINT_NAME: nombre que se asignará al extremo.

    • ADDRESS_URI: URI de la dirección reservada en la red asociada. Usa el método addresses.list o gcloud compute addresses list --uri para encontrar la URL de la dirección reservada.

    • SERVICE_ATTACHMENT: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • NETWORK_URI: red de VPC para el extremo. Usa el método network.list o gcloud compute networks list --uri para encontrar el URI de tu red.

Enumera extremos

Puedes enumerar todos los extremos configurados de Private Service Connect.

Console

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

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

    Se muestran los extremos de Private Service Connect.

gcloud

gcloud compute forwarding-rules list  \
    --filter 'target~serviceAttachments'

El resultado es similar al siguiente:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          REGION/serviceAttachments/SERVICE_NAME

API

Esta llamada a la API muestra todas las reglas de reenvío, no solo los extremos de Private Service Connect que se usan para acceder a los servicios.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules

Reemplaza lo siguiente:

  • PROJECT_ID: proyecto que contiene el extremo.
  • REGION: Es la región para el extremo.

Visualiza los detalles del extremo

Puedes ver todos los detalles de configuración de un extremo de Private Service Connect.

El extremo puede tener uno de los siguientes estados:

  • Pendiente: El extremo está configurado para conectarse a un servicio que requiere aprobación y aún no se ha aprobado a este proyecto.

  • Aceptado: El extremo se encuentra en un proyecto que está aprobado para conectarse al servicio.

  • Rechazado: El extremo está en un proyecto que no tiene permiso para conectarse al servicio.

  • Cerrado: El extremo está conectado a un adjunto de servicio que se borró.

Console

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

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Haz clic en el servicio que deseas ver.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --region=REGION

Reemplaza lo siguiente:

  • ENDPOINT_NAME: El nombre del extremo.
  • REGION: Es la región para el extremo.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: proyecto que contiene el extremo.
  • REGION: Es la región para el extremo.
  • ENDPOINT_NAME: El nombre del extremo.

Etiqueta un extremo

Puedes administrar etiquetas para los extremos de Private Service Connect. Consulta cómo etiquetar recursos para obtener más información.

Borra un extremo

Puedes borrar un extremo de Private Service Connect.

Console

  1. En Google Cloud Console, ve a Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Selecciona el extremo de Private Service Connect que deseas borrar y haz clic en Borrar.

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --region=REGION

Reemplaza lo siguiente:

  • ENDPOINT_NAME: El nombre del extremo.
  • REGION: Es la región para el extremo.

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: proyecto que contiene el extremo.
  • REGION: Es la región para el extremo.
  • ENDPOINT_NAME: El nombre del extremo.

Logging

Puedes habilitar los registros de flujo de VPC en las subredes que contengan VM que accedan a servicios en otra red de VPC mediante extremos de Private Service Connect. Los registros muestran los flujos entre las VM y el extremo de Private Service Connect.

Problemas conocidos

  • Si creas más extremos de Private Service Connect de los que permite el productor del servicio, todos los extremos creados después de alcanzar el límite tendrán el estado Pendiente, como se espera. Sin embargo, si quitas los extremos de Private Service Connect para estar por debajo del límite, el estado de esos extremos no cambia a Aceptado.

    Comunícate con el productor de servicios para averiguar cuál es el límite de tu proyecto y evitar excederlo. Si excedes el límite, comunícate con el productor del servicio y pídele que actualice el adjunto de servicio para volver a configurarlo. Se puede aplicar el mismo límite.

  • Los cambios en el estado del extremo de Private Service Connect no se registran en Cloud Logging.