Connecteur SQL Aurora pour node-postgres - Amazon Aurora DSQL

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connecteur SQL Aurora pour node-postgres

Le connecteur Aurora DSQL pour node-postgres est un connecteur Node.js basé sur node-postgres qui intègre l'authentification IAM pour connecter des applications aux clusters Amazon Aurora DSQL. JavaScript/TypeScript

Le connecteur Aurora DSQL est conçu comme un plug-in d'authentification qui étend les fonctionnalités du client et du pool de nœuds postgres afin de permettre aux applications de s'authentifier auprès d'Amazon Aurora DSQL à l'aide des informations d'identification IAM.

À propos du connecteur

Amazon Aurora DSQL est une base de données distribuée native dans le cloud compatible avec PostgreSQL. Bien qu'il nécessite une authentification IAM et des jetons limités dans le temps, les pilotes de base de données Node.js traditionnels ne disposent pas de cette prise en charge intégrée.

Le connecteur SQL Aurora pour node-postgres comble cette lacune en implémentant un intergiciel d'authentification qui fonctionne parfaitement avec node-postgres. Cette approche permet aux développeurs de conserver leur code node-postgres existant tout en obtenant un accès sécurisé basé sur l'IAM aux clusters Aurora DSQL grâce à la gestion automatisée des jetons.

Qu’est-ce que l’authentification Aurora DSQL ?

Dans Aurora DSQL, l’authentification implique :

  • Authentification IAM : toutes les connexions utilisent l’authentification basée sur IAM avec des jetons à durée limitée

  • Génération de jetons : les jetons d'authentification sont générés à l'aide des informations d'identification AWS et ont une durée de vie configurable

Le connecteur Aurora DSQL pour node-postgres est conçu pour comprendre ces exigences et générer automatiquement des jetons d'authentification IAM lors de l'établissement de connexions.

Caractéristiques

  • Authentification IAM automatique : gère la génération et l'actualisation des jetons DSQL

  • Construit sur node-postgres : exploite le célèbre client PostgreSQL pour Node.js

  • Intégration fluide - Fonctionne avec les modèles de connexion node-postgres existants

  • Découverte automatique des régions : extrait la région AWS du nom d'hôte du cluster DSQL

  • TypeScript Support complet - Assure une sécurité totale du type

  • Support des informations d'identification AWS : prend en charge différents fournisseurs d'informations d'identification AWS (par défaut, basé sur le profil, personnalisé)

  • Compatibilité avec le regroupement de connexions : fonctionne parfaitement grâce au regroupement de connexions intégré

Exemple d'application

Un exemple d'application est inclus, par exemple, qui montre comment utiliser le connecteur Aurora DSQL pour node-postgres. Pour exécuter l'exemple inclus, veuillez vous référer à l'exemple README.

Guide de démarrage rapide

Exigences

  • Node.js 20+

  • Accès à un cluster SQL Aurora

  • Configuration des autorisations IAM appropriées pour permettre à votre application de se connecter à Aurora DSQL.

  • Informations d'identification AWS configurées (via l'interface de ligne de commande AWS, les variables d'environnement ou les rôles IAM)

Installation

npm install @aws/aurora-dsql-node-postgres-connector

Dépendances entre pairs

npm install @aws-sdk/credential-providers @aws-sdk/dsql-signer pg tsx npm install --save-dev @types/pg

Usage

Connexion client

import { AuroraDSQLClient } from "@aws/aurora-dsql-node-postgres-connector"; const client = new AuroraDSQLClient({ host: "<CLUSTER_ENDPOINT>", user: "admin", }); await client.connect(); const result = await client.query("SELECT NOW()"); await client.end();

Connexion à la piscine

import { AuroraDSQLPool } from "@aws/aurora-dsql-node-postgres-connector"; const pool = new AuroraDSQLPool({ host: "<CLUSTER_ENDPOINT>", user: "admin", max: 3, idleTimeoutMillis: 60000, }); const result = await pool.query("SELECT NOW()");

Utilisation avancée

import { fromNodeProviderChain } from "@aws-sdk/credential-providers"; import { AuroraDSQLClient } from "@aws/aurora-dsql-node-postgres-connector"; const client = new AuroraDSQLClient({ host: "example.dsql.us-east-1.on.aws", user: "admin", customCredentialsProvider: fromNodeProviderChain(), // Optionally provide custom credentials provider }); await client.connect(); const result = await client.query("SELECT NOW()"); await client.end();

Options de configuration

Option Type Obligatoire Description
host string Oui Nom d'hôte du cluster SQL
username string Oui Nom d'utilisateur DSQL
database string Non Nom de la base de données
region string Non Région AWS (détectée automatiquement à partir du nom d'hôte s'il n'est pas fourni)
port number Non Par défaut : 5432
customCredentialsProvider AwsCredentialIdentity / AwsCredentialIdentityProvider Non Fournisseur d'informations d'identification AWS personnalisées
profile string Non Le nom du profil IAM. Par défaut, c'est « par défaut »
tokenDurationSecs number Non Délai d'expiration du jeton en secondes

Tous les autres paramètres du Client/Pool sont pris en charge.

Authentification

Le connecteur gère automatiquement l'authentification DSQL en générant des jetons à l'aide du générateur de jetons du client DSQL. Si la région AWS n'est pas fournie, elle sera automatiquement analysée à partir du nom d'hôte fourni.

Pour plus d'informations sur l'authentification dans Aurora DSQL, consultez le guide de l'utilisateur.

Administrateur et utilisateurs réguliers

  • Les utilisateurs nommés « admin » utilisent automatiquement des jetons d'authentification d'administrateur

  • Tous les autres utilisateurs utilisent des jetons d'authentification ordinaires

  • Les jetons sont générés dynamiquement pour chaque connexion