Quero configurar meu cluster de banco de dados Amazon Aurora provisionado para ser acessível ao público e proteger meu cluster de banco de dados Aurora contra conexões externas.
Breve descrição
Para tornar seu cluster de banco de dados Aurora acessível publicamente, as instâncias no cluster devem ter um endereço IP público e ser executadas em uma sub-rede pública.
Para uma instância de banco de dados Aurora, não é possível escolher uma sub-rede específica. Em vez disso, é preciso escolher um grupo de sub-rede de banco de dados ao criar a instância. Certifique-se de criar um grupo de sub-redes de banco de dados com configurações de rede semelhantes. Por exemplo, crie um grupo de sub-redes de banco de dados para sub-redes públicas e outro para sub-redes privadas.
Depois de configurar a instância de banco de dados para permitir conexões de fora da VPC, é possível usar o TLS para proteger as conexões.
Observação: é uma prática recomendada de segurança não permitir conexões de fora da VPC, a menos que você precise ter acessibilidade pública.
Resolução
Definir a configuração de acesso público para a instância de banco de dados como Sim
A configuração de Acesso público para uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) controla a atribuição de um endereço IP público à instância de banco de dados. Quando você define a configuração como não, a instância de banco de dados não tem um endereço IP público. Quando você define a configuração como sim, a instância de banco de dados tem endereços IP públicos e privados.
Para alterar a configuração de Acesso público da instância de banco de dados para sim, conclua as seguintes etapas:
- Abra o console do Amazon RDS.
- No painel de navegação, escolha Bancos de dados e, em seguida, a instância de banco de dados.
- Selecione Modificar.
- Na seção Conectividade, escolha Configuração adicional e, em seguida, Acesso público.
- Selecione Continuar.
- Na seção Programar modificações, escolha a melhor opção para seu caso de uso.
Observação: a opção Aplicar imediatamente pode causar tempo de inatividade. Para obter mais informações, consulte Usando a configuração de modificações do cronograma.
- Selecione Modificar instância de banco de dados.
Executar a instância de banco de dados em uma sub-rede pública
Para garantir que a sub-rede pública da sua instância de banco de dados tenha acesso à Internet, conclua as etapas a seguir:
- Crie um gateway da internet e conecte-o à VPC.
- No painel de navegação, selecione Sub-redes.
- Verifique se todas as sub-redes no grupo de sub-redes de banco de dados usam uma tabela de rotas com o gateway da internet.
- Se a sub-rede usar a tabela de rotas principal da VPC, adicione a rota 0.0.0.0/0 do gateway da internet. Também é possível criar uma tabela de rotas personalizada com uma rota do gateway da internet e, em seguida, associar a tabela de rotas à sub-rede.
- Para adicionar o endereço IP público de origem do qual você deseja se conectar à instância de banco de dados, configure as regras de entrada do grupo de segurança.
Em Tipo, escolha MySQL/Aurora ou PostgreSQL.
Em Origem, escolha Personalizado e insira manualmente o intervalo CIDR. Ou escolha Meu IP para se conectar à instância de banco de dados a partir da mesma estação de trabalho.
Proteger o cluster de banco de dados de conexões externas à VPC
Use o TLS para criptografar conexões externas a uma VPC porque a transferência de dados acontece pela Internet. Para confirmar que você está usando o mais alto nível de segurança, use o parâmetro ssl-ca para passar o certificado da autoridade de certificação (CA) e, em seguida, ative a validação do nome do host.
Para testar a conexão do TLS, execute o seguinte comando referente à versão do Aurora que você usa.
Edição do Amazon Aurora compatível com MySQL 5.6
mysql -h test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert
Observação: substitua test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com pelo endpoint do cluster. Substitua test_user pelo seu nome de usuário. Substitua rds-combined-ca-bundle.pem pelo caminho da sua CA.
Compatível com Amazon Aurora MySQL 5.7 e versões posteriores
mysql -h test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY
Observação: substitua test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com pelo endpoint do cluster. Substitua test_user pelo seu nome de usuário. Substitua rds-combined-ca-bundle.pem pelo caminho da sua CA.
Edição do Amazon Aurora compatível com PostgreSQL
psql -h test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=test_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"
Observação: substitua test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com pelo endpoint do cluster. Substitua 5432 pela porta do seu cluster. Substitua postgres pelo nome de usuário do banco de dados Substitua test_user pelo seu nome de usuário. Substitua rds-combined-ca-bundle.pem pelo caminho da sua CA.
Também é possível aplicar TLS para clusters de banco de dados. Para compatibilidade com o Aurora MySQL, defina o TLS no nível do usuário do banco de dados. Para compatibilidade com o Aurora PostgreSQL, defina o parâmetro rds.force_ssl como 1.
Informações relacionadas
Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados
Proteger os dados do Aurora PostgreSQL com SSL/TLS
Como faço para me conectar à minha instância de banco de dados do Amazon RDS com um bastion host da minha máquina Linux ou macOS?
Como posso configurar endpoints privados e públicos do Aurora no console do Amazon RDS?