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:
- Nube privada virtual (VPC) de Google Cloud
- Private Service Connect
- Cloud DNS
- Conectores de Integration
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:
- Abre la página Adjuntos de extremos para Integration Connectors.
- Haz clic en + Crear. Se abrirá la página Crear adjunto de extremo.
- 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?
- 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:
- 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.
- Obtén un token de autenticación antes de ejecutar la API de CreateEndpointAttachment:
TOKEN="$(gcloud auth print-access-token)"
- 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.
- LOCATION es la región del adjunto del servicio. Por ejemplo,
- 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.
- 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 es10.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:
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:
- 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.
- 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.
- 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 IAMroles/connectors.admin
oroles/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 servicioservice-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 rolroles/dns.peer
a la cuenta de servicioservice-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:
- Ve a la página de zonas administradas para ver Integration Connectors.
- Ingresa valores para los siguientes campos:
- Nombre: Es un nombre para la zona administrada.
- Nombre de DNS de destino: Es el nombre de Cloud DNS para el que creas la zona administrada (de intercambio de tráfico).
- Proyecto de destino: Nombre del proyecto de Google Cloud que tiene la zona privada de Cloud DNS.
- Red de destino: Nombre de la red de VPC en la que se mantiene la zona privada de Cloud DNS.
- 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?
- Haz clic en Crear.
gcloud
Para crear una zona administrada de Integration Connectors desde la línea de comandos, haz lo siguiente:
- Obtén un token de autenticación antes de ejecutar la API de CreateManagedZone:
TOKEN="$(gcloud auth print-access-token)"
- 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.
- 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" }
- Otorga el permiso
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:
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.