Présentation de la connexion

Cette page décrit la connectivité aux bases de données fournies par AlloyDB pour PostgreSQL. Pour en savoir plus, consultez Choisir comment se connecter à AlloyDB.

  • Mise en réseau : les instances AlloyDB utilisent des adresses IP publiques ou privées sur un cloud privé virtuel (VPC). Diverses techniques permettent d'établir des connexions sécurisées à partir d'applications s'exécutant en dehors du VPC.

  • Autorisation : le proxy d'authentification AlloyDB vous permet d'utiliser Identity and Access Management (IAM) pour contrôler qui a accès à vos données. Le pare-feu de votre VPC vous permet d'affiner davantage l'accès aux ressources AlloyDB.

  • Authentification : utilisez les techniques d'authentification des utilisateurs PostgreSQL standards pour vous connecter à vos instances. AlloyDB est également compatible avec l'authentification basée sur IAM à l'aide des rôles d'utilisateur PostgreSQL standards.

  • Regroupement : pour améliorer la fiabilité, les performances et la scalabilité, utilisez le regroupement de connexions côté client PostgreSQL standard et le regroupement de connexions géré côté serveur.

Mise en réseau

Même si une instance AlloyDB contient de nombreux nœuds, vos applications se connectent à une instance via une seule adresse IP statique. Cette adresse peut être privée pour le VPC que vous spécifiez lors de la première configuration du cluster d'une instance, ou une adresse IP publique qui autorise les connexions directes depuis l'extérieur du VPC.

Adresse IP privée

Lorsque vous configurez AlloyDB avec une adresse IP privée, votre instance reçoit une adresse IP privée dans votre VPC.

Les adresses IP privées affectent les connexions à votre application de deux manières :

  • Les applications s'exécutant ailleurs dans le VPC de votre projet peuvent se connecter à l'instance (ou à un proxy représentant l'instance) sans étapes ni ressources supplémentaires.

    Par exemple, Connecter un client psql à une instance montre comment vous connecter à votre instance AlloyDB en exécutant le psql programme de ligne de commande sur une VM Compute Engine dans votre VPC.

  • Les applications s'exécutant en dehors du VPC nécessitent un service intermédiaire pour se connecter à l'instance AlloyDB. Les solutions incluent l'exécution de services de proxy sur une VM dans le VPC de l'instance ou l'utilisation d'autres Google Cloud produits pour établir une connexion permanente entre votre application et votre VPC.

    Pour en savoir plus, consultez Se connecter à un cluster depuis l'extérieur de son VPC.

Les connexions via une adresse IP privée offrent généralement une latence plus faible et des vecteurs d'attaque limités, car leur transit par Internet n'est pas nécessaire.

Pour en savoir plus sur les adresses IP privées dans AlloyDB, consultez Présentation des adresses IP privées.

Adresse IP publique

Lorsque vous configurez AlloyDB avec une adresse IP publique, votre instance reçoit une adresse IP publique pour les connexions entrantes, accessible sur l'Internet public. Vous pouvez également utiliser des réseaux externes autorisés pour spécifier une plage d'adresses IP au format CIDR pouvant accéder à votre instance.

Nous vous recommandons d'utiliser une adresse IP publique avec les connecteurs de langage AlloyDB pour garantir des connexions sécurisées entre le client et votre instance.

Pour en savoir plus sur l'ajout d'une adresse IP publique et de réseaux externes autorisés à votre instance, consultez Se connecter à l'aide d'une adresse IP publique.

AlloyDB est également compatible avec les connexions sortantes de votre instance vers l'Internet public. Lorsque vous activez une adresse IP publique sortante, AlloyDB fournit une adresse IP source cohérente et prévisible pour le trafic quittant votre instance AlloyDB vers l'Internet public. Lorsque vous activez cette fonctionnalité, AlloyDB provisionne une paire d'adresses IP publiques statiques qui sont utilisées exclusivement pour les connexions sortantes de votre instance.

Les connexions sortantes sont particulièrement utiles dans les scénarios suivants :

  • Migration de base de données : lorsque vous migrez vos données d'une base de données externe vers AlloyDB à l'aide du service de migration de base de données (DMS), vous pouvez configurer le pare-feu de la base de données externe pour autoriser les connexions à partir des adresses IP sortantes spécifiques de votre instance AlloyDB, ce qui garantit un chemin de transfert de données sécurisé.

  • Wrappers de données externes : si vous devez interroger des données à partir d'une base de données externe dans AlloyDB à l'aide de wrappers de données externes tels que postgres_fdw ou oracle_fdw, vous pouvez ajouter les adresses IP sortantes de votre instance à la liste d'autorisation de la base de données externe. Cela permet à AlloyDB de se connecter et d'interroger de manière sécurisée la source de données externe.

Lorsque vous activez une adresse IP publique sortante, vous pouvez afficher les adresses IP attribuées dans la Google Cloud console ou à l'aide de l'outil de ligne de commande gcloud. Vous pouvez ensuite utiliser ces adresses IP pour configurer des règles de pare-feu ou des listes de contrôle des accès (LCA) sur vos systèmes externes afin d'accorder à votre instance AlloyDB l'accès à vos systèmes externes.

Pour en savoir plus sur l'activation d'une adresse IP publique sortante, consultez Ajouter une connectivité sortante à une instance.

Autorisation

Vous pouvez contrôler l'accès à un cluster AlloyDB à l'aide des connecteurs de langage AlloyDB, du proxy d'authentification AlloyDB ou des règles de pare-feu VPC.

Connecteurs de langage AlloyDB

Les connecteurs de langage AlloyDB sont des bibliothèques clientes qui fournissent un mTLS automatisé à l'aide de TLS 1.3 et d'une autorisation IAM lors de la connexion à un cluster AlloyDB.

Vous pouvez utiliser ces bibliothèques directement à partir de leurs langages de programmation respectifs. Elles offrent les mêmes fonctionnalités que le proxy AlloyDB sans nécessiter de processus externe. Cela améliore la sécurité et réduit les exigences de configuration pour se connecter à AlloyDB.

Pour en savoir plus, consultez Présentation des connecteurs de langage AlloyDB.

Se connecter à l'aide de gcloud

Pour les sessions de base de données interactives, vous pouvez utiliser la commande gcloud beta alloydb connect. Cette commande simplifie le processus de connexion en gérant automatiquement une instance locale du proxy d'authentification AlloyDB et en démarrant une session client psql pour vous.

Pour en savoir plus, consultez Se connecter à l'aide de gcloud.

Contrôler l'accès avec IAM et le proxy d'authentification AlloyDB

Bien que vous puissiez vous connecter directement à une instance via son adresse IP, nous vous recommandons d'utiliser le proxy d'authentification AlloyDB dans les environnements de production. Il fournit un contrôle des accès basé sur IAM et un chiffrement de bout en bout entre le proxy et votre cluster.

Pour en savoir plus, consultez À propos du proxy d'authentification AlloyDB.

Limiter l'accès au VPC avec des règles de pare-feu

Comme pour tout projet basé sur le cloud, vous devez ajuster les règles de pare-feu de votre VPC pour limiter l'accès au réseau uniquement aux plages d'adresses IP ou aux sous-réseaux à partir desquels vos applications se connectent. Cela est particulièrement important avec les applications externes, comme décrit dans Se connecter à un cluster depuis l'extérieur de son VPC.

Pour en savoir plus sur la configuration du pare-feu de votre VPC, consultez Règles de pare-feu VPC.

Authentification

AlloyDB est compatible avec deux types d'utilisateurs de base de données, chacun ayant sa propre méthode d'authentification auprès de vos bases de données :

  • Les rôles d'utilisateur PostgreSQL standards s'authentifient à l'aide d'un nom d'utilisateur et d'un mot de passe. Vous gérez ces comptes à l'aide des techniques de gestion des utilisateurs PostgreSQL ordinaires. Pour en savoir plus, consultez Gérer les rôles d'utilisateur AlloyDB.

  • Les comptes d'utilisateur et de service IAM s'authentifient en tant qu'utilisateurs de base de données à l'aide de jetons OAuth 2.0. Vous gérez ces comptes à l'aide du Google Cloud système IAM. Pour en savoir plus, consultez Gérer l'authentification IAM.

Une fois authentifiée auprès d'une instance AlloyDB, une application peut traiter l'instance comme un serveur PostgreSQL ordinaire. Après avoir établi des routes de mise en réseau et d'autorisation vers une instance, vous pouvez utiliser les techniques PostgreSQL standards pour vous connecter à une instance et accéder à vos données. Cela est vrai que vous vous connectiez manuellement avec un outil tel que psql ou que vous vous connectiez à votre base de données par programmation à l'aide d'une bibliothèque de code PostgreSQL.

En règle générale, votre première authentification auprès d'un nouveau cluster AlloyDB consiste à vous connecter à son instance principale en tant qu'utilisateur postgres, à l'aide du mot de passe que vous spécifiez lors de la création du cluster. À partir de là, vous devez créer des utilisateurs de base de données sans privilèges d'administrateur pour l'utilisation de votre application.

Si vous ne définissez pas de mot de passe pour postgres lors de la création d'un cluster, vous ne pouvez pas vous connecter au cluster. Pour vous connecter, définissez un mot de passe pour postgres ou créez un utilisateur supplémentaire. Pour en savoir plus, consultez Gérer les utilisateurs PostgreSQL avec l'authentification intégrée.

Regroupement

Le regroupement de connexions est une technique qui vous permet de vous assurer que votre charge de travail dispose d'une connexion fiable et performante à votre base de données. Il est utile à la fois côté client et côté serveur.

Regroupement de connexions client

Lorsque vous vous connectez à AlloyDB, utilisez un pool de connexions client. Le pool de connexions client crée plusieurs connexions à votre base de données et s'assure que ces connexions restent actives et saines tout au long de la durée de vie de votre charge de travail. Cette approche garantit que votre charge de travail dispose d'une connexion fiable à votre base de données.

  • Lorsque vous exécutez des requêtes manuellement à partir de la ligne de commande.
  • Lorsque vous utilisez un langage qui n'est pas compatible avec le regroupement de connexions client.
  • Lorsque la charge de travail est éphémère et ne maintient pas de connexion à long terme.

Vous pouvez utiliser n'importe quel pool de connexions client standard compatible avec PostgreSQL. Tenez compte des informations suivantes :

  • La bibliothèque de pool de connexions client est parfois distincte du pilote PostgreSQL.
  • Le pilote PostgreSQL inclut parfois la fonctionnalité de regroupement de connexions client dans la même bibliothèque.

Voici les bibliothèques de pool de connexions couramment utilisées :

Si la bibliothèque est compatible avec PostgreSQL, vous pouvez l'utiliser avec AlloyDB.

Configurer des pools de connexions client

Pour optimiser les performances de votre pool de connexions client, vous devrez peut-être configurer la taille du pool. Utilisez la formule suivante comme point de départ :

connections = (vCPU count * 2) + 1

Pour en savoir plus, consultez À propos du dimensionnement du pool. En fonction des charges réelles, vous devrez peut-être effectuer des ajustements supplémentaires.

Utiliser le regroupement de connexions géré

En plus du regroupement de connexions client, AlloyDB est également compatible avec le regroupement de connexions côté serveur grâce au regroupement de connexions géré.

Bien que vous puissiez utiliser le regroupement de connexions géré pour n'importe quelle charge de travail transactionnelle, il est plus adapté aux applications qui contiennent davantage de connexions de courte durée ou qui peuvent connaître une augmentation soudaine du nombre de connexions. Pour en savoir plus, consultez Configurer le regroupement de connexions géré.

Étape suivante