Connessione al di istanze DB utilizzando l'autenticazione IAM dalla riga di comando: AWS CLI e il client mysql - 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 al di istanze DB utilizzando l'autenticazione IAM dalla riga di comando: AWS CLI e il client mysql

Puoi connetterti dalla riga di comando a un cluster DB di istanze Amazon RDS con AWS CLI lo strumento da riga di comando mysql and 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 SQL Workbench/J con autenticazione IAM, consulta il post del blog Utilizzo dell'autenticazione IAM per connettersi con SQL Workbench/J a Aurora MySQL o Amazon RDS for MySQL.

Generazione di un token di autenticazione IAM

L'esempio seguente mostra come ottenere un token di autenticazione firmato utilizzando AWS CLI.

aws rds generate-db-auth-token \ --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \ --port 3306 \ --region us-west-2 \ --username jane_doe

Nell'esempio, i parametri sono come segue:

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

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

  • --region— La AWS regione in cui è in esecuzione il di istanze DB

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

I primi caratteri del token hanno il seguente aspetto.

rdsmysql.123456789012.us-west-2.rds.amazonaws.com:3306/?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 database

Il formato generale per la connessione è visualizzato di seguito.

mysql --host=hostName --port=portNumber --ssl-ca=full_path_to_ssl_certificate --enable-cleartext-plugin --user=userName --password=authToken

I parametri sono i seguenti:

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

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

  • --ssl-ca – Il percorso completo del file del certificato SSL che contiene la chiave pubblica

    Per ulteriori informazioni sul supporto SSL/TLS per MariaDB, consulta SSL/TLSsupporto per istanze MariaDB DB su Amazon RDS.

    Per ulteriori informazioni sul supporto SSL/TLS per MySQL, consulta SSL/TLSsupporto per le istanze My SQL DB su Amazon RDS.

    Per scaricare un certificato SSL consulta

  • --enable-cleartext-plugin – Valore che specifica che per la connessione deve essere usato AWSAuthenticationPlugin.

    Se si utilizza un client MariaDB, l'opzione --enable-cleartext-plugin non è richiesta.

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

  • --password – Token di autenticazione IAM firmato.

Il token di autenticazione consiste in diverse centinaia di caratteri. Può essere macchinoso nella riga di comando. Una soluzione è di salvare il token in una variabile di ambiente e utilizzare quella variabile durante la connessione. L'esempio seguente mostra un modo per eseguire questa soluzione. Nell'esempio,/sample_dir/ è il percorso completo del file del certificato SSL che contiene la chiave pubblica.

RDSHOST="mysqldb.123456789012.us-east-1.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN

Quando si esegue la connessione utilizzando AWSAuthenticationPlugin, la connessione viene protetta utilizzando SSL. Per verificare ciò, digita quanto segue al prompt del comando mysql>.

show status like 'Ssl%';

Le righe seguenti nell'output mostrano più dettagli.

+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+

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