Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous exécutez un serveur flexible Azure Database pour PostgreSQL, vous disposez de deux options de mise en réseau principales : l’accès privé (intégration de réseau virtuel) et l’accès public (adresses IP autorisées).
Avec l’accès public, vous accédez au serveur flexible Azure Database pour PostgreSQL via un point de terminaison public. Par défaut, le pare-feu bloque tout accès au serveur. Pour spécifier les hôtes IP pouvant accéder au serveur, créez des règles de pare-feu au niveau du serveur. Les règles de pare-feu spécifient les plages d’adresses IP publiques autorisées. Le pare-feu octroie l’accès au serveur en fonction de l’adresse IP d’origine de chaque demande. Avec l’accès privé, aucun point de terminaison public n’est disponible et seuls les hôtes situés sur le même réseau peuvent accéder à votre serveur flexible Azure Database pour PostgreSQL.
Créez des règles de pare-feu à l’aide du portail Azure ou à l’aide de commandes Azure CLI. Vous devez être le propriétaire ou un contributeur de l’abonnement.
Les règles de pare-feu au niveau du serveur s’appliquent à toutes les bases de données sur le même serveur flexible Azure Database pour PostgreSQL. Les règles n’affectent pas l’accès au site web du portail Azure.
Le diagramme suivant montre comment les tentatives de connexion à partir d’Internet et Azure doivent passer par le pare-feu avant de pouvoir atteindre les bases de données Azure Database pour PostgreSQL :
Connexion à partir d’Internet
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 à un pilote JDBC (Java Database Connectivity) pour Azure Database pour PostgreSQL, vous pouvez rencontrer cette erreur, car 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
Note
Pour accéder au 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 autorise la communication sortante sur le port TCP 5432.
Se connecter à partir d’Azure
Recherchez l’adresse IP sortante de n’importe quelle application ou service et autorisez explicitement l’accès à ces adresses IP ou plages individuelles. Par exemple, vous pouvez retrouver l’adresse IP sortante d’une application Azure App Service ou bien utiliser une adresse IP publique liée à une machine virtuelle.
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 pour les centres de données Azure :
Dans le portail Azure, dans le volet Réseau, activez la case à cocher Autoriser l’accès public à partir de n’importe quel service Azure dans Azure sur ce serveur.
Cliquez sur Enregistrer.
Important
L’option Autoriser l’accès public à partir de n’importe quel service Azure dans Azure sur ce serveur permet de configurer le pare-feu afin d’autoriser toutes les connexions en provenance d’Azure, notamment les connexions à partir des abonnements d’autres clients. Lorsque vous utilisez cette option, assurez-vous que vos autorisations de connexion et d’utilisateur limitent l’accès aux seuls utilisateurs autorisés.
Gestion par programmation des règles de pare-feu
En dehors du Portail Azure, vous pouvez gérer les règles de pare-feu par programmation à l’aide d’Azure CLI.
À partir d’Azure CLI, un paramètre de règle de pare-feu avec une adresse de début et de fin égale à 0.0.0.0 équivaut à l’option Autoriser l’accès public à partir de n’importe quel service Azure dans Azure sur ce serveur dans le portail. Si les règles de pare-feu rejettent la tentative de connexion, l'application n'atteint pas le serveur flexible Azure Database pour PostgreSQL.
Résoudre les problèmes de pare-feu
Tenez compte des possibilités suivantes lorsque l'accès à un serveur flexible Azure Database pour PostgreSQL ne se comporte pas comme prévu :
Les modifications apportées à la liste d’autorisation ne sont pas encore prises en compte : les modifications apportées à la configuration du pare-feu d’un serveur flexible Azure Database pour PostgreSQL peuvent prendre jusqu’à cinq minutes.
La connexion n'est pas autorisée ou un mot de passe incorrect a été utilisé : si une connexion n'a pas d'autorisations sur le serveur flexible Azure Database pour PostgreSQL ou si le mot de passe est incorrect, la connexion au serveur est refusée. La création d’un paramètre de pare-feu permet uniquement aux clients d’essayer de se connecter à votre serveur. Chaque client doit quand même fournir les informations d’identification de sécurité nécessaires.
Par exemple, l’erreur suivante peut s’afficher si l’authentification échoue pour un client JDBC :
java.util.concurrent.ExecutionException : java.lang.RuntimeException : org.postgresql.util.PSQLException : FATAL : échec de l’authentification par mot de passe pour l’utilisateur « yourusername »
Le pare-feu n’autorise pas les adresses IP dynamiques : si vous avez une connexion Internet avec adressage IP dynamique et que le pare-feu demeure infranchissable, essayez l’une des solutions suivantes :
Demandez à votre fournisseur de services Internet (ISP) la plage d’adresses IP attribuée à vos ordinateurs clients qui accèdent au serveur flexible Azure Database pour PostgreSQL. Ajoutez ensuite cette plage en tant que règle de pare-feu.
Obtenez des adresses IP statiques pour vos ordinateurs clients, puis ajoutez ces adresses IP statiques en tant que règle de pare-feu.
Les règles du pare-feu ne sont 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.