Ce guide explique comment utiliser Azure Private Link pour assurer une connectivité privée via un réseau virtuel entre Azure (y compris les services détenus par les clients et les services de partenaires Microsoft) et ClickHouse Cloud. Azure Private Link simplifie l’architecture réseau et sécurise la connexion entre les endpoints dans Azure en évitant l’exposition des données à l’internet public.
Azure Private Link prend uniquement en charge les connexions initiées depuis votre VNet Azure vers ClickHouse Cloud. Il ne peut pas être utilisé pour des connexions initiées depuis ClickHouse Cloud vers des services dans votre VNet, comme une base de données privée.
Azure prend en charge la connectivité inter-région via Private Link. Cela vous permet d’établir des connexions entre des VNets situés dans différentes régions où vous avez déployé des services ClickHouse.
Des frais supplémentaires peuvent s’appliquer au trafic inter-région. Veuillez consulter la documentation Azure la plus récente.
Veuillez suivre les étapes suivantes pour activer Azure Private Link :
- Obtenez l’alias de connexion Azure pour Private Link
- Créez un Private Endpoint dans Azure
- Ajoutez le Private Endpoint Resource ID à votre organisation ClickHouse Cloud
- Ajoutez le Private Endpoint Resource ID à la liste d’autorisation de vos services
- Accédez à votre service ClickHouse Cloud à l’aide de Private Link
ClickHouse Cloud Azure PrivateLink est passé de l’utilisation de filtres resourceGUID à des filtres Resource ID. Vous pouvez toujours utiliser resourceGUID, car il est rétrocompatible, mais nous vous recommandons de passer aux filtres Resource ID. Pour migrer, créez simplement un nouvel endpoint à l’aide du Resource ID, associez-le au service, puis supprimez l’ancien endpoint basé sur resourceGUID.
ClickHouse essaie de regrouper vos services afin de réutiliser le même service Private Link publié dans la région Azure. Cependant, ce regroupement n’est pas garanti, en particulier si vos services sont répartis entre plusieurs organisations ClickHouse.
Si Private Link est déjà configuré pour d’autres services dans votre organisation ClickHouse, vous pouvez souvent ignorer la plupart des étapes grâce à ce regroupement et passer directement à l’étape finale : Ajouter le Resource ID du Private Endpoint à la liste d’autorisation de vos services.
Vous trouverez des exemples Terraform dans le dépôt du Terraform Provider de ClickHouse.
Obtenir l’alias de connexion Azure pour Private Link
Option 1 : console ClickHouse Cloud
Dans la console ClickHouse Cloud, ouvrez le service que vous souhaitez connecter via PrivateLink, puis ouvrez le menu Paramètres. Cliquez sur le bouton Configurer un Private Endpoint. Notez le Service name et le DNS name, qui seront utilisés pour configurer Private Link.
Notez le Service name et le DNS name : ils seront nécessaires aux étapes suivantes.
Avant de commencer, vous aurez besoin d’une clé API ClickHouse Cloud. Vous pouvez créer une nouvelle clé ou utiliser une clé existante.
Une fois votre clé API en main, définissez les variables d’environnement suivantes avant d’exécuter des commandes :
Récupérez votre INSTANCE_ID ClickHouse en filtrant par région, fournisseur de cloud et nom du service :
Récupérez votre alias de connexion Azure et votre nom d’hôte DNS privé pour Private Link :
Notez le endpointServiceId. Vous l’utiliserez à l’étape suivante.
Créer un Private Endpoint dans Azure
Cette section présente les éléments spécifiques à ClickHouse pour configurer ClickHouse via Azure Private Link. Les étapes propres à Azure sont fournies à titre de référence pour vous indiquer où chercher, mais elles peuvent évoluer au fil du temps sans préavis du fournisseur de cloud Azure. Veuillez adapter la configuration Azure à votre cas d’usage.Veuillez noter que ClickHouse n’est pas responsable de la configuration des Private Endpoints Azure et des enregistrements DNS requis.Pour tout problème lié aux tâches de configuration Azure, contactez directement le support Azure.
Dans cette section, nous allons créer un Private Endpoint dans Azure. Vous pouvez utiliser Azure Portal ou Terraform.
Option 1 : utiliser Azure Portal pour créer un Private Endpoint dans Azure
Dans Azure Portal, ouvrez Private Link Center → Private Endpoints.
Ouvrez la boîte de dialogue de création d’un Private Endpoint en cliquant sur le bouton Create.
Dans l’écran suivant, renseignez les options suivantes :
- Subscription / Resource Group : choisissez l’abonnement Azure et le groupe de ressources du Private Endpoint.
- Name : définissez un nom pour le Private Endpoint.
- Region : choisissez une région où se trouve le VNet déployé qui sera connecté à ClickHouse Cloud via Private Link.
Après avoir terminé les étapes ci-dessus, cliquez sur le bouton Next: Resource.
Sélectionnez l’option Connect to an Azure resource by resource ID or alias.
Pour Resource ID or alias, utilisez l’endpointServiceId obtenu à l’étape Obtain Azure connection alias for Private Link.
Cliquez sur le bouton Next: Virtual Network.
- Virtual network : choisissez le VNet que vous souhaitez connecter à ClickHouse Cloud à l’aide de Private Link
- Subnet : choisissez le sous-réseau dans lequel le Private Endpoint sera créé
Facultatif :
- Application security group : vous pouvez associer un ASG au Private Endpoint et l’utiliser dans les groupes de sécurité réseau pour filtrer le trafic réseau vers et depuis le Private Endpoint.
Cliquez sur le bouton Next: DNS.
Cliquez sur le bouton Next: Tags.
Vous pouvez éventuellement ajouter des tags à votre Private Endpoint.
Cliquez sur le bouton Next: Review + create.
Enfin, cliquez sur le bouton Create.
Le Connection status du Private Endpoint créé sera à l’état Pending. Il passera à l’état Approved une fois ce Private Endpoint ajouté à la liste d’autorisation du service.
Ouvrez la network interface associée au Private Endpoint et copiez l’adresse IPv4 privée (10.0.0.4 dans cet exemple) ; vous aurez besoin de cette information dans les étapes suivantes.
Utilisez le modèle ci-dessous avec Terraform pour créer un Private Endpoint :
Obtention du Private Endpoint Resource ID
Pour utiliser Private Link, vous devez ajouter le Resource ID de la connexion Private Endpoint à la liste d’autorisation de votre service.
Le Private Endpoint Resource ID est visible dans Azure Portal. Ouvrez le Private Endpoint créé à l’étape précédente, puis cliquez sur JSON View :
Dans properties, repérez le champ id et copiez cette valeur :
Méthode recommandée : utiliser le Resource ID
Méthode héritée : utiliser resourceGUID
Vous pouvez toujours utiliser resourceGuid pour assurer la compatibilité descendante. Repérez le champ resourceGuid et copiez cette valeur :
Configuration du DNS pour Private Link
Vous devrez créer une zone DNS privée (${location_code}.privatelink.azure.clickhouse.cloud) et la lier à votre VNet pour accéder aux ressources via Private Link.
Créer une zone DNS privée
Option 1 : Utilisation d’Azure Portal
Veuillez suivre ce guide pour créer une zone DNS privée Azure à l’aide d’Azure Portal.
Option 2 : Utilisation de Terraform
Utilisez le modèle Terraform suivant pour créer une zone DNS privée :
Créer un enregistrement DNS générique
Créez un enregistrement générique pointant vers votre Private Endpoint :
Option 1 : Utilisation d’Azure Portal
- Ouvrez le groupe de ressources
MyAzureResourceGroup et sélectionnez la zone privée ${region_code}.privatelink.azure.clickhouse.cloud.
- Sélectionnez + Record set.
- Pour Name, saisissez
*.
- Pour IP Address, saisissez l’adresse IP affichée pour le Private Endpoint.
- Sélectionnez OK.
Option 2 : Utilisation de Terraform
Utilisez le modèle Terraform suivant pour créer un enregistrement DNS générique :
Créer un lien de réseau virtuel
Pour lier la zone DNS privée à un réseau virtuel, vous devez créer un lien de réseau virtuel.
Option 1 : utiliser Azure Portal
Veuillez suivre ce guide pour lier le réseau virtuel à votre zone DNS privée.
Option 2 : utiliser Terraform
Il existe plusieurs façons de configurer le DNS. Configurez-le en fonction de votre cas d’usage.
Vous devez faire pointer le “DNS name”, obtenu à l’étape Obtain Azure connection alias for Private Link, vers l’adresse IP du Private Endpoint. Cela garantit que les services/composants au sein de votre VPC/réseau peuvent le résoudre correctement.
Vérifiez la configuration DNS
Le domaine xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud doit pointer vers l’adresse IP du Private Endpoint (10.0.0.4 dans cet exemple).
Ajouter le Private Endpoint Resource ID de votre organisation ClickHouse Cloud
Option 1 : console ClickHouse Cloud
Pour ajouter un endpoint à l’organisation, passez à l’étape Ajouter le Private Endpoint Resource ID à la liste d’autorisation de vos services. L’ajout du Private Endpoint Resource ID à la liste d’autorisation de vos services à l’aide de la console ClickHouse Cloud l’ajoute automatiquement à l’organisation.
Pour supprimer un endpoint, ouvrez Organization details -> Private Endpoints et cliquez sur le bouton Supprimer pour retirer l’endpoint.
Définissez les variables d’environnement suivantes avant d’exécuter toute commande :
Définissez la variable d’environnement ENDPOINT_ID à l’aide des informations de l’étape Obtaining the Private Endpoint Resource ID.
Exécutez la commande suivante pour ajouter le Private Endpoint :
Vous pouvez également exécuter la commande suivante pour supprimer un Private Endpoint :
Après avoir ajouté ou supprimé un Private Endpoint, exécutez la commande suivante pour l’appliquer à votre organisation :
Ajoutez le Private Endpoint Resource ID à la liste d’autorisation de vos services
Par défaut, un service ClickHouse Cloud n’est pas accessible via une connexion Private Link, même si cette connexion Private Link a été approuvée et établie. Vous devez ajouter explicitement le Private Endpoint Resource ID de chaque service devant être accessible via Private Link.
Option 1 : console ClickHouse Cloud
Dans la console ClickHouse Cloud, ouvrez le service auquel vous souhaitez vous connecter via PrivateLink, puis accédez à Settings. Saisissez le Resource ID obtenu à l’étape précédente.
Si vous souhaitez autoriser l’accès à partir d’une connexion PrivateLink existante, utilisez le menu déroulant de l’endpoint existant.
Définissez ces variables d’environnement avant d’exécuter toute commande :
Exécutez-la pour chaque service qui doit être accessible via Private Link.
Exécutez la commande suivante pour ajouter le Private Endpoint à la liste d’autorisation des services :
Vous pouvez également exécuter la commande suivante pour retirer un Private Endpoint de la liste d’autorisation du service :
Après avoir ajouté ou supprimé un Private Endpoint de la liste d’autorisation des services, exécutez la commande suivante pour l’appliquer à votre organisation :
Accédez à votre service ClickHouse Cloud à l’aide de Private Link
Chaque service pour lequel Private Link est activé possède un endpoint public et un endpoint privé. Pour vous connecter à l’aide de Private Link, vous devez utiliser l’endpoint privé, c’est-à-dire privateDnsHostnameAPI ou DNS nameconsole, obtenu à partir de Obtenir l’alias de connexion Azure pour Private Link.
Obtenir le nom d’hôte DNS privé
Option 1 : console ClickHouse Cloud
Dans la console ClickHouse Cloud, accédez à Settings. Cliquez sur le bouton Set up private endpoint. Dans le volet qui s’ouvre, copiez le DNS Name.
Définissez les variables d’environnement suivantes avant d’exécuter toute commande :
Exécutez la commande suivante :
Vous devriez obtenir une réponse semblable à la suivante :
Dans cet exemple, la connexion au hostname xxxxxxx.region_code.privatelink.azure.clickhouse.cloud passera par Private Link. En revanche, xxxxxxx.region_code.azure.clickhouse.cloud passera par internet.
Utilisez privateDnsHostname pour vous connecter à votre service ClickHouse Cloud via Private Link.
Tester la configuration DNS
Exécutez la commande suivante :
où « nom DNS » correspond à privateDnsHostnameAPI ou à DNS nameconsole dans Obtenir l’alias de connexion Azure pour Private Link
Vous devriez obtenir la réponse suivante :
Connexion réinitialisée par le pair
Il est très probable que le Private Endpoint Resource ID n’ait pas été ajouté à la liste d’autorisation de vos services. Revenez à l’étape Ajouter le Private Endpoint Resource ID à la liste d’autorisation de vos services.
Le Private Endpoint est en attente
Il est fort probable que le Private Endpoint Resource ID n’ait pas été ajouté à la liste d’autorisation du service. Reprenez l’étape Ajouter le Private Endpoint Resource ID à la liste d’autorisation de vos services.
Si vous rencontrez des problèmes de connexion via Private Link, vérifiez la connectivité avec openssl. Assurez-vous que l’état du point de terminaison Private Link est Accepted.
OpenSSL doit pouvoir établir la connexion (la sortie doit afficher CONNECTED). errno=104 est attendu.
Vérifier les filtres du point de terminaison privé
Définissez les variables d’environnement suivantes avant d’exécuter des commandes :
Exécutez la commande suivante pour vérifier les filtres du Private Endpoint :
Pour en savoir plus sur Azure Private Link, veuillez consulter azure.microsoft.com/en-us/products/private-link.