Quero usar o proxy do Amazon Relational Database Service (Amazon RDS) para me conectar à minha instância de banco de dados Amazon RDS para MySQL ou ao cluster de banco de dados com uma edição do Amazon Aurora compatível com MySQL.
Resolução
Pré-requisito: seu proxy deve estar na mesma nuvem privada virtual (VPC) do banco de dados. É possível tornar o banco de dados acessível publicamente, mas o proxy não pode ser acessível publicamente.
Crie o proxy e conecte-o à sua instância de banco de dados
Execute as seguintes etapas:
-
Crie credenciais de banco de dados no AWS Secrets Manager.
Observação: ao criar o segredo, use o mesmo nome de usuário e senha do seu banco de dados.
-
(Opcional) Crie uma política do AWS Identity and Access Management (IAM) e um perfil do IAM.
Observação: o Amazon RDS Proxy cria automaticamente um perfil do IAM. No entanto, é possível criar seu próprio perfil do IAM.
-
Crie um proxy.
-
Execute o comando a seguir para verificar se o endpoint do proxy está acessível:
nc -zv proxy_endpoint 3306
Observação: substitua proxy_endpoint pelo endereço do seu servidor de proxy. Execute o comando anterior somente em uma máquina Amazon Elastic Compute Cloud (Amazon EC2) que esteja na mesma VPC do proxy. O comando não é executado em máquinas locais.
Exemplo de saída:
Connection to test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com 3306 port [tcp/mysql] succeeded
-
Execute o comando a seguir para usar o proxy para se conectar à instância de banco de dados do RDS:
mysql -h proxy_endpoint -u username -p
Observação: substitua proxy_endpoint pelo endereço do seu servidor de proxy.
Exemplo de saída:
Server version: 5.7.28-log
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
(opcional) Use o proxy com uma conexão TLS/SSL
Execute as seguintes etapas:
-
Ao criar o proxy, ative a opção Require Transport Layer Security. Também é possível modificar um proxy existente.
Observação: quando você usa um protocolo TLS/SSL, o proxy rejeita conexões de texto sem formatação.
-
Baixe o arquivo Amazon Root CA 1 trust store.pem do Amazon Trust Services:
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
-
Execute o comando a seguir para usar o TLS/SSL para se conectar à instância de banco de dados:
mysql -h test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=REQUIRED --ssl-ca=AmazonRootCA1.pem -p
Ou você pode executar o seguinte comando com o modo TLS/SSL VERIFY_IDENTITY para se conectar à instância de banco de dados:
mysql -h test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=AmazonRootCA1.pem -p
Observação: o proxy usa certificados curinga. Se você usar o cliente MySQL para se conectar ao modo TLS/SSL VERIFY_IDENTITY, deverá usar o comando mysql compatível com MySQL 8.0.
Exemplo de saída:
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 12659040
Server version: 5.7.28-log
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Informações relacionadas
Solução de problemas do RDS Proxy
Amazon RDS Proxy