Création et gestion de Private Link pour Azure Database pour PostgreSQL – Serveur unique avec l’interface CLI

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur unique

Important

Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers un serveur flexible Azure Database pour PostgreSQL. Pour plus d’informations sur la migration vers le Serveur flexible Azure Database pour PostgreSQL, consultez l’article Qu’arrive-t-il au Serveur unique Azure Database pour PostgreSQL ?.

Private Endpoint est le composant fondamental de Private Link dans Azure. Il permet à des ressources Azure, comme des machines virtuelles, de communiquer en privé avec des ressources Private Link. Dans cet article, vous apprendrez à utiliser Azure CLI pour créer une machine virtuelle dans un réseau virtuel Azure et un serveur unique Azure Database pour PostgreSQL avec un point de terminaison privé Azure.

Notes

La fonctionnalité de liaison privée est disponible uniquement pour les serveurs Azure Database pour PostgreSQL dans les niveaux tarifaires Usage général ou Mémoire optimisée. Vérifiez que le serveur de base de données se trouve dans l’un de ces niveaux tarifaires.

Prérequis

Pour parcourir ce guide pratique, vous avez besoin des éléments suivants :

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. Capture d’écran présentant un exemple d’essai pour Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Bouton permettant de lancer Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Capture d’écran présentant le bouton Cloud Shell dans le portail Azure.

Pour utiliser Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrer pour exécuter le code ou la commande.

Si vous décidez d’installer et d’utiliser Azure CLI en local, ce guide de démarrage rapide nécessite que vous utilisiez Azure CLI version 2.0.28 ou ultérieure. Exécutez az --version pour rechercher la version installée. Pour des informations d'installation ou de mise à niveau, consultez Installer Azure CLI.

Créer un groupe de ressources

Avant de pouvoir créer des ressources, vous devez créer un groupe de ressources qui hébergera le réseau virtuel. Créez un groupe de ressources avec la commande az group create. Cet exemple crée un groupe de ressources nommé myResourceGroup à l’emplacement westeurope :

az group create --name myResourceGroup --location westeurope

Création d'un réseau virtuel

Créez un réseau virtuel avec la commande az network vnet create. Cet exemple crée un réseau virtuel par défaut nommé myVirtualNetwork avec un sous-réseau nommé mySubnet :

az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet

Désactiver les stratégies Private Endpoint du sous-réseau

Azure déploie des ressources sur un sous-réseau au sein d’un réseau virtuel. vous devez donc créer ou mettre à jour le sous-réseau pour désactiver les stratégies réseau de point de terminaison privé. Mettez à jour une configuration de sous-réseau nommée mySubnet avec az network vnet subnet update :

az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true

Création de la machine virtuelle

Créez une machine virtuelle avec az vm create. Lorsque vous y êtes invité, indiquez un mot de passe à utiliser comme informations d’identification pour vous connecter à la machine virtuelle. Cet exemple crée une machine virtuelle nommée myVm :

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

Notez l’adresse IP publique de la machine virtuelle. Vous utiliserez cette adresse pour vous connecter à la machine virtuelle à partir d’Internet à l’étape suivante.

Créer une instance Azure Database pour PostgreSQL – Serveur unique

Créez une instance Azure Database pour PostgreSQL avec la commande az postgres server create. N'oubliez pas que le nom de votre serveur PostgreSQL doit être unique dans Azure. Par conséquent, remplacez la valeur d'espace réservé par les valeurs uniques que vous avez utilisées ci-dessus :

# Create a server in the resource group

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

Créer l’instance Private Endpoint

Créez un point de terminaison privé pour le serveur PostgreSQL dans votre Réseau virtuel :

az network private-endpoint create \  
    --name myPrivateEndpoint \  
    --resource-group myResourceGroup \  
    --vnet-name myVirtualNetwork  \  
    --subnet mySubnet \  
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforPostgreSQL/servers" --query "id" -o tsv) \    
    --group-id postgresqlServer \  
    --connection-name myConnection  

Configurer la zone DNS privée

Créez une zone DNS privé pour le domaine du serveur PostgreSQL, puis un lien d’association avec le Réseau virtuel.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.postgres.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.postgres.database.azure.com"\ 
   --name MyDNSLink \ 
   --virtual-network myVirtualNetwork \ 
   --registration-enabled false

#Query for the network interface ID  

networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)


az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for PostgreSQL name

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


#Create DNS records 

az network private-dns record-set a create --name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup  
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

Notes

Le FQDN dans le paramètre DNS du client n’est pas résolu en adresse IP privée configurée. Vous devez configurer une zone DNS pour le FQDN configuré, comme indiqué ici.

Notes

Il peut arriver que l’instance Azure Database pour PostgreSQL et le sous-réseau de réseau virtuel se trouvent dans des abonnements différents. Dans ce cas, vous devez vérifier les configurations suivantes :

  • Assurez-vous que le fournisseur de ressources Microsoft.DBforPostgreSQL est inscrit pour les deux abonnements. Pour plus d’informations, consultez Fournisseurs de ressources.

Se connecter à une machine virtuelle à partir d’Internet

Connectez-vous à la machine virtuelle myVm à partir d’Internet comme suit :

  1. Dans la barre de recherche du portail, entrez myVm.

  2. Sélectionnez le bouton Connexion. Après avoir sélectionné le bouton Connecter, Se connecter à la machine virtuelle s’ouvre.

  3. Sélectionnez Télécharger le fichier RDP. Azure crée un fichier de protocole RDP (Remote Desktop Protocol) ( .rdp) et le télécharge sur votre ordinateur.

  4. Ouvrez le fichier downloaded.rdp.

    1. Si vous y êtes invité, sélectionnez Connexion.

    2. Entrez le nom d’utilisateur et le mot de passe spécifiés lors de la création de la machine virtuelle.

      Remarque

      Vous devrez peut-être sélectionner Plus de choix>Utiliser un autre compte, pour spécifier les informations d’identification que vous avez entrées lorsque vous avez créé la machine virtuelle.

  5. Cliquez sur OK.

  6. Un avertissement de certificat peut s’afficher pendant le processus de connexion. Si vous recevez un avertissement de certificat, sélectionnez Oui ou Continuer.

  7. Une fois que le bureau de la machine virtuelle s’affiche, réduisez-le pour revenir à votre poste de travail local.

Accéder au serveur PostgreSQL en privé à partir de la machine virtuelle

  1. Dans le Bureau à distance de myVM, ouvrez PowerShell.

  2. Saisissez nslookup mydemopostgresserver.privatelink.postgres.database.azure.com.

    Vous recevez un message similaire à celui ci :

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. Testez la connexion de liaison privée pour le serveur PostgreSQL à l’aide de n’importe quel client disponible. L’exemple suivant utilise Azure Data Studio pour effectuer l’opération.

  4. Dans Nouvelle connexion, entrez ou sélectionnez les informations suivantes :

    Paramètre Valeur
    Type de serveur Sélectionnez PostgreSQL.
    Nom du serveur Sélectionnez mydemopostgresserver.privatelink.postgres.database.azure.com
    Nom d'utilisateur Entrez le nom d’utilisateur au format nomutilisateur@nomserveur qui est fourni lors de la création du serveur PostgreSQL.
    Mot de passe Entrez le mot de passe fourni lors de la création du serveur PostgreSQL.
    SSL Sélectionnez Obligatoire.
  5. Sélectionnez Se connecter.

  6. Parcourez les bases de données dans le menu de gauche.

  7. (Facultatif) Créez ou interrogez des informations à partir du serveur PostgreSQL.

  8. Fermez la connexion Bureau à distance à myVm.

Nettoyer les ressources

Quand vous n’en avez plus besoin, vous pouvez utiliser az group delete pour supprimer le groupe de ressources, ainsi que toutes les ressources qu’il contient :

az group delete --name myResourceGroup --yes 

Étapes suivantes