Conexión a su instancia con autenticación de IAM desde la línea de comandos: AWS CLI y cliente de MySQL - Amazon Relational Database Service

Conexión a su instancia con autenticación de IAM desde la línea de comandos: AWS CLI y cliente de MySQL

Puede conectarse desde la línea de comando a una instancia de base de datos de Amazon RDScon AWS CLI y la herramienta de línea de comandos de mysql como se describe a continuación.

Requisitos previos

A continuación, se muestran requisitos previos para conectarse al de instancia de base de datos mediante la autenticación de IAM:

nota

Para obtener información sobre cómo conectarse a la base de datos mediante SQL Workbench/J con la autenticación IAM, consulte la publicación de blog Use IAM authentication to connect with SQL Workbench/J to Aurora MySQL or Amazon RDS for MySQL.

Generación de un token de autenticación de IAM

En el siguiente ejemplo se muestra cómo obtener un token de autenticación firmado mediante la 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

En el ejemplo, los parámetros son los siguientes:

  • --hostname: el nombre de host de la instancia a los que desea obtener acceso.

  • --port: el número de puerto que se utiliza para conectarse a la instancia.

  • --region: la región de AWS en la que se ejecuta la instancia

  • --username: la cuenta de base de datos a la que desea acceder.

Los primeros caracteres del token tienen un aspecto similar al siguiente.

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

No puede utilizar un registro DNS personalizado de Route 53 en lugar del punto de conexión de la instancia de base de datos para generar el token de autenticación.

Conexión a su instancia

El formato general para conectarse se muestra a continuación.

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

Los parámetros son los siguientes:

  • --host: el nombre de host de la instancia a los que desea obtener acceso.

  • --port: el número de puerto que se utiliza para conectarse a la instancia.

  • --ssl-ca: la ruta completa al archivo de certificado SSL que contiene la clave pública

    Para obtener más información sobre la compatibilidad con SSL/TLS para MariaDB, consulte Uso de SSL/TLS con una instancia de base de datos MariaDB.

    Para obtener más información sobre la compatibilidad con SSL/TLS para MySQL, consulte Uso de SSL/TLS con una instancia de base de datos MySQL.

    Para descargar un certificado SSL, consulte Uso de SSL/TLS para cifrar una conexión a una instancia o clúster de base de datos.

  • --enable-cleartext-plugin: un valor que especifica que AWSAuthenticationPlugin debe usarse para esta conexión.

    Si está utilizando un cliente MariaDB, la opción --enable-cleartext-plugin no es necesaria.

  • --user: la cuenta de base de datos a la que desea acceder.

  • --password: un token de autenticación de IAM firmado.

El token de autenticación consta de varios cientos de caracteres. Puede ser difícil de tratar en la línea de comando. Una forma de solucionar esto es guardar el token en una variable de entorno y, a continuación, usar esa variable al conectarse. En el siguiente ejemplo se muestra una forma de realizar esta alternativa. En el ejemplo, /sample_dir/ es la ruta completa al archivo de certificado SSL que contiene la clave pública.

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

Al conectarse mediante AWSAuthenticationPlugin, la conexión está protegida mediante SSL. Para verificar esto, escriba lo siguiente en el símbolo del sistema mysql>.

show status like 'Ssl%';

En las siguientes líneas de la salida aparecen más detalles.

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

Si desea conectarse a una instancia de base de datos a través de un proxy, consulte Conexión a un proxy mediante autenticación de IAM.