Proteger as conexões de instância de banco de dados do MySQL - Amazon Relational Database Service

Proteger as conexões de instância de banco de dados do MySQL

É possível gerenciar a segurança de suas instâncias de banco de dados do MySQL.

Segurança do MySQL no Amazon RDS

A segurança de instâncias de bancos de dados MySQL é gerenciada em três níveis:

  • O AWS Identity and Access Management controla quem pode executar ações de gerenciamento do Amazon RDS em instâncias de banco de dados. Ao se conectar à AWS usando credenciais do IAM, sua conta do IAM deve ter políticas do IAM que concedam as permissões necessárias para executar operações de gerenciamento do Amazon RDS. Para ter mais informações, consulte Gerenciamento de identidade e acesso no Amazon RDS.

  • Quando você cria uma instância de banco de dados, é necessário usar um grupo de segurança da VPC para controlar quais dispositivos e instâncias do Amazon EC2 podem abrir conexões com o endpoint e a porta da instância de banco de dados. É possível estabelecer essas conexões usando o Transport Layer Security (TLS) e o Secure Sockets Layer (SSL). Além disso, as regras de firewall em sua empresa podem controlar se dispositivos sendo executados nela podem abrir conexões na instância de banco de dados.

  • Para autenticar o login e as permissões para uma instância de banco de dados MySQL, siga uma das seguintes abordagens, ou uma combinação delas.

    Você pode seguir a mesma abordagem de uma instância autônoma do MySQL. Comandos, como CREATE USER, RENAME USER, GRANT, REVOKE e SET PASSWORD funcionam exatamente como em bancos de dados locais, assim como modificando diretamente tabelas de esquema de banco de dados. No entanto, modificar diretamente as tabelas do esquema do banco de dados não é prática recomendada e, desde o RDS para MySQL versão 8.0.36, isso não é aceito. Para obter informações, consulte Access control and account management na documentação do MySQL.

    Você também pode usar a autenticação de banco de dados do IAM. Com a autenticação de banco de dados do IAM, é possível autenticar sua instância de banco de dados usando um usuário do IAM ou um perfil do IAM e um token de autenticação. Um token de autenticação é um valor exclusivo, gerado usando o processo de assinatura Signature Version 4. Ao usar a autenticação de banco de dados do IAM, você pode usar as mesmas credenciais para controlar o acesso aos seus recursos e bancos de dados da AWS. Para ter mais informações, consulte Autenticação do banco de dados do IAM para MariaDB, MySQL e PostgreSQL.

    Outra opção é a autenticação Kerberos para RDS para MySQL. A instância de banco de dados funciona com o AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para habilitar a autenticação Kerberos. Quando os usuários são autenticados por uma instância de banco de dados MySQL associada ao domínio de confiança, as solicitações de autenticação são encaminhadas. As solicitações encaminhadas vão para o diretório de domínio que você cria com o AWS Directory Service. Para ter mais informações, consulte Usar a autenticação Kerberos do Amazon RDS para Microsoft SQL Server.

Quando você cria uma instância de banco de dados do Amazon RDS, o usuário mestre apresenta os seguintes privilégios padrão:

Versão do mecanismo Privilégio do sistema Função do banco de dados

RDS para MySQL versão 8.0.36 e posterior

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE ROLE, DROP ROLE, APPLICATION_PASSWORD_ADMIN, ROLE_ADMIN, SET_USER_ID, XA_RECOVER_ADMIN

rds_superuser_role

Para obter mais informações sobre o rds_superuser_role, consulte Modelo de privilégios baseados em perfis para o RDS para MySQL.

Versões do RDS para MySQL anteriores à 8.0.36

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, REPLICATION SLAVE

nota

Embora seja possível excluir o usuário mestre na instância de banco de dados, isso não é recomendado. Para recriar o usuário mestre, use a operação da API do RDS ModifyDBInstance ou o comando da AWS CLI modify-db-instance e especifique uma nova senha de usuário mestre com o parâmetro apropriado. Se o usuário mestre não existir na instância, ele será criado com a senha especificada.

Para fornecer serviços de gerenciamento para cada instância de banco de dados, o usuário rdsadmin é criado quando a instância de banco de dados é criada. Tentar descartar, renomear ou alterar a senha, ou alterar os privilégios da conta rdsadmin resultará em um erro.

Para permitir o gerenciamento da instância de banco de dados, os comandos kill e kill_query padrão foram restritos. Os comandos do Amazon RDS rds_kill e rds_kill_query são fornecidos para permitir encerrar sessões ou consultas de usuários em instâncias de banco de dados.