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). Différentes 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 utilisateur PostgreSQL standards.

  • Pool de connexions : pour améliorer la fiabilité, les performances et l'évolutivité, utilisez le pool de connexions standard côté client PostgreSQL et le pool 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 au VPC que vous spécifiez lors de la première configuration du cluster d'une instance, ou une adresse IP publique qui permet des 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 exécutées 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 se connecter à votre instance AlloyDB en exécutant le programme en ligne de commande psql sur une VM Compute Engine dans votre VPC.

  • Les applications exécutées 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 produitsGoogle Cloud 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 assurer des connexions sécurisées entre le client et votre instance.

Pour savoir comment ajouter une adresse IP publique et des 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 vers votre instance. Vous pouvez activer l'adresse IP publique sortante pour migrer une base de données vers AlloyDB directement à partir d'une source externe à l'aide de Database Migration Service ou de configurations pglogical autogérées. AlloyDB permet également de se connecter à une source de données externe à l'aide de wrappers de données étrangères, tels que postgres_fdw ou oracle_fdw.

Pour en savoir plus sur l'activation de l'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 le mTLS automatisé à l'aide de TLS 1.3 et de l'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 permet de renforcer la sécurité et de réduire les exigences de configuration pour la connexion à AlloyDB.

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

Contrôler les 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 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 indiqué 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 bases de données, chacun ayant sa propre méthode d'authentification auprès de vos bases de données :

  • Les rôles 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 habituelles de gestion des utilisateurs PostgreSQL. Pour en savoir plus, consultez Gérer les rôles utilisateur AlloyDB.

  • Les comptes de service et d'utilisateur 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 systèmeGoogle Cloud 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. Une fois les routes réseau et d'autorisation établies vers une instance, vous pouvez utiliser les techniques PostgreSQL standards pour vous connecter à une instance et accéder à vos données. Cela vaut que vous vous connectiez manuellement avec un outil comme psql ou que vous vous connectiez à votre base de données de manière programmatique à 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 implique de 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 droits d'administrateur pour l'utilisation de votre application.

Si vous ne définissez pas de mot de passe pour postgres lorsque vous créez 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.

Pooling

Le pooling 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 pendant toute 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'accepte pas le regroupement de connexions client.
  • Lorsque la charge de travail est éphémère et ne maintient pas de connexion de longue durée.

Vous pouvez utiliser n'importe quel pool de connexion client standard compatible avec PostgreSQL. Notez les informations suivantes :

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

Voici quelques 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 des pools. 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 pooling 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 un pic de connexions. Pour en savoir plus, consultez Configurer le pooling de connexions géré.

Étape suivante