> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GCP Private Service Connect para ClickPipes

> Establece una conexión segura entre ClickPipes y una fuente de datos alojada en GCP mediante Private Service Connect (PSC).

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

Puede usar [Private Service Connect (PSC)](https://cloud.google.com/vpc/docs/private-service-connect) 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.

<Check>
  ClickPipes admite conectividad PSC **entre regiones** mediante [acceso global](https://docs.cloud.google.com/vpc/docs/about-accessing-vpc-hosted-services-endpoints#global-access). El acceso global es obligatorio para los endpoints ubicados en una región distinta de aquella donde se ejecuta la infraestructura de ClickPipes. Consulte la [documentación sobre las regiones de GCP de ClickPipes](/es/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips) para obtener más información.
</Check>

<div id="supported-patterns">
  ## Patrones compatibles
</div>

| 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ú.                                |

<div id="prerequisites">
  ## Requisitos previos
</div>

* 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](/es/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips)).

- 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.

<div id="create-rpe">
  ## Cree el endpoint privado inverso
</div>

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.

<Tabs>
  <Tab title="UI de ClickPipes">
    1. En ClickHouse Cloud, abra su servicio y vaya a **Fuentes de datos** > **ClickPipes**.
    2. Seleccione la fuente de datos desde la que desea ingerir datos.
    3. 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**.
    4. Rellene la **URI del adjunto de servicio**, el **Nombre de DNS privado** y una **Descripción**.
    5. Haga clic en **Crear**. El endpoint pasa por los estados `Provisioning` → `Ready`. (El PSC nativo acepta automáticamente, por lo que no verá `PendingAcceptance`.)
  </Tab>

  <Tab title="Terraform">
    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:

    ```hcl theme={null}
    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>" }
      ]
    }
    ```
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    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>" }
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="custom-private-dns-rules">
  ### Nombres de DNS privados personalizados
</div>

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](/es/integrations/clickpipes/networking/aws-privatelink#custom-private-dns): 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.

<div id="producer-owned">
  ## Aprobación de conexiones gestionadas por el productor
</div>

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:

```bash theme={null}
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`:

<Danger>
  `--consumer-accept-list` sobrescribe la lista de aceptación en lugar de añadir el nuevo proyecto consumidor. Si el adjunto de servicio ya acepta otros proyectos o endpoints, inclúyalos todos en el mismo comando; de lo contrario, los que omita perderán el acceso.
</Danger>

```bash theme={null}
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-connections
```

<Warning>
  No utilice aquí el `endpoint_id` de la respuesta de la API/Terraform de ClickPipes; ese valor es el *nombre* de la regla de reenvío, no el ID numérico que requiere GCP, por lo que no coincidirá con la lista de aceptación. Obtenga siempre el ID numérico del `endpointWithId` pendiente del adjunto de servicio.
</Warning>

<div id="managing-rpes">
  ## Administración de endpoints privados inversos
</div>

Puede administrar los endpoints privados inversos existentes en la configuración del servicio de ClickHouse Cloud:

1. 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](/es/integrations/clickpipes/programmatic-access/openapi) o [Terraform](/es/integrations/clickpipes/programmatic-access/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.

<div id="limitations">
  ## Limitaciones conocidas
</div>

* 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](https://clickhouse.com/support/program) para liberar la asignación existente.
