Sécurisation des connexions d'instance de base de données MySQL - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sécurisation des connexions d'instance de base de données MySQL

Vous pouvez mettre en œuvre des mesures de sécurité robustes pour protéger les instances de base de données MySQL contre les accès non autorisés et les menaces potentielles. Les groupes de sécurité, le chiffrement SSL/TLS et l'authentification de base de données IAM fonctionnent ensemble pour créer plusieurs niveaux de sécurité de connexion pour vos instances de base de données MySQL. Ces contrôles de sécurité vous aident à respecter les exigences de conformité, à prévenir les violations de données et à maintenir des canaux de communication sécurisés entre les applications et les bases de données. Vous pouvez sécuriser vos instances de base de données MySQL en chiffrant les données en transit, en limitant l'accès à des plages d'adresses IP spécifiques et en gérant l'authentification des utilisateurs via des rôles IAM plutôt que des mots de passe de base de données.

La sécurité des instances de bases de données MySQL est gérée à trois niveaux :

  • AWS Identity and Access Management contrôle qui peut effectuer des actions de gestion Amazon RDS sur les instances de base de données. Lorsque vous vous connectez à AWS l'aide d'informations d'identification IAM, votre compte IAM doit disposer de politiques IAM qui accordent les autorisations requises pour effectuer les opérations de gestion Amazon RDS. Pour de plus amples informations, veuillez consulter Gestion des identités et des accès pour Amazon RDS.

  • Lorsque vous créez une instance de base de données, vous utilisez un groupe de sécurité VPC pour contrôler quels appareils et EC2 instances Amazon peuvent ouvrir des connexions au point de terminaison et au port de l'instance de base de données. Ces connexions peuvent être établies en utilisant le protocole SSL (Secure Sockets Layer) et le protocole TLS (Transport Layer Security). En outre, les règles de pare-feu de votre entreprise peuvent contrôler si les appareils en cours d'exécution dans votre entreprise peuvent ouvrir des connexions à l'instance de base de données.

  • Pour authentifier la connexion et les autorisations pour une instance de base de données MySQL, vous pouvez adopter l'une des approches suivantes ou une combinaison des deux :

    • Vous pouvez adopter la même approche qu'avec une instance autonome de MySQL. Les commandes telles que CREATE USER, RENAME USER, GRANT, REVOKE et SET PASSWORD fonctionnent de la même façon que dans les bases de données sur site, comme le fait la modification directe des tables du schéma de base de données. Cependant, la modification directe des tables du schéma de base de données n'est pas une bonne pratique, et à partir de la version 8.0.36 de RDS pour MySQL, elle n'est plus prise en charge. Pour de plus amples informations, veuillez consulter Access Control and Account Management dans la documentation MySQL.

    • Vous pouvez également utiliser l'authentification de base de données IAM. L'authentification de base de données IAM vous permet de vous authentifier sur votre instance de base de données à l'aide d'un utilisateur IAM ou d'un rôle IAM et d'un jeton d'authentification. Un jeton d'authentification est une valeur unique qui est générée à l'aide du processus de signature Signature Version 4. L'authentification de base de données IAM vous permet d'utiliser les mêmes informations d'identification pour contrôler l'accès à vos ressources AWS et à vos bases de données. Pour de plus amples informations, veuillez consulter Authentification de base de données IAM pour MariaDB, MySQL et PostgreSQL.

    • Vous pouvez également utiliser l'authentification Kerberos pour RDS for MySQL. L'instance de base de données fonctionne avec AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) pour activer l'authentification Kerberos. Lorsque les utilisateurs s'authentifient avec une instance de base de données MySQL jointe au domaine d'approbation, les demandes d'authentification sont transférées. Les demandes transférées sont redirigées vers le répertoire de domaines que vous avez créé AWS Directory Service. Pour de plus amples informations, veuillez consulter Utilisation Kerberos authentification pour Amazon RDS for My SQL.

Lorsque vous créez une instance de base de données Amazon RDS, l'utilisateur principal a les privilèges par défaut suivants :

Version de moteur Privilège système Rôle de base de données

RDS pour MySQL version 8.4.3 et supérieure

GRANT 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, FLUSH_OPTIMIZER_COSTS, FLUSH_PRIVILEGES, FLUSH_STATUS, FLUSH_TABLES, FLUSH_USER_RESOURCES, ROLE_ADMIN, SENSITIVE_VARIABLES_OBSERVER, SESSION_VARIABLES_ADMIN, SET_ANY_DEFINER, SHOW_ROUTINE, XA_RECOVER_ADMIN

rds_superuser_role

Pour plus d’informations sur rds_superuser_role, consultez Modèle de privilèges basé sur les rôles pour for My RDS SQL.

RDS pour MySQL version 8.0.36 et supérieure

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

Pour plus d’informations sur rds_superuser_role, consultez Modèle de privilèges basé sur les rôles pour for My RDS SQL.

RDS pour les versions de MySQL inférieures à 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

Aucun

Note

Bien qu'il soit possible de supprimer l'utilisateur maître sur l'instance de base de données, il n'est pas recommandé de le faire. Pour recréer l'utilisateur principal, utilisez l'opération Modify DBInstance RDS API ou exécutez la modify-db-instance AWS CLI commande et spécifiez un nouveau mot de passe utilisateur principal avec le paramètre approprié. Si l'utilisateur maître n'existe pas dans l'instance, il est créé avec le mot de passe spécifié.

Pour fournir des services de gestion à chaque instance de base de données, l'utilisateur rdsadmin est créé lors de la création de l'instance de base de données. Les tentatives de supprimer, renommer et modifier le mot de passe du compte rdsadmin, ou d'en modifier les privilèges, génèrent une erreur.

Pour autoriser la gestion de l'instance de base de données, les commandes standard kill et kill_query ont fait l'objet de restrictions. Les commandes Amazon RDS rds_kill et rds_kill_query sont fournies pour vous permettre de mettre fin aux requêtes ou aux sessions utilisateur sur les instances de base de données.