Você pode usar o GCP Private Service Connect (PSC) para estabelecer uma conexão segura entre o ClickPipes e uma fonte de dados hospedada no GCP. O ClickPipes cria um endpoint privado reverso (RPE) na sua VPC e o aponta para um serviço de endpoint privado publicado para a sua fonte de dados, garantindo que o tráfego nunca seja exposto à internet pública.
Padrões compatíveis
| Padrão | Quando se aplica | Anexo de serviço |
|---|---|---|
| PSC nativo | Serviços gerenciados que publicam automaticamente um anexo de serviço PSC (por exemplo, Google Cloud SQL, AlloyDB, Google Cloud Managed Service for Apache Kafka). | Criado automaticamente quando você ativa o PSC na instância. |
| PSC controlado pelo produtor | Fontes de dados que não publicam um anexo de serviço, como o Postgres no Compute Engine ou um serviço gerenciado acessível apenas por IP privado. | Criado e gerenciado por você. |
Pré-requisitos
- Um serviço do ClickHouse Cloud hospedado no GCP. O ClickPipes é executado na mesma região que seu serviço do ClickHouse Cloud (com algumas exceções).
- Permissões do IAM para habilitar o PSC na sua origem e gerenciar anexos de serviço do PSC (
roles/compute.networkAdmin). - O projeto consumidor do ClickPipes autorizado a se conectar ao seu anexo de serviço (
clickpipes-production). - Se você estiver provisionando o ClickPipes programaticamente: uma chave de API do ClickHouse Cloud para a organização proprietária do serviço.
Crie o endpoint privado reverso
Para criar um RPE, você precisa das seguintes informações sobre sua fonte de dados:
- URI do anexo de serviço:
projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>, o endpoint PSC publicado em frente à sua fonte de dados. - Nome DNS privado: o hostname ao qual seu pipe se conecta. Um endpoint PSC recebe um IP interno estático sem um nome DNS associado. Por isso, o ClickPipes resolve esse hostname para esse IP.
- No ClickHouse Cloud, abra seu serviço e acesse Fontes de dados > ClickPipes.
- Selecione a fonte de dados da qual deseja fazer a ingestão.
- Em Configure sua conexão do ClickPipe, ative Usar conexão segura, clique em + Endpoint privado reverso e escolha Anexo de serviço do GCP PSC.
- Preencha o URI do anexo de serviço, o Nome DNS privado e uma Descrição.
- Clique em Criar. O endpoint passa pelos estados
Provisioning→Ready. (O PSC nativo aceita automaticamente, portanto, você não veráPendingAcceptance.)
Os mapeamentos personalizados de DNS privado não são um atributo de clickhouse_clickpipes_reverse_private_endpoint — eles são gerenciados pelo recurso separado clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns, que recebe uma lista completa de mapeamentos para substituição e referencia o endpoint pelo 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>" }
]
}'Nomes DNS privados personalizados
Como o GCP PSC não propaga DNS, um mapeamento personalizado de DNS privado é necessário para cada endpoint PSC do GCP para que o ClickPipes possa resolvê-lo para o IP interno estático do endpoint.
Aplicam-se as regras padrão de nomenclatura de DNS privado personalizado do ClickPipes: o suporte a curingas, a exclusividade entre os endpoints privados reversos de um serviço e as restrições a sufixos reservados são aplicados de forma idêntica por todos os provedores. Os curingas são especialmente úteis, por exemplo, um único mapeamento como *.<cluster>.<region>.managedkafka.<project>.cloud.goog abrange todos os brokers de um cluster Kafka gerenciado.
Para o GCP PSC, apenas o privateDnsName do mapeamento é usado. O campo internalDNSName não é compatível, pois um endpoint PSC expõe um IP estático sem nome DNS ao qual possa ser associado — os mapeamentos sempre são resolvidos para esse IP.
Aprovando conexões controladas pelo produtor
Para PSC controlado pelo produtor, adicione o projeto consumidor do ClickPipes (clickpipes-production) à lista de aceitação automática do anexo de serviço para que a conexão seja aceita automaticamente. Caso contrário, o RPE permanecerá em PendingAcceptance até que você o aprove manualmente.
Para aceitar a conexão, a lista de aceitação de consumidores do anexo de serviço precisa do URI do endpoint baseado em ID numérico (projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>). Para obter o valor de endpointWithId da conexão pendente no anexo de serviço, execute:
gcloud beta compute service-attachments describe <SERVICE_ATTACHMENT_NAME> \
--region=<REGION> --project=<YOUR_PROJECT_ID> \
--format='json(connectedEndpoints)'Use o endpointWithId da entrada cujo status é PENDING, remova o prefixo https://www.googleapis.com/compute/beta/ e passe o resultado para --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-connectionsGerenciando endpoints privados reversos
Você pode gerenciar endpoints privados reversos existentes nas configurações do serviço ClickHouse Cloud:
- Na barra lateral do console do ClickHouse Cloud, acesse
Settings.
Em ClickPipe reverse private endpoints, clique em Reverse private endpoints.
Informações detalhadas sobre o endpoint privado reverso são exibidas no flyout. Nessa visualização, é possível excluir RPEs: clique no × de um endpoint e confirme a exclusão. A exclusão é permanente e interromperá qualquer ClickPipe que esteja usando esse endpoint.
Para alterar os mapeamentos personalizados de DNS privado de um endpoint, use a Cloud API ou o Terraform. A atualização substitui a lista completa de mapeamentos, em vez de adicionar itens a ela.
Se um endpoint mostrar Rejected ou Failed, leia a mensagem exibida em seu status: ela diferencia uma conexão rejeitada pelo produtor de uma que foi fechada ou que requer atenção. Ambos geralmente indicam que a lista de aceitação do anexo de serviço não inclui o projeto consumidor do ClickPipes. Para ver o status informado pelo GCP para o endpoint, descreva os connectedEndpoints do anexo de serviço.
Limitações conhecidas
- Um anexo de serviço do PSC só pode ser associado a um serviço do ClickHouse Cloud por vez; ele não pode ser reutilizado em vários serviços. Para mover um anexo de serviço para outro serviço, entre em contato com o suporte do ClickHouse para liberar a associação existente.