Présentation de la connexion

Pour connecter vos applications et vos outils de manière sécurisée aux bases de données AlloyDB pour PostgreSQL, vous pouvez configurer la mise en réseau, l'autorisation, l'authentification et le regroupement de connexions :

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

  • Autorisation : le proxy d'authentification AlloyDB et les connecteurs de langage AlloyDB vous permettent d'utiliser Identity and Access Management (IAM) pour contrôler qui a accès à vos données. Les règles de pare-feu de votre réseau VPC vous permettent d'ajuster 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 de rôles utilisateur PostgreSQL standards.

  • Mise en pool : pour améliorer la fiabilité, les performances et l'évolutivité, utilisez la mise en pool de connexions côté client PostgreSQL standard et la mise en pool de connexions gérées côté serveur.

Pour savoir comment choisir la configuration de connectivité adaptée à votre charge de travail, consultez Choisir une option de connectivité.

Mise en réseau

Même si une instance AlloyDB contient de nombreux nœuds, vos applications s'y connectent via une seule adresse IP statique. Cette adresse peut être une adresse IP privée sur le réseau VPC que vous spécifiez lors de la configuration initiale du cluster d'une instance, ou une adresse IP publique qui permet des connexions directes depuis l'extérieur du réseau VPC.

Adresse IP privée

Lorsque vous configurez AlloyDB avec une adresse IP privée, votre instance obtient une adresse IP privée dans votre réseau VPC.

Les adresses IP privées ont deux types d'impact sur les connexions à votre application :

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

    Par exemple, la page Se connecter depuis Compute Engine explique comment se connecter à votre instance AlloyDB en exécutant le programme de ligne de commande psql sur une VM Compute Engine de votre réseau VPC.

  • Les applications exécutées en dehors du réseau VPC nécessitent un service intermédiaire pour se connecter à l'instance AlloyDB. Les solutions incluent l'exécution de services proxy sur une VM au sein du réseau VPC de l'instance, ou l'utilisation d'autres produitsGoogle Cloud pour établir une connexion permanente entre votre application et votre réseau 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 elles ne nécessitent pas de passer par Internet.

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 obtient une adresse IP publique pour les connexions entrantes, accessible sur l'Internet public. Vous pouvez éventuellement 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 ou le proxy d'authentification 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 accepte également les connexions sortantes de votre instance vers l'Internet public. Lorsque vous activez l'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 exclusivement utilisées pour les connexions sortantes depuis 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 de Database Migration Service, vous pouvez configurer le pare-feu de la base de données externe pour autoriser les connexions provenant 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 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. Cette configuration permet à AlloyDB de se connecter de manière sécurisée à la source de données externe et de l'interroger.

Lorsque vous activez l'adresse IP publique sortante, vous pouvez afficher les adresses IP attribuées dans la console Google Cloud ou à l'aide de la gcloud CLI. 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'autoriser votre instance AlloyDB à accéder à vos systèmes externes.

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 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 fournissent les mêmes fonctionnalités que le proxy d'authentification, sans processus externe. Cette approche 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.

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 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 dans le cloud, vous devez ajuster les règles de pare-feu de votre réseau VPC afin de limiter l'accès réseau aux plages d'adresses IP ou aux sous-réseaux à partir desquels vos applications se connectent. Cette pratique est particulièrement importante pour les applications externes, comme indiqué dans la section Se connecter à un cluster depuis l'extérieur de son VPC.

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

Authentification

AlloyDB accepte 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 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 utilisateurs PostgreSQL avec l'authentification intégrée.

  • Les comptes 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 systèmeGoogle Cloud IAM. Pour en savoir plus, consultez Gérer l'authentification IAM.

Après s'être 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 s'applique que vous vous connectiez manuellement avec un outil tel que 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 pouvez 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 lors de la création d'un cluster, vous ne pourrez pas vous y connecter. Pour vous connecter, définissez un mot de passe pour postgres ou créez un autre utilisateur. Pour en savoir plus, consultez Gérer les utilisateurs PostgreSQL avec l'authentification intégrée.

Regroupement

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 opérationnelles 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'est pas compatible avec 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 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 une fonctionnalité de regroupement de connexions client dans la même bibliothèque.

Voici les bibliothèques de pools 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 réglages supplémentaires.

Utiliser le regroupement de connexions géré

En plus du regroupement de connexions côté 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 particulièrement adapté aux applications qui contiennent davantage de connexions de courte durée ou aux applications susceptibles de connaître une augmentation soudaine du nombre de connexions. Pour en savoir plus, consultez Configurer la mise en pool des connexions gérées.

Étapes suivantes