Puede usar Private Service Connect (PSC) de GCP para establecer una conexión segura entre ClickPipes y una fuente de datos alojada en GCP. ClickPipes crea un endpoint privado inverso (RPE) en su VPC y lo vincula a un servicio de endpoint privado publicado para su fuente de datos, de modo que el tráfico nunca queda expuesto a Internet público.
Patrones compatibles
| Patrón | Cuándo se aplica | Adjunto de servicio |
|---|---|---|
| PSC nativo | Servicios administrados que publican automáticamente un adjunto de servicio de PSC (p. ej. Google Cloud SQL, AlloyDB, Google Cloud Managed Service for Apache Kafka). | Se crea automáticamente al habilitar PSC en la instancia. |
| PSC gestionado por el productor | Fuentes de datos que no publican un adjunto de servicio, como Postgres en Compute Engine o un servicio administrado accesible solo mediante una IP privada. | Lo creas y administras tú. |
Requisitos previos
- Un servicio de ClickHouse Cloud alojado en GCP. ClickPipes se ejecuta en la misma región que su servicio de ClickHouse Cloud (con algunas excepciones).
- Permisos de IAM para habilitar PSC en el origen y administrar los adjuntos de servicio de PSC (
roles/compute.networkAdmin).
- El proyecto consumidor de ClickPipes autorizado para conectarse a su adjunto de servicio (
clickpipes-production). - Si aprovisiona ClickPipes mediante programación: una clave API de ClickHouse Cloud para la organización propietaria del servicio.
Cree el endpoint privado inverso
Para crear un RPE, necesita la siguiente información sobre su fuente de datos:
- URI del adjunto de servicio:
projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>, el endpoint de PSC publicado delante de su fuente de datos. - Nombre de DNS privado: el nombre de host al que se conecta su pipe. Un endpoint de PSC recibe una IP interna estática sin un nombre de DNS asociado, por lo que ClickPipes resuelve este nombre de host a esa IP por usted.
- En ClickHouse Cloud, abra su servicio y vaya a Fuentes de datos > ClickPipes.
- Seleccione la fuente de datos desde la que desea ingerir datos.
- En Configure su conexión de ClickPipe, active Usar conexión segura y, a continuación, haga clic en + Endpoint privado inverso y seleccione Adjunto de servicio de GCP PSC.
- Rellene la URI del adjunto de servicio, el Nombre de DNS privado y una Descripción.
- Haga clic en Crear. El endpoint pasa por los estados
Provisioning→Ready. (El PSC nativo acepta automáticamente, por lo que no veráPendingAcceptance.)
Las asignaciones personalizadas de DNS privado no son un atributo de clickhouse_clickpipes_reverse_private_endpoint; se gestionan mediante el recurso independiente clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns, que recibe una lista completa de asignaciones de reemplazo y hace referencia al endpoint mediante su ID:
resource "clickhouse_clickpipes_reverse_private_endpoint" "gcp_psc" {
service_id = var.clickhouse_service_id
description = "GCP PSC endpoint"
type = "GCP_PSC_SERVICE_ATTACHMENT"
gcp_service_attachment = "projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>"
}
resource "clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns" "gcp_psc" {
service_id = var.clickhouse_service_id
reverse_private_endpoint_id = clickhouse_clickpipes_reverse_private_endpoint.gcp_psc.id
mapping = [
{ private_dns_name = "<PRIVATE_DNS_NAME>" }
]
}curl --silent --user $KEY_ID:$KEY_SECRET \
-X POST -H "Content-Type: application/json" \
https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickpipesReversePrivateEndpoints \
-d '{
"type": "GCP_PSC_SERVICE_ATTACHMENT",
"description": "GCP PSC endpoint",
"gcpServiceAttachment": "projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>",
"customPrivateDnsMappings": [
{ "privateDnsName": "<PRIVATE_DNS_NAME>" }
]
}'Nombres de DNS privados personalizados
Dado que GCP PSC no propaga DNS, se requiere una asignación personalizada de DNS privado para cada endpoint de GCP PSC para que ClickPipes pueda resolverlo a la IP interna estática del endpoint.
Se aplican las reglas estándar de ClickPipes para los nombres de DNS privados personalizados: la compatibilidad con comodines, la unicidad entre los endpoints privados inversos de un servicio y las restricciones sobre sufijos reservados se aplican de forma idéntica para todos los proveedores. Los comodines son especialmente útiles; p. ej., una única asignación, como *.<cluster>.<region>.managedkafka.<project>.cloud.goog, abarca todos los brokers de un clúster de Kafka Managed.
Para GCP PSC, solo se utiliza privateDnsName de la asignación. El campo internalDNSName no es compatible, ya que un endpoint de PSC expone una IP estática sin un nombre de DNS al que asociarse: las asignaciones siempre se resuelven a esa IP.
Aprobación de conexiones gestionadas por el productor
En el caso de PSC gestionado por el productor, agregue el proyecto consumidor de ClickPipes (clickpipes-production) a la lista de aceptación automática del adjunto de servicio para que la conexión se acepte automáticamente. Si omite este paso, el RPE permanecerá en PendingAcceptance hasta que lo apruebe manualmente.
Para aceptar la conexión, la lista de consumidores aceptados del adjunto de servicio debe incluir el URI del endpoint basado en su ID numérico (projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>). Para obtener el valor de endpointWithId de la conexión pendiente en el adjunto de servicio, ejecute:
gcloud beta compute service-attachments describe <SERVICE_ATTACHMENT_NAME> \
--region=<REGION> --project=<YOUR_PROJECT_ID> \
--format='json(connectedEndpoints)'Tome el endpointWithId de la entrada cuyo status sea PENDING, elimine el prefijo https://www.googleapis.com/compute/beta/ y pase el resultado a --consumer-accept-list:
gcloud beta compute service-attachments update <SERVICE_ATTACHMENT_NAME> \
--region=<REGION> --project=<YOUR_PROJECT_ID> \
--consumer-accept-list=projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID> \
--reconcile-connectionsAdministración de endpoints privados inversos
Puede administrar los endpoints privados inversos existentes en la configuración del servicio de ClickHouse Cloud:
- En la barra lateral de la consola de ClickHouse Cloud, vaya a
Settings.
En ClickPipe reverse private endpoints, haga clic en Reverse private endpoints.
La información detallada del endpoint privado inverso se muestra en el panel lateral. Desde esta vista, puede eliminar RPE: haga clic en × en un endpoint y confirme la eliminación. La eliminación es permanente e interrumpirá cualquier ClickPipe que esté usando ese endpoint.
Para cambiar las asignaciones personalizadas de DNS privado de un endpoint, use la Cloud API o Terraform. La actualización reemplaza la lista completa de asignaciones en lugar de añadir elementos a ella.
Si un endpoint muestra Rejected o Failed, lea el mensaje que aparece bajo su estado: distingue entre una conexión rechazada por el productor y otra que se cerró o requiere atención. Ambos casos suelen indicar que la lista de aceptación del service attachment no incluye el proyecto consumidor de ClickPipes. Para ver el estado que GCP informa para el endpoint, describa los connectedEndpoints del service attachment.
Limitaciones conocidas
- Un adjunto de servicio de PSC solo puede asignarse a un servicio de ClickHouse Cloud a la vez; no se puede reutilizar en varios servicios. Para mover un adjunto de servicio a otro servicio, contacte con el soporte de ClickHouse para liberar la asignación existente.