Protección de las conexiones de instancias de base de datos MySQL - Amazon Relational Database Service

Protección de las conexiones de instancias de base de datos MySQL

Administre la seguridad de las instancias de base de datos MySQL.

Seguridad de MySQL en Amazon RDS

La seguridad de las instancias de bases de datos de MySQL se administra en tres niveles:

  • AWS Identity and Access Management controla quién puede realizar acciones de administración de Amazon RDS en las instancias de base de datos. Cuando se conecta a AWS con credenciales de IAM, la cuenta de IAM debe tener políticas de IAM que concedan los permisos necesarios para realizar operaciones de administración de Amazon RDS. Para obtener más información, consulte Administración de la identidad y el acceso en Amazon RDS.

  • Al crear una instancia de base de datos, se usa un grupo de seguridad de VPC para controlar qué dispositivos e instancias de Amazon EC2 pueden abrir conexiones al punto de conexión y al puerto de la instancia de base de datos. Estas conexiones se pueden establecer mediante la capa de sockets seguros (SSL) y la seguridad de la capa de transporte (TLS). Además, las reglas del firewall de su compañía pueden controlar si los dispositivos que se ejecutan en ella pueden abrir conexiones a la instancia de base de datos.

  • Para autenticar el inicio de sesión y los permisos de una instancia de base de datos MySQL, puede utilizar cualquiera de los siguientes procedimientos o una combinación de ellos.

    Puede seguir el mismo procedimiento que con una instancia independiente de MySQL. Los comandos como CREATE USER, RENAME USER, GRANT, REVOKE y SET PASSWORD funcionan de la misma forma que en las bases de datos locales, al igual que la modificación directa de las tablas de los esquemas de las bases de datos. Sin embargo, modificar directamente las tablas del esquema de la base de datos no es una práctica recomendada y, a partir de la versión 8.0.36 de RDS para MySQL, no se admite. Para obtener más información, consulte Access Control and Account Management en la documentación de MySQL.

    También puede utilizar la autenticación de base de datos de IAM. Si se utiliza la autenticación de bases de datos de IAM, la autenticación en la instancia de base de datos se realiza mediante un usuario o un rol de IAM y un token de autenticación. Un token de autenticación es un valor único que se genera utilizando el proceso de firma Signature Version 4. Mediante la autenticación de base de datos de IAM, puede utilizar las mismas credenciales para controlar el acceso a AWS los recursos y a las bases de datos. Para obtener más información, consulte Autenticación de bases de datos de IAM para MariaDB, MySQL, and PostgreSQL.

    Otra opción es la autenticación Kerberos para RDS para MySQL. La instancia de base de datos funciona con AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para habilitar la autenticación Kerberos. Cuando los usuarios se autentican con una instancia de base de datos MySQL unida al dominio de confianza, las solicitudes de autenticación se reenvían. Las solicitudes reenviadas van al directorio de dominio con el que crea AWS Directory Service. Para obtener más información, consulte Uso de la autenticación de Kerberos de Amazon RDS para Microsoft SQL Server.

Cuando se crea una instancia de base de datos de Amazon RDS, el usuario maestro tiene los siguientes privilegios predeterminados:

Engine version (Versión del motor) Privilegio del sistema Rol de base de datos

RDS para MySQL versión 8.0.36 y versiones posteriores

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 obtener más información acerca de rds_superuser_role, consulte Modelo de privilegios basado en roles de RDS para MySQL.

Versiones de RDS para MySQL anteriores a 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

Aunque es posible eliminar el usuario maestro de la instancia de base de datos, no se recomienda. Para volver a crear el usuario maestro, utilice la operación ModifyDBInstance de la API de RDS o el comando modify-db-instance de la AWS CLI y especifique una nueva contraseña del usuario maestro con el parámetro apropiado. Si no existe el usuario maestro en la instancia, se crea con la contraseña especificada.

Para proporcionar servicios de administración para cada instancia de base de datos, se crea el usuario rdsadmin al crear la instancia de base de datos. Al intentar eliminar, cambiar de nombre, cambiar la contraseña o cambiar los privilegios de la cuenta rdsadmin, se producirá un error.

Para permitir la administración de la instancia de base de datos, los comandos estándar kill y kill_query se han restringido. Se proporcionan los comandos de Amazon RDS rds_kill y rds_kill_query para permitir finalizar las sesiones de usuario o las consultas en las instancias de bases de datos.