Crea un adjunto de extremo

Para configurar la conectividad privada de 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 usar el adjunto de PSC directamente. Puedes considerar 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 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 un 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, sigue estos pasos:

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

    Ir a 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: Es 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 podrás cambiarlo 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 del adjunto de servicio: Es el nombre del adjunto de servicio de PSC que ya creaste.
    • Descripción (Description): Ingresa una descripción para el adjunto del extremo.
    • Etiquetas (Labels): Ingresa las etiquetas de recursos como pares clave-valor (opcional). Para obtener más información sobre las etiquetas, consulta ¿Qué son las etiquetas?
  4. Haz clic en Crear.

En la columna Dirección IP, se 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 del 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 de 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 con 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 extremos con el mismo nombre y no podrás cambiarlo 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 la cuenta de servicio de PSC que muestra el comando gcloud compute service-attachments list que se ejecutó antes.

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

  4. Obtén el ID del proyecto del directorio de servicios asociado con tu proyecto de Google Cloud y, luego, agrégalo a la lista de entidades permitidas de tu adjunto de servicio.
  5. Verifica si el adjunto del 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 la creación del adjunto de extremo se realiza correctamente, aparecerá en la página Archivos adjuntos de extremos, similar a la siguiente imagen:

adjunto-extremo adjunto-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 usarlo a fin de configurar un conector para conectividad privada. Para comprender cómo crear un adjunto de extremo con un nombre de host, consulta Crea un adjunto de extremo como un nombre de host.

Crea un adjunto de extremo como un nombre de host

Para crear un adjunto de extremo como un 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 asignar el nombre de host 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 el proyecto de Google Cloud que usarás 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 los roles de IAM roles/connectors.admin o roles/connectors.managedZonesAdmin. Si quieres obtener información sobre los distintos roles de IAM y los permisos correspondientes disponibles para Integration Connectors, consulta Roles de IAM y permisos 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 Google Cloud de Integration Connectors, otorga el rol roles/dns.peer a la cuenta de servicio de Integration Connectors en el proyecto de Google Cloud de Cloud DNS. Por ejemplo, considera que quieres crear la zona administrada de Integration Connectors en el proyecto 12345 de Google Cloud y 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 de zonas administradas para ver Integration Connectors.

      Ir a Zonas administradas

    2. Ingresa valores para los siguientes campos:
      1. Nombre: Es un nombre para la zona administrada.
      2. Nombre de DNS de destino: Es el nombre de Cloud DNS para el que creas la zona administrada (de intercambio de tráfico).
      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. Descripción (Description): Ingresa una descripción para el adjunto del extremo.
      6. Etiquetas (Labels): Ingresa las etiquetas de recursos como pares clave-valor (opcional). 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 para la zona administrada.
      • DNS_NAME es el nombre de Cloud DNS para el que creas la zona administrada (de intercambio de tráfico).
      • 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 cambiarlo más adelante. 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, que puede tardar un tiempo en completarse. La zona administrada se creará después de que la operación se complete 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 creó correctamente, aparecerá en la página Zonas administradas de manera similar a la siguiente imagen:

zona-administrada zona-administrada

Verifica la configuración del adjunto del extremo

Para verificar la conectividad del extremo, crea una conexión al sistema de backend. Cuando crees la conexión, en la sección Destinations, selecciona Destination type como Hostname y, luego, ingresa la dirección IP del extremo o el nombre de host adecuados. Si la conexión se crea correctamente, el estado de la conexión recién creada será Active en la página Conexiones de la consola de Cloud.