> ## 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 pour ClickPipes

> Établissez une connexion sécurisée entre ClickPipes et une source de données hébergée sur GCP à l’aide de 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>;
};

Vous pouvez utiliser GCP [Private Service Connect (PSC)](https://cloud.google.com/vpc/docs/private-service-connect) pour établir une connexion sécurisée entre ClickPipes et une source de données hébergée sur GCP. ClickPipes crée un **point de terminaison privé inversé (RPE)** dans son VPC et le configure pour cibler un endpoint service privé publié pour votre source de données, afin que le trafic ne soit jamais exposé à Internet.

<Check>
  ClickPipes prend en charge la connectivité PSC **interrégionale** via [l’accès global](https://docs.cloud.google.com/vpc/docs/about-accessing-vpc-hosted-services-endpoints#global-access). L’accès global est requis pour les endpoints situés dans une région différente de celle où s’exécute l’infrastructure ClickPipes. Consultez la [documentation sur les régions GCP de ClickPipes](/fr/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips) pour plus de détails.
</Check>

<div id="supported-patterns">
  ## Modèles pris en charge
</div>

| Modèle                           | Applicable lorsque                                                                                                                                                    | Attachement de service                                        |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| **PSC natif**                    | Services managés qui publient automatiquement un attachement de service PSC (*p. ex.* Google Cloud SQL, AlloyDB, Google Cloud Managed Service for Apache Kafka).      | Créé automatiquement lorsque vous activez PSC sur l'instance. |
| **PSC détenu par le producteur** | Sources de données qui ne publient pas d’attachement de service, telles que Postgres sur Compute Engine ou un service managé accessible uniquement via une IP privée. | Créé et géré par vous.                                        |

<div id="prerequisites">
  ## Prérequis
</div>

* Un service ClickHouse Cloud hébergé sur GCP. ClickPipes s’exécute dans la même région que votre service ClickHouse Cloud (à [quelques exceptions près](/fr/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips)).

- Les droits IAM nécessaires pour activer PSC sur votre source et gérer les attachements de service PSC (`roles/compute.networkAdmin`).

* Le **projet consommateur de ClickPipes** autorisé à se connecter à votre attachement de service (`clickpipes-production`).
* Si vous provisionnez ClickPipes par programmation : une clé API ClickHouse Cloud pour l’organisation propriétaire du service.

<div id="create-rpe">
  ## Créer le point de terminaison privé inversé
</div>

Pour créer un RPE, vous avez besoin des informations suivantes concernant votre source de données :

* **URI de l'attachement de service** : `projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>`, le
  point de terminaison PSC exposé devant votre source de données.
* **Nom DNS privé** : le nom d'hôte auquel votre pipe se connecte. Un point de terminaison PSC reçoit une adresse IP interne statique
  sans nom DNS associé. ClickPipes résout donc ce nom d'hôte vers cette adresse IP pour vous.

<Tabs>
  <Tab title="Interface utilisateur ClickPipes">
    1. Dans ClickHouse Cloud, ouvrez votre service, puis accédez à **Sources de données** > **ClickPipes**.
    2. Sélectionnez la source de données à partir de laquelle vous souhaitez ingérer des données.
    3. Sous **Configurez votre connexion ClickPipe**, activez **Utiliser une connexion sécurisée**, puis cliquez sur **+ Point de terminaison privé inversé** et choisissez **Attachement de service GCP PSC**.
    4. Renseignez l'**URI de l'attachement de service**, le **nom DNS privé** et une **description**.
    5. Cliquez sur **Créer**. Le point de terminaison passe de `Provisioning` à `Ready`. (Le PSC natif accepte automatiquement la connexion ; vous ne verrez donc pas `PendingAcceptance`.)
  </Tab>

  <Tab title="Terraform">
    Les mappages DNS privé personnalisés ne constituent pas un attribut de `clickhouse_clickpipes_reverse_private_endpoint` : ils sont gérés par la ressource distincte `clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns`, qui accepte une liste complète de mappages de remplacement et référence le point de terminaison par son 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">
  ### Noms DNS privés personnalisés
</div>

Comme GCP PSC ne propage pas les DNS, un mappage DNS privé personnalisé est requis pour chaque point de terminaison GCP PSC afin que ClickPipes puisse le résoudre vers l’adresse IP interne statique du point de terminaison.

Les [règles standard de nommage DNS privé personnalisé](/fr/integrations/clickpipes/networking/aws-privatelink#custom-private-dns) de ClickPipes s’appliquent : la prise en charge des caractères génériques, l’unicité entre les points de terminaison privés inversés d’un service et les restrictions sur les suffixes réservés sont appliquées de manière identique, quel que soit le fournisseur. Les caractères génériques sont particulièrement utiles, *p. ex.* un seul mappage tel que `*.<cluster>.<region>.managedkafka.<project>.cloud.goog` couvre tous les brokers d’un cluster Kafka Managed.

Pour GCP PSC, seul le champ `privateDnsName` du mappage est utilisé. Le champ `internalDNSName` n’est pas pris en charge, car un point de terminaison PSC expose une adresse IP statique sans nom DNS auquel l’associer : les mappages sont toujours résolus vers cette adresse IP.

<div id="producer-owned">
  ## Approbation des connexions PSC détenues par le producteur
</div>

Pour un PSC détenu par le producteur, ajoutez le projet consommateur de ClickPipes (`clickpipes-production`) à la liste d’acceptation automatique de l’attachement de service afin que la connexion soit acceptée automatiquement. Sinon, le RPE reste à l’état `PendingAcceptance` jusqu’à ce que vous l’approuviez manuellement.

Pour accepter la connexion, la liste des consommateurs autorisés de l’attachement de service doit contenir l’URI du point de terminaison basé sur son ID numérique (`projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>`). Pour obtenir la valeur `endpointWithId` de la connexion en attente sur l’attachement de service, exécutez :

```bash theme={null}
gcloud beta compute service-attachments describe <SERVICE_ATTACHMENT_NAME> \
  --region=<REGION> --project=<YOUR_PROJECT_ID> \
  --format='json(connectedEndpoints)'
```

Prenez l’`endpointWithId` de l’entrée dont le `status` est `PENDING`, supprimez le préfixe `https://www.googleapis.com/compute/beta/` et transmettez le résultat à `--consumer-accept-list` :

<Danger>
  `--consumer-accept-list` remplace la liste d’acceptation au lieu d’y ajouter le nouveau projet consommateur. Si l’attachement de service accepte déjà d’autres projets ou points de terminaison, transmettez-les tous dans la même commande, faute de quoi ceux que vous omettez perdront l’accès.
</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>
  N'utilisez pas ici l'`endpoint_id` de la réponse de l'API ClickPipes/Terraform : cette valeur correspond au *nom* de la règle de transfert, et non à l'ID numérique requis par GCP ; la liste d'acceptation ne correspondrait donc pas. Utilisez toujours l'ID numérique de l'`endpointWithId` en attente du rattachement de service.
</Warning>

<div id="managing-rpes">
  ## Gestion des points de terminaison privés inversés
</div>

Vous pouvez gérer les points de terminaison privés inversés existants dans les paramètres du service ClickHouse Cloud :

1. Dans la barre latérale de la console ClickHouse Cloud, accédez à `Settings`.

Sous `ClickPipe reverse private endpoints`, cliquez sur `Reverse private endpoints`.

Des informations détaillées sur le point de terminaison privé inversé s’affichent dans le flyout. Depuis cette vue, vous pouvez supprimer des RPE : cliquez sur le `×` d’un endpoint et confirmez sa suppression. La suppression est **définitive** et interrompra tout ClickPipe utilisant actuellement cet endpoint.

Pour modifier les mappages DNS privé personnalisé d’un endpoint, utilisez la [Cloud API](/fr/integrations/clickpipes/programmatic-access/openapi) ou [Terraform](/fr/integrations/clickpipes/programmatic-access/terraform). La mise à jour remplace la liste complète des mappages au lieu d’y ajouter des éléments.

Si un endpoint affiche `Rejected` ou `Failed`, lisez le message sous son status : il permet de distinguer une connexion rejetée par le producteur d’une connexion fermée ou nécessitant une intervention. Dans les deux cas, cela signifie généralement que la liste d’acceptation de l’attachement de service n’inclut pas le projet consommateur de ClickPipes. Pour consulter le status signalé par GCP pour l’endpoint, décrivez les `connectedEndpoints` de l’attachement de service.

<div id="limitations">
  ## Limitations
</div>

* Un attachement de service PSC ne peut être revendiqué que par un seul service ClickHouse Cloud à la fois ; il ne peut pas être réutilisé par plusieurs services. Pour déplacer un attachement de service vers un autre service, [contactez le support ClickHouse](https://clickhouse.com/support/program) afin de libérer la revendication existante.
