Partager via


Vue d’ensemble de la mise en réseau pour Azure Database pour PostgreSQL avec accès public (adresses IP autorisées)

Cet article décrit les concepts de connectivité et de mise en réseau pour les instances de serveur flexible Azure Database pour PostgreSQL.

Lorsque vous créez une instance de serveur flexible Azure Database pour PostgreSQL, vous devez choisir l’une des options de mise en réseau suivantes :

  • Accès privé (intégration d’un réseau virtuel)
  • Accès public (adresses IP autorisées) et point de terminaison privé

Les caractéristiques suivantes s’appliquent si vous choisissez d’utiliser l’option d’accès privé ou d’accès public :

  • Les connexions provenant d’adresses IP autorisées doivent s’authentifier auprès de l’instance de serveur flexible Azure Database pour PostgreSQL avec des informations d’identification valides.
  • Le chiffrement de la connexion est appliqué pour votre trafic réseau.
  • Le serveur a un nom de domaine complet (FQDN). Pour la propriété hostname dans les chaînes de connexion, nous vous recommandons d’utiliser le FQDN plutôt qu’une adresse IP.
  • Les deux options contrôlent l’accès au niveau du serveur, et non au niveau de la base de données ou de la table. Vous utilisez les propriétés du rôle de PostgreSQL pour contrôler l’accès aux bases de données, aux tables et à d’autres objets.

Remarque

Étant donné que le service Azure Database pour PostgreSQL est un service de base de données managé, les utilisateurs ne disposent pas d’un accès hôte ou système d’exploitation pour afficher ou modifier des fichiers de configuration tels que pg_hba.conf. Le contenu de ces fichier est automatiquement mis à jour en fonction des paramètres réseau.

Utiliser la mise en réseau d’accès public avec Azure Database pour PostgreSQL

Lorsque vous choisissez la méthode d’accès public, votre instance de serveur flexible Azure Database pour PostgreSQL est accessible via un point de terminaison public sur Internet. Le point de terminaison public est une adresse DNS pouvant être résolue publiquement. L’expression adresses IP autorisées fait référence à une plage d’adresses IP à laquelle vous choisissez de donner l’autorisation d’accéder à votre serveur. Ces autorisations sont appelées règles de pare-feu.

Choisissez cette option de mise en réseau si vous souhaitez bénéficier des capacités suivantes :

  • Connexion à partir de ressources Azure qui ne prennent pas en charge les réseaux virtuels.
  • Connexion à partir de ressources situées en dehors d’Azure qui ne sont pas connectées par un réseau privé virtuel (VPN) ou Azure ExpressRoute.
  • Vérifiez que l’instance de serveur flexible Azure Database pour PostgreSQL dispose d’un point de terminaison public accessible via Internet.

Les caractéristiques de la méthode d’accès public sont les suivantes :

  • Seules les adresses IP que vous autorisez ont l’autorisation d’accéder à votre instance de serveur flexible Azure Database pour PostgreSQL. Par défaut, aucune adresse IP n’est autorisée. Vous pouvez ajouter des adresses IP lors de la création du serveur ou par la suite.

  • Votre instance de serveur flexible Azure Database pour PostgreSQL a un nom DNS résolvable publiquement.

  • Votre instance de serveur flexible Azure Database pour PostgreSQL n’est pas dans l’un de vos réseaux virtuels Azure.

  • Le trafic réseau à destination et en provenance de votre serveur ne passe pas par un réseau privé. Le trafic utilise les chemins Internet généraux.

Règles de pare-feu

Les règles de pare-feu au niveau du serveur s’appliquent à toutes les bases de données sur la même instance de serveur flexible Azure Database pour PostgreSQL. Si l’adresse IP source de la demande appartient à une des plages spécifiées dans les règles de pare-feu au niveau du serveur, la connexion est accordée. Dans le cas contraire, elle est rejetée. Par exemple, si votre application se connecte au pilote JDBC pour PostgreSQL, vous risquez de rencontrer cette erreur lorsque vous tentez de vous connecter quand le pare-feu bloque la connexion.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL

Remarque

Pour accéder à une instance de serveur flexible Azure Database pour PostgreSQL à partir de votre ordinateur local, vérifiez que le pare-feu sur votre réseau et l’ordinateur local autorisent la communication sortante sur le port TCP 5432.

Règles de pare-feu gérées programmatiquement

En plus d’utiliser le portail Azure, vous pouvez gérer les règles de pare-feu programmatiquement à l’aide de l’interface Azure CLI. Pour plus d’informations, consultez Mise en réseau.

Autoriser toutes les adresses IP Azure

Nous vous conseillons de trouver l’adresse IP sortante d’une application ou d’un service et d’autoriser explicitement l’accès à ces plages ou adresses IP individuelles. Si aucune adresse IP sortante fixe n’est disponible pour votre service Azure, vous pouvez envisager d’autoriser les connexions depuis toutes les adresses IP des centres de données Azure.

Pour activer ce paramètre à partir du portail Azure, dans le volet Réseaux, cochez la case Autoriser l’accès public à partir d’un service Azure dans Azure sur ce serveur, puis sélectionnez Enregistrer.

Important

L’option Autoriser l’accès public à partir des ressources et services Azure dans Azure permet de configurer le pare-feu afin d’autoriser toutes les connexions en provenance d’Azure, notamment les connexions depuis les abonnements d’autres clients. Lorsque vous sélectionnez cette option, assurez-vous que vos autorisations de connexion et d’utilisateur limitent l’accès aux seuls utilisateurs autorisés.

Résoudre les problèmes d’accès public

Tenez compte des points suivants lorsque l’accès à une instance de serveur flexible Azure Database pour PostgreSQL ne se comporte pas comme prévu :

  • Les modifications apportées à la liste d’autorisation n’ont pas encore été prises en compte. Jusqu’à cinq minutes peuvent s’écouler avant que les modifications apportées à la configuration du pare-feu du serveur flexible Azure Database pour PostgreSQL prennent effet.

  • Échec de l’authentification. Si un utilisateur n’a pas d’autorisations sur l’instance de serveur flexible Azure Database pour PostgreSQL ou si le mot de passe est incorrect, la connexion à l’instance de serveur flexible Azure Database pour PostgreSQL est refusée. La création d’un paramètre de pare-feu permet uniquement aux clients de tenter de se connecter à votre serveur. Chaque client doit quand même fournir les informations d’identification de sécurité nécessaires.

  • L’adresse IP dynamique du client empêche l’accès. Si vous avez une connexion Internet avec un adressage IP dynamique et que vous avez des difficultés à franchir le pare-feu, essayez l’une des solutions suivantes :

    • Demandez à votre fournisseur d’accès à Internet (ISP) la plage d’adresses IP attribuée à vos ordinateurs clients qui accèdent à l’instance de serveur flexible Azure Database pour PostgreSQL. Ajoutez ensuite cette plage en tant que règle de pare-feu.
    • Obtenez plutôt l’adressage IP statique pour vos ordinateurs clients. Ajoutez ensuite l’adresse IP statique en tant que règle de pare-feu.
  • La règle de pare-feu n’est pas disponible pour le format IPv6. Les règles de pare-feu doivent être au format IPv4. Si vous spécifiez des règles de pare-feu au format IPv6, vous obtenez une erreur de validation.

Nom d’hôte

Quelle que soit l’option de mise en réseau que vous choisissez, nous vous recommandons d’utiliser toujours un nom de domaine complet comme nom d’hôte lors de la connexion à votre instance de serveur flexible Azure Database pour PostgreSQL. Il n’est pas garanti que l’adresse IP du serveur reste statique. L’utilisation du FQDN vous permet d’éviter d’apporter des modifications à votre chaîne de connexion.

Par exemple, hostname = servername.postgres.database.azure.com utilise un FQDN comme nom d’hôte. Dans la mesure du possible, évitez d’utiliser hostname = 10.0.0.4 (adresse privée) ou hostname = 40.2.45.67 (adresse publique).

Adresses IP sortantes pour la configuration du pare-feu

Lorsque votre instance de serveur flexible Azure Database pour PostgreSQL doit établir des connexions sortantes à des services externes (par exemple, pour la réplication logique, les extensions qui se connectent à des ressources externes ou à des sources de données externes), vous devrez peut-être configurer des règles de pare-feu sur ces services externes pour autoriser le trafic à partir de votre serveur de base de données.

Recherche de l’adresse IP du serveur

Pour trouver l’adresse IP actuellement affectée à votre instance de serveur flexible Azure Database pour PostgreSQL :

  • Utilisation de la résolution DNS : vous pouvez résoudre le nom de domaine complet (servername.postgres.database.azure.comFQDN) du serveur pour obtenir l’adresse IP actuelle. Utilisez des outils comme nslookup ou dig:

    nslookup servername.postgres.database.azure.com
    
  • À l’aide du portail Azure : accédez à votre instance de serveur flexible Azure Database pour PostgreSQL dans le portail Azure. L’adresse IP publique du serveur n’est pas affichée directement, mais vous pouvez la trouver en résolvant le nom de domaine complet du serveur.

  • Utilisation d’Azure CLI : Vous pouvez utiliser Azure CLI pour obtenir des informations sur votre serveur, puis résoudre le nom d’hôte :

    az postgres flexible-server show --resource-group myResourceGroup --name myServerName
    

Considérations importantes relatives aux connexions sortantes

  • Les adresses IP peuvent changer : l’adresse IP publique affectée à votre instance de serveur flexible Azure Database pour PostgreSQL n’est pas statique et peut changer pendant la maintenance, les mises à jour ou d’autres événements opérationnels. Utilisez toujours le nom de domaine complet si possible et mettez régulièrement à jour les règles de pare-feu externes si nécessaire.

  • Plages d’adresses IP du centre de données Azure : pour une configuration de pare-feu plus prévisible, vous pouvez autoriser le trafic à partir de l’ensemble de la plage d’adresses IP du centre de données Azure pour la région où se trouve votre serveur. Azure publie les plages d’adresses IP pour chaque région dans le téléchargement des plages d’adresses IP Azure et des étiquettes de service .

  • Étiquettes de service : si le service externe auquel vous vous connectez est également hébergé dans Azure, envisagez d’utiliser des étiquettes de service Azure pour des règles de pare-feu plus dynamiques et pouvant être gérées.

  • Alternative de point de terminaison privé : pour une connectivité plus stable et pour éviter les adresses IP publiques, envisagez d’utiliser des points de terminaison privés au lieu d’un accès public.