Connessione all'istanza database tramite Autenticazione IAM dalla riga di comando: AWS CLI e client psql - Amazon Relational Database Service

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à.

Connessione all'istanza database tramite Autenticazione IAM dalla riga di comando: AWS CLI e client psql

Puoi eseguire la connessione dalla riga di comando a una istanza database Amazon RDS for PostgreSQL con AWS CLI e lo strumento a riga di comando psql come descritto di seguito.

Prerequisiti

Di seguito sono riportati i prerequisiti per la connessione al di istanzaDB utilizzando l'autenticazione IAM:

Nota

Per informazioni sulla connessione al database tramite pgAdmin con autenticazione IAM, consulta il post sul blog Utilizzo dell'autenticazione IAM per connettersi con PGadmin Amazon Aurora PostgreSQL o Amazon RDS for PostgreSQL.

Generazione di un token di autenticazione IAM

Il token di autenticazione è costituito da diverse centinaia di caratteri, quindi può essere complesso nella riga di comando. Una soluzione è di salvare il token in una variabile di ambiente e utilizzare quella variabile durante la connessione. Il seguente esempio mostra come usare l'AWS CLI per ottenere un token di autenticazione firmato utilizzando il comando generate-db-auth-token e archiviarlo in una variabile di ambiente PGPASSWORD.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"

Nell'esempio, i parametri per il comando generate-db-auth-token sono i seguenti:

  • --hostname – Nome host dell'istanza database cui desideri accedere.

  • --port – Numero di porta usato per la connessione al cluster

  • --region: la regione AWS in cui è in esecuzione l'istanza database

  • --username – L'account database cui vuoi accedere.

I primi caratteri del token generato hanno il seguente aspetto.

rdspostgres.123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
Nota

Non è possibile utilizzare un record DNS Route 53 personalizzato  anziché l'endpoint dell'istanza database per generare il token di autenticazione.

Connessione a un'istanza Amazon RDS PostgreSQL

Di seguito è mostrato il formato generale per l'utilizzo di psql per la connessione.

psql "host=hostName port=portNumber sslmode=verify-full sslrootcert=full_path_to_ssl_certificate dbname=DBName user=userName password=authToken"

I parametri sono i seguenti:

  • host – Nome host dell'istanza database cui desideri accedere.

  • port – Numero di porta usato per la connessione al cluster

  • sslmode – Modalità SSL da utilizzare.

    Quando si utilizza sslmode=verify-full, la connessione SSL verifica l'endpoint dell'istanza database rispetto a quello nel certificato SSL.

  • sslrootcert – Il percorso completo del file del certificato SSL che contiene la chiave pubblica

    Per ulteriori informazioni, consulta Utilizzo SSL con un'istanza DB Postgres SQL.

    Per scaricare un certificato SSL consulta

  • dbname – Database a cui accedere.

  • user – L'account database cui vuoi accedere.

  • password – Token di autenticazione IAM firmato.

Nota

Non è possibile utilizzare un record DNS Route 53 personalizzato  anziché l'endpoint dell'istanza database per generare il token di autenticazione.

L'esempio seguente mostra l'utilizzo di psql per la connessione. Nell'esempio, psql utilizza la variabile d'ambiente RDSHOST per l'host e la variabile d'ambiente PGPASSWORD per il token generato. Inoltre, /sample_dir/ è il percorso completo al file del certificato SSL che contiene la chiave pubblica.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )" psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/global-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"

Se desideri connetterti a un'istanza database tramite un proxy, consulta Connessione a un proxy mediante autenticazione IAM.