Se connecter à un cluster avec un accès privé dans Azure Cosmos DB for PostgreSQL
S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)
Ce tutoriel crée une machine virtuelle et un cluster Azure Cosmos DB for PostgreSQL, et établit un accès privé entre eux.
Prérequis
- Compte Azure avec un abonnement actif. Si vous n’en avez pas un, créez un compte gratuitement.
- Si vous souhaitez exécuter le code localement, Azure CLI installé. Vous pouvez également exécuter le code dans Azure Cloud Shell.
Créez un réseau virtuel
Tout d’abord, configurez un groupe de ressources et un réseau virtuel pour accueillir votre cluster et votre machine virtuelle.
az group create \
--name link-demo \
--location eastus
az network vnet create \
--resource-group link-demo \
--name link-demo-net \
--address-prefix 10.0.0.0/16
az network nsg create \
--resource-group link-demo \
--name link-demo-nsg
az network vnet subnet create \
--resource-group link-demo \
--vnet-name link-demo-net \
--name link-demo-subnet \
--address-prefixes 10.0.1.0/24 \
--network-security-group link-demo-nsg
Création d'une machine virtuelle
À des fins de démonstration, créez une machine virtuelle qui exécute Debian Linux et le client PostgreSQL psql
.
# provision the VM
az vm create \
--resource-group link-demo \
--name link-demo-vm \
--vnet-name link-demo-net \
--subnet link-demo-subnet \
--nsg link-demo-nsg \
--public-ip-address link-demo-net-ip \
--image Debian11 \
--admin-username azureuser \
--generate-ssh-keys
# install psql database client
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts \
"sudo touch /home/azureuser/.hushlogin" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"
Créer un cluster avec une liaison privée
Créez votre cluster Azure Cosmos DB for PostgreSQL dans le portail Azure.
Dans le portail, en haut à gauche, sélectionnez Créer une ressource.
Sur la page Créer une ressource, sélectionnez Bases de données, puis Azure Cosmos DB.
Sur l’écran Sélectionner une option d’API, sur la vignette PostgreSQL, sélectionnez Créer.
Dans la page Créer un cluster Azure Cosmos DB for PostgreSQL, entrez les informations suivantes :
Groupe de ressources : sélectionnez Nouveau, puis entrez link-demo.
Nom du cluster : entrez link-demo-sg.
Notes
Le cluster doit être globalement unique dans Azure, car il crée une entrée DNS. Si
link-demo-sg
n’est pas disponible, entrez un autre nom et ajustez les étapes ci-après en conséquence.Emplacement : sélectionnez USA Est.
Mot de passe : entrez, puis confirmez un mot de passe.
Sélectionnez Suivant : Réseau.
Sous l’onglet Mise en réseau, pour Méthode de connectivité, sélectionnez Accès privé.
Dans l’écran Créer un point de terminaison privé, entrez ou sélectionnez les valeurs suivantes :
- Groupe de ressources :
link-demo
- Emplacement :
(US) East US
- Nom :
link-demo-sg-c-pe1
- Sous-ressource cible :
coordinator
- Réseau virtuel :
link-demo-net
- Sous-réseau :
link-demo-subnet
- Intégrer à une zone DNS privée : Oui
- Groupe de ressources :
Sélectionnez OK.
Après avoir créé le point de terminaison privé, sélectionnez Vérifier + créer, puis Créer pour créer votre cluster.
Accéder au cluster en privé à partir de la machine virtuelle
La liaison privée permet à la machine virtuelle de se connecter au cluster, et empêche des hôtes externes d’en faire de même. Au cours de cette étape, vous vérifiez que le client de base de données psql sur notre machine virtuelle peut communiquer avec le nœud coordinateur du cluster.
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'
# Attempt to connect to cluster with psql in the VM
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
--query 'value[0].message' \
| xargs printf
Remarque
Dans la chaîne de connexion, remplacez {your_password}
par votre mot de passe de cluster ou le jeton Microsoft Entra ID. Pour plus d’informations, consultez Options d’authentification.
Vous devez voir un numéro de version pour Citus dans la sortie. Le cas échéant, psql a pu exécuter la commande et la liaison privée a fonctionné.
Nettoyer les ressources
Vous avez vu comment créer une liaison privée entre une machine virtuelle et un cluster. Vous pouvez maintenant déprovisionner les ressources.
Supprimez le groupe de ressources et les ressources qu’il contient seront déprovisionnées :
az group delete --resource-group link-demo
# press y to confirm
Étapes suivantes
- En savoir plus sur les accès privés
- En savoir plus sur les points de terminaison privés
- En savoir plus sur les réseaux virtuels
- En savoir plus sur les zones DNS privées