Conexión a su clúster de bases de datos con autenticación de IAM desde la línea de comandos: AWS CLI y cliente de MySQL - Amazon Aurora

Conexión a su clúster de bases de datos 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 un clúster de bases de datos de Auroracon 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 clúster de 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 del clúster de bases de datos a los que desea obtener acceso.

  • --port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

  • --region: la región de AWS en la que se ejecuta el clúster de bases de datos

  • --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 ni un punto de conexión personalizado de Aurora en lugar del punto de conexión de el clúster de base de datos para generar el token de autenticación.

Conexión a su clúster de bases de datos

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 del clúster de bases de datos a los que desea obtener acceso.

  • --port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

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

    Para obtener más información, consulte Uso de TLS con clústeres de base de datos de Aurora MySQL.

    Para descargar un certificado SSL, consulte Uso de SSL/TLS para cifrar una conexión a un 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="mysqlcluster.cluster-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 un clúster de base de datos a través de un proxy, consulte Conexión a un proxy mediante autenticación de IAM.