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
\ --port3306
\ --regionus-west-2
\ --usernamejane_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úblicaPara obtener más información sobre la compatibilidad con SSL/TLS para MariaDB, consulte Compatibilidad con SSL/TLS para instancias de base de datos de MariaDB en Amazon RDS.
Para obtener más información sobre la compatibilidad con SSL/TLS para MySQL, consulte Compatibilidad de SSL/TLS con instancias de bases de datos de MySQL en Amazon RDS.
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 queAWSAuthenticationPlugin
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 --port3306
--regionus-west-2
--usernamejane_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.