Accès public dans Azure Cosmos DB for PostgreSQL

S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)

Azure Cosmos DB for PostgreSQL prend en charge trois options de mise en réseau :

  • Aucun accès
    • Il s’agit de la valeur par défaut d’un cluster qui vient d’être créé si l’accès public ou privé n’est pas activé. Aucun ordinateur (que ce soit à l’intérieur ou à l’extérieur d’Azure) ne peut se connecter aux nœuds de base de données.
  • Accès public
    • Une adresse IP publique est affectée au nœud coordinateur.
    • L’accès au nœud coordinateur est protégé par un pare-feu.
    • En option, l’accès à tous les nœuds Worker peut être activé. Dans ce cas, les adresses IP publiques sont attribuées aux nœuds Worker et sont sécurisées par le même pare-feu.
  • Accès privé
    • Seules des adresses IP privées sont affectées aux nœuds du cluster.
    • Chaque nœud nécessite un point de terminaison privé pour permettre aux hôtes du réseau virtuel sélectionné d’accéder aux nœuds.
    • Les fonctionnalités de sécurité des réseaux virtuels Azure, tels que les groupes de sécurité réseau, peuvent être utilisées pour le contrôle d’accès.

Lorsque vous créez un cluster, vous pouvez autoriser l’accès public ou privé, ou opter pour la valeur par défaut (aucun accès). Une fois le cluster créé, vous pouvez choisir de basculer entre l’accès public ou privé, ou de les activer tous les deux en même temps.

Cette page décrit l’option d’accès public. Pour un accès privé, consultez Accès privé dans Azure Cosmos DB for PostgreSQL.

Présentation du pare-feu

Le pare-feu du serveur Azure Cosmos DB for PostgreSQL empêche tout accès à votre nœud coordinateur tant que vous n’avez pas spécifié les ordinateurs qui disposent d’autorisations. Le pare-feu octroie l’accès au serveur en fonction de l’adresse IP d’origine de chaque demande. Pour configurer votre pare-feu, vous créez des règles de pare-feu qui spécifient les plages d’adresses IP acceptables. Vous pouvez créer des règles de pare-feu au niveau du serveur.

Règles de pare-feu : ces règles permettent aux clients d’accéder à votre nœud coordinateur, c’est-à-dire à toutes les bases de données dans le même serveur logique. Les règles de pare-feu au niveau du serveur peuvent être configurées à l’aide du portail Azure. Pour créer des règles de pare-feu au niveau du serveur, vous devez être le propriétaire de l’abonnement ou collaborateur.

Par défaut, tous les accès de base de données à votre nœud coordinateur sont bloqués par le pare-feu. Pour pouvoir utiliser votre serveur à partir d’un autre ordinateur, vous devez spécifier une ou plusieurs règles de pare-feu au niveau du serveur afin de permettre l’accès à votre serveur. Utilisez les règles de pare-feu pour spécifier les plages d’adresses IP d’Internet à autoriser. L’accès au site web du Portail Azure proprement dit n’est pas affecté par les règles de pare-feu. Les tentatives de connexion à partir d’Internet et d’Azure doivent franchir le pare-feu pour pouvoir atteindre votre base de données PostgreSQL, comme l’illustre le diagramme suivant :

Diagramme montrant les règles de pare-feu au niveau du serveur entre les systèmes distants et locaux et les connexions ayant échoué.

Se connecter à partir d’Internet et d’Azure

Un pare-feu de cluster contrôle les utilisateurs pouvant se connecter au nœud coordinateur du groupe. Le pare-feu détermine l’accès en consultant une liste de règles configurable. Chaque règle est une adresse IP ou une plage d’adresses autorisée.

Quand le pare-feu bloque les connexions, il peut provoquer des erreurs d’application. L’utilisation du pilote JDBC PostgreSQL, par exemple, génère une erreur de ce type :

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL

Consultez Créer et gérer des règles de pare-feu pour savoir comment les règles sont définies.

Résoudre les problèmes du pare-feu du serveur de base de données

Quand l’accès au service Microsoft Azure Cosmos DB for PostgreSQL ne fonctionne pas comme prévu, considérez les points suivants :

  • Les modifications apportées à la liste d’approbation n’ont pas encore pris effet : jusqu’à cinq minutes peuvent s’écouler avant que les modifications apportées à la configuration du pare-feu Azure Cosmos DB for PostgreSQL prennent effet.

  • L’utilisateur n’est pas autorisé ou un mot de passe incorrect a été utilisé : si un utilisateur n’a pas d’autorisation sur le serveur ou si le mot de passe utilisé est incorrect, la connexion au serveur 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.

    Par exemple, avec un client JDBC, l’erreur suivante est susceptible d’apparaître.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • Adresse IP dynamique : si vous avez une connexion Internet avec adressage IP dynamique et que le pare-feu demeure infranchissable, vous pouvez essayer une des solutions suivantes :

    • Demandez à votre fournisseur d’accès Internet la plage d’adresses IP attribuée à vos ordinateurs clients qui accèdent au nœud coordinateur, puis ajoutez cette plage dans une règle de pare-feu.

    • Obtenez un adressage IP statique à la place pour vos ordinateurs clients, puis ajoutez l’adresse IP statique en tant que règle de pare-feu.

Étapes suivantes

Pour obtenir des informations sur la création de règles de pare-feu au niveau du serveur et au niveau de la base de données, consultez les articles suivants :