Crea un adjunto de extremo

Si quieres configurar la conectividad privada para Integration Connectors, debes crear un adjunto de PSC (Private Service Connect). Sin embargo, para usar el adjunto de PSC, también debes crear un adjunto de extremo, ya que no puedes usarlo directamente. Puedes pensar en el adjunto de extremo como una interfaz para el adjunto de servicio de PSC. Una vez creado, puedes usar los detalles del adjunto de extremo cuando configuras un conector para la conectividad privada. En esta página, se explica cómo crear un adjunto de extremo y se supone que estás familiarizado con los siguientes conceptos:

Puedes crear el adjunto de extremo como una dirección IP o como nombre de host.

Crea un adjunto de extremo como una dirección IP

Para crear un adjunto de extremo como una dirección IP, puedes usar la consola de Cloud o la línea de comandos (gcloud).

Console

Para crear un adjunto de extremo desde la consola de Cloud, haz lo siguiente:

  1. Abre la página Adjuntos de extremos de Integration Connectors.

    Ir a Archivos adjuntos de extremos

  2. Haz clic en + Crear. Se abrirá la página Crear adjunto de extremo.
  3. Ingresa valores para los siguientes campos:
    • Nombre: Un nombre para el adjunto del extremo. El nombre debe ser único. No puede haber otros adjuntos de extremo con el mismo nombre y no puedes cambiar el nombre más adelante. El nombre debe comenzar con una letra minúscula seguida por un máximo de 63 letras minúsculas, números o guiones, pero no puede terminar con un guion. La longitud mínima es de 2.
    • ID de adjunto de servicio: Nombre del adjunto de servicio de PSC que ya creaste.
    • (Opcional) Descripción: Ingresa una descripción para el adjunto del extremo.
    • (Opcional) Etiquetas: Ingresa las etiquetas de recursos como pares clave-valor. Para obtener más información sobre las etiquetas, consulta ¿Qué son las etiquetas?
    • (Opcional) Habilitar el acceso global al extremo: Selecciona esta opción si deseas enviar tráfico a tu backend desde una conexión presente en cualquier región.

      De forma predeterminada, el adjunto de extremo requiere que la conexión y el backend estén en la misma región. Por lo tanto, si habilitas el acceso global para el extremo, una conexión presente en cualquier región puede enviar tráfico a tu backend.

  4. Haz clic en Crear.

La columna Dirección IP especifica la dirección IP del adjunto de extremo. Debes usar esta dirección IP cuando configures un conector para conectividad privada.

gcloud

Para crear un adjunto de extremo desde la línea de comandos, haz lo siguiente:

  1. Obtén el recurso de adjunto de servicio de PSC:
    gcloud compute service-attachments list

    El comando muestra la lista de adjuntos de servicio. Por ejemplo:

    NAME       REGION   TARGET_SERVICE                                       CONNECTION_PREFERENCE
    demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC

    Necesitarás esta información sobre el adjunto de servicio en los pasos posteriores.

  2. Obtén un token de autenticación antes de ejecutar la API de CreateEndpointAttachment:
    TOKEN="$(gcloud auth print-access-token)"
  3. Crea el adjunto de extremo mediante la API de CreateEndpointAttachment. Por ejemplo:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
        "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME",
        "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME"
      }' \
         https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAME
    

    Aquí:

    • LOCATION es la región del adjunto del servicio. Por ejemplo, us-west1
    • PROJECT_ID es el proyecto de Google Cloud en el que creaste el adjunto de servicio de PSC.
    • ENDPOINT_ATTACHMENT_NAME es el nombre del adjunto del extremo. El nombre debe ser único. No puede haber otros adjuntos de extremo con el mismo nombre y no podrás cambiar el nombre más adelante. El nombre debe comenzar con una letra minúscula seguida por un máximo de 31 letras minúsculas, números o guiones, pero no puede terminar con un guion. La longitud mínima es de 2.
    • SERVICE_ATTACHMENT_NAME es el nombre del adjunto del servicio. Usa el nombre de cuenta de servicio de PSC que muestra el comando gcloud compute service-attachments list ejecutado con anterioridad.

    Después de llamar a la API, Integration Connectors inicia una operación de larga duración, por lo que puede tardar un tiempo en completarse. El adjunto de extremo se creará una vez que se complete la operación de forma correcta.

  4. Obtén el ID del proyecto del directorio de servicios asociado con tu proyecto de Google Cloud y, luego, incluye ese ID del proyecto en la lista de entidades permitidas de tu adjunto de servicio.
  5. Verifica si el adjunto de extremo se creó con la API de GetEndpointAttachment. Por ejemplo:
    curl -X GET -H "Authorization: Bearer $TOKEN" \
      https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAME
    
    .

    La API muestra una respuesta similar a la que se ve a continuación:

    {
      "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea",
      "createTime": "2023-04-17T04:34:59.569527046Z",
      "updateTime": "2023-04-17T04:37:25.189074195Z",
      "description": "demo endpoint attachment",
      "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa",
      "endpointIp": "10.0.0.0",
      "labels": {"team":"sre"},
    }

    La dirección IP del adjunto de extremo está disponible en el campo endpointIp. En esta respuesta de muestra, la dirección IP es 10.0.0.0. Usa esta dirección IP cuando configures un conector para conectividad privada.

Si se crea correctamente el adjunto de extremo, el adjunto recién creado aparecerá en la página Archivos adjuntos de extremo, similar a la siguiente imagen:

adjunto-de-extremo adjunto-de-extremo

Los pasos, descritos hasta ahora, muestran cómo crear un adjunto de extremo como una dirección IP. Sin embargo, también puedes crear un adjunto de extremo como nombre de host y usar el nombre de host para configurar un conector para la conectividad privada. Para comprender cómo crear un adjunto de extremo con un nombre de host, consulta Crea un adjunto de extremo como nombre de host.

Crea un adjunto de extremo como nombre de host

Para crear un adjunto de extremo como nombre de host, realiza las siguientes tareas:

  1. Crea un adjunto de extremo como una dirección IP. Para obtener más información, consulta Crea un adjunto de extremo como una dirección IP.
  2. Crea una zona administrada privada de Cloud DNS en cualquiera de tus proyectos de Google Cloud.

    En esta zona del DNS, debes agregar un nombre de host que quieras usar para la configuración del conector y asignarlo a la dirección IP del adjunto de extremo que obtuviste en el paso 1. Para obtener información sobre cómo crear una zona administrada privada de Cloud DNS, consulta Crea una zona privada y Agrega un registro.

  3. Crea una zona administrada de Integration Connectors en tu proyecto de Google Cloud que uses para Integration Connectors. La zona administrada de Integration Connectors (zona de intercambio de tráfico) se comunica con la zona administrada privada de Cloud DNS (creada en el paso 2) para la resolución de nombres.

    Antes de crear la zona administrada, debes otorgar los siguientes roles y permisos:

    • Otorga el permiso connectors.managedZones.create al usuario que crea la zona administrada de Integration Connectors.

      El permiso connectors.managedZones.create está disponible en el rol de IAM roles/connectors.admin o el rol de IAM roles/connectors.managedZonesAdmin. Si deseas obtener información sobre los diversos roles de IAM y sus permisos correspondientes disponibles para Integration Connectors, consulta Roles y permisos de IAM para Integration Connectors.

    • Otorga el rol role/dns.peer a la cuenta de servicio service-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com de Integration Connectors.

      Si el proyecto de Google Cloud de Cloud DNS es diferente del proyecto de Integration Connectors de Google Cloud, otorga el rol de roles/dns.peer a la cuenta de servicio de Integration Connectors en el proyecto de Google Cloud de Cloud DNS. Por ejemplo, imagina que deseas crear la zona administrada de Integration Connectors en el proyecto 12345 de Google Cloud y el Cloud DNS está en el proyecto 67890 de Google Cloud. En este caso, debes otorgar el rol roles/dns.peer a la cuenta de servicio service-12345@gcp-sa-connectors.iam.gserviceaccount.com en el proyecto 67890 de Google Cloud.

    Para crear una zona administrada de Integration Connectors, puedes usar la consola de Cloud o la línea de comandos (gcloud).

    Console

    Para crear una zona administrada de Integration Connectors desde la consola de Cloud, haz lo siguiente:

    1. Ve a la página Zonas administradas para Integration Connectors.

      Ir a Zonas administradas

    2. Ingresa valores para los siguientes campos:
      1. Nombre: Un nombre para la zona administrada.
      2. Nombre de DNS de destino: Es el nombre completo de Cloud DNS para el que crearás la zona administrada (intercambio de tráfico). Por ejemplo, server8.stage.user.private
      3. Proyecto de destino: Nombre del proyecto de Google Cloud que tiene la zona privada de Cloud DNS.
      4. Red de destino: Nombre de la red de VPC en la que se mantiene la zona privada de Cloud DNS.
      5. (Opcional) Descripción: Ingresa una descripción para el adjunto del extremo.
      6. (Opcional) Etiquetas: Ingresa las etiquetas de recursos como pares clave-valor. Para obtener más información sobre las etiquetas, consulta ¿Qué son las etiquetas?
    3. Haz clic en Crear.

    gcloud

    Para crear una zona administrada de Integration Connectors desde la línea de comandos, haz lo siguiente:

    1. Obtén un token de autenticación antes de ejecutar la API de CreateManagedZone:
      TOKEN="$(gcloud auth print-access-token)"
    2. Crea la zona administrada con la API de CreateManagedZone. Por ejemplo:
      curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "description": "DESCRIPTION",
        "dns": "DNS_NAME",
        "target_project": "TARGET_PROJECT",
        "target_vpc": "TARGET_VPC"
      }' \
      https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAME
      

      Aquí:

      • DESCRIPTION es una descripción opcional de la zona administrada.
      • DNS_NAME: Es el nombre completo de Cloud DNS para el que crearás la zona administrada (intercambio de tráfico). Por ejemplo, server8.stage.user.private
      • TARGET_PROJECT es el nombre del proyecto de Google Cloud que tiene la zona privada de Cloud DNS.
      • TARGET_NETWORK es el nombre de la red de VPC en la que se mantiene la zona privada de Cloud DNS.
      • PROJECT_ID es el proyecto de Google Cloud que usas para Integration Connectors.
      • MANAGED_ZONE_NAME es el nombre de la zona administrada. El nombre debe ser único. No puede haber otras zonas administradas con el mismo nombre, y no podrás cambiar el nombre más adelante. El nombre debe comenzar con una letra minúscula seguida por un máximo de 63 letras minúsculas, números o guiones, pero no puede terminar con un guion. La longitud mínima es de 2.

      Después de llamar a la API, Integration Connectors inicia una operación de larga duración, por lo que puede tardar un tiempo en completarse. La zona administrada se creará después de que se complete la operación de forma correcta.

    3. Verifica si la zona administrada se creó con la API de GetManagedZone. Por ejemplo:
      curl -X GET -H "Authorization: Bearer $TOKEN" \
        https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAME
      
      .

      La API muestra una respuesta similar a la que se ve a continuación:

      {
        "name": "projects/demo-project/locations/global/managedZones/demo-mz",
        "createTime": "2023-04-17T04:34:59.569527046Z",
        "updateTime": "2023-04-17T04:37:25.189074195Z",
        "description": "demo managed zone",
        "dns": "api.private.service.com.",
        "targetVpc": "target-project-vpc",
        "targetProject": "target-project"
      }

Si la creación de la zona administrada se realiza de forma correcta, la zona administrada recién creada aparecerá en la página Zonas administradas, similar a la siguiente imagen:

zona administrada zona administrada

Verifica la configuración del adjunto de extremo

Puedes verificar la conectividad del extremo creando una conexión a tu sistema de backend. Cuando crees la conexión, en la sección Destinations, selecciona Destination type como Hostname y, luego, ingresa el nombre de host o la dirección IP del extremo adecuado. Si la conexión se crea correctamente, su estado será Active en la página Conexiones de la consola de Cloud.