Connettore Aurora DSQL per node-postgres - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connettore Aurora DSQL per node-postgres

Il connettore Aurora DSQL per node-postgres è un connettore Node.js basato su node-postgres che integra l'autenticazione IAM per connettere le applicazioni ai cluster DSQL di Amazon Aurora. JavaScript/TypeScript

L'Aurora DSQL Connector è progettato come un plug-in di autenticazione che estende la funzionalità del client e del pool di node-postgres per consentire alle applicazioni di autenticarsi con Amazon Aurora DSQL utilizzando credenziali IAM.

Informazioni sul connettore

Amazon Aurora DSQL è un database distribuito nativo del cloud con compatibilità PostgreSQL. Sebbene richieda l'autenticazione IAM e token temporizzati, i driver di database Node.js tradizionali non dispongono di questo supporto integrato.

Il connettore Aurora DSQL per node-postgres colma questa lacuna implementando un middleware di autenticazione che funziona perfettamente con node-postgres. Questo approccio consente agli sviluppatori di mantenere il codice node-postgres esistente ottenendo al contempo un accesso sicuro basato su IAM ai cluster Aurora DSQL attraverso la gestione automatizzata dei token.

Che cos’è l’autenticazione di Aurora DSQL?

In Aurora DSQL, l’autenticazione prevede:

  • Autenticazione IAM: tutte le connessioni utilizzano l’autenticazione basata su IAM con token a tempo limitato

  • Generazione di token: i token di autenticazione vengono generati utilizzando credenziali AWS e hanno una durata configurabile

Il connettore Aurora DSQL per node-postgres è progettato per comprendere questi requisiti e generare automaticamente token di autenticazione IAM quando si stabiliscono connessioni.

Funzionalità

  • Autenticazione IAM automatica: gestisce la generazione e l'aggiornamento dei token DSQL

  • Basato su node-postgres: sfrutta il popolare client PostgreSQL per Node.js

  • Integrazione perfetta: funziona con i modelli di connessione node-postgres esistenti

  • Region Auto-Discovery: estrae la regione AWS dal nome host del cluster DSQL

  • Full TypeScript Support - Fornisce una sicurezza completa

  • AWS Credentials Support: supporta vari provider di credenziali AWS (predefiniti, basati su profili, personalizzati)

  • Compatibilità con il pool di connessioni: funziona perfettamente con il pool di connessioni integrato

Applicazione di esempio

Nell'esempio è inclusa un'applicazione di esempio che mostra come utilizzare Aurora DSQL Connector per node-postgres. Per eseguire l'esempio incluso, fai riferimento all'esempio README.

Guida rapida all'avvio

Requisiti

  • Node.js 20+

  • Accesso a un cluster Aurora DSQL

  • Configurazione delle autorizzazioni IAM appropriate per consentire all’applicazione di connettersi ad Aurora DSQL.

  • Credenziali AWS configurate (tramite CLI AWS, variabili di ambiente o ruoli IAM)

Installazione

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

Dipendenze tra pari

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

Utilizzo

Connessione 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();

Connessione al pool

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()");

Utilizzo avanzato

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();

Opzioni di configurazione

Opzione Tipo Campo obbligatorio Descrizione
host string Nome host del cluster DSQL
username string nome utente DSQL
database string No Nome del database
region string No Regione AWS (rilevata automaticamente dal nome host se non fornita)
port number No L'impostazione predefinita è 5432
customCredentialsProvider AwsCredentialIdentity / AwsCredentialIdentityProvider No Provider di credenziali AWS personalizzate
profile string No Il nome del profilo IAM. L'impostazione predefinita è «default»
tokenDurationSecs number No Tempo di scadenza del token in secondi

Tutti gli altri parametri di Client/Pool sono supportati.

Autenticazione

Il connettore gestisce automaticamente l'autenticazione DSQL generando token utilizzando il generatore di token client DSQL. Se la regione AWS non viene fornita, verrà analizzata automaticamente a partire dal nome host fornito.

Per ulteriori informazioni sull'autenticazione in Aurora DSQL, consulta la guida per l'utente.

Amministratore e utenti regolari

  • Gli utenti denominati «admin» utilizzano automaticamente i token di autenticazione dell'amministratore

  • Tutti gli altri utenti utilizzano token di autenticazione regolari

  • I token vengono generati dinamicamente per ogni connessione