Conectando-se à sua instância de banco de dados usando a autenticação do IAM na linha de comando: AWS CLI e cliente mysql
Você pode se conectar de uma linha de comando a uma instância de banco de dados do Amazon RDS com a AWS CLI e a ferramenta da linha de comando mysql
, conforme descrito a seguir.
Pré-requisitos
Veja a seguir os pré-requisitos para se conectar à instância de banco de dados usando a autenticação do IAM:
nota
Para obter informações sobre como se conectar ao banco de dados usando o SQL Workbench/J com autenticação do IAM, consulte a publicação do blog Use IAM authentication to connect with SQL Workbench/J to Aurora MySQL or Amazon RDS para MySQL
Gerar um token de autenticação do IAM
O exemplo a seguir mostra como obter um token de autenticação assinado usando a AWS CLI.
aws rds generate-db-auth-token \ --hostname
rdsmysql.123456789012.us-west-2.rds.amazonaws.com
\ --port3306
\ --regionus-west-2
\ --usernamejane_doe
No exemplo, os parâmetros são os seguintes:
-
--hostname
: o nome do host da instância de banco de dados que você deseja acessar -
--port
: o número da porta usada para se conectar à instância de banco de dados -
--region
: a região da AWS na qual a instância do banco de dados está em execução. -
--username
: a conta de banco de dados que você deseja acessar
Os primeiros caracteres do token são parecidos com os seguintes.
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
Não é possível usar um registro DNS personalizado do Route 53 em vez do endpoint do da instância de banco de dados para gerar o token de autenticação.
Conexão à instância de banco de dados
O formato geral para se conectar é mostrado a seguir.
mysql --host=
hostName
--port=portNumber
--ssl-ca=full_path_to_ssl_certificate
--enable-cleartext-plugin --user=userName
--password=authToken
Os parâmetros são os seguintes:
-
--host
: o nome do host da instância de banco de dados que você deseja acessar -
--port
: o número da porta usada para se conectar à instância de banco de dados -
--ssl-ca
: o caminho completo para o arquivo de certificado SSL que contém a chave públicaPara ter mais informações sobre o suporte SSL/TLS para o MariaDB, consulte Suporte de SSL/TLS para instâncias de banco de dados do MariaDB no Amazon RDS.
Para ter mais informações sobre o suporte SSL/TLS para o MySQL, consulte Suporte do SSL/TLS para instâncias de banco de dados do MySQL no Amazon RDS.
Para baixar um certificado SSL, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados.
-
--enable-cleartext-plugin
: um valor que especifica que oAWSAuthenticationPlugin
deve ser usado para essa conexãoSe você estiver usando um cliente MariaDB, a opção
--enable-cleartext-plugin
não será necessária. -
--user
: a conta de banco de dados que você deseja acessar -
--password
: um token de autenticação do IAM assinado
Um token de autenticação é composto de várias centenas de caracteres. Ele pode ser incômodo para a linha de comando. Um modo de contornar isso é salvar o token em uma variável de ambiente, e usar essa variável quando você se conectar. O exemplo a seguir mostra um modo de executar essa solução alternativa. No exemplo, /sample_dir/
corresponde ao caminho completo do arquivo de certificado SSL contendo a chave 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
Quando você se conecta usando o AWSAuthenticationPlugin
, a conexão é protegida usando SSL. Para verificar isso, digite o seguinte no prompt de comando mysql>
.
show status like 'Ssl%';
As seguintes linhas na saída mostram mais detalhes.
+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+
Se você quiser se conectar a uma instância de banco de dados por meio de um proxy, consulte Conectar-se a um proxy usando autenticação do IAM.