MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Sécurisation des sauvegardes MySQL :un guide

Si vous avez déjà utilisé MySQL, il y a de fortes chances que vous ayez effectué des sauvegardes de votre base de données. Si vous avez effectué des sauvegardes de votre base de données, il y a de fortes chances que vous ayez pensé au moins une fois à la manière dont vous pourriez les sécuriser. Dans cet article de blog, nous allons vous dire comment faire exactement cela.

Pourquoi devriez-vous sécuriser vos sauvegardes MySQL ?

Avant de vous dire comment vous devez sécuriser vos sauvegardes MySQL, nous devrions probablement vous dire pourquoi vous devez les sécuriser en premier lieu. Qu'entendons-nous même par « sécuriser » vos sauvegardes MySQL ? Les sauvegardes MySQL devraient être sécurisées par défaut, n'est-ce pas ? Malheureusement, tout n'est pas aussi simple qu'il n'y paraît. Pour effectuer et maintenir des sauvegardes MySQL sécurisées, vous devez tenir compte des éléments suivants :

  1. Effectuez vos sauvegardes MySQL en toute sécurité

  2. Stockez en toute sécurité vos sauvegardes MySQL

  3. Transférez vos sauvegardes MySQL en toute sécurité

Évidemment, c'est plus facile à dire qu'à faire, mais nous allons vous donner quelques conseils généraux qui peuvent vous guider dans la bonne direction.

Sécuriser les sauvegardes MySQL

  1. Pour prendre en toute sécurité vos sauvegardes MySQL en utilisant, par exemple, mysqldump, pensez à mettre le nom d'utilisateur et le mot de passe de votre Utilisateur MySQL à l'intérieur de my.cnf. Vous pouvez même créer un fichier .my.cnf dans votre répertoire personnel, y stocker le nom d'utilisateur et le mot de passe, puis utiliser l'option --defaults-extra-file pour indiquer à MySQL de lire ce fichier après le fichier d'options globale :

    [mysqldump]
    user=demo_user
    password=demo_password

    De cette façon, vous n'avez plus besoin de fournir votre mot de passe MySQL lors de l'exécution de mysqldump - en mettant votre nom d'utilisateur et votre mot de passe dans my.cnf, vous rendez votre mot de passe inobservable par quiconque sauf les DBA.

  2. Envisagez de jeter un œil à mysqldump-secure :il s'agit d'un script wrapper compatible POSIX pour mysqldump avec des capacités de cryptage. L'outil peut sauvegarder des bases de données sous forme de fichiers séparés. Les bases de données peuvent également être mises sur liste noire pour ne pas être sauvegardées. L'outil peut également crypter vos bases de données MySQL et il s'auto-valide, ce qui signifie que si quelque chose ne va pas, il vous dira ce qui s'est passé et comment le réparer, donc si vous cherchez une alternative à mysqldump, pensez certainement à lui donner un essayez.

  3. Une fois que vous avez effectué une sauvegarde de vos instances de base de données MySQL ou MariaDB, pensez à la chiffrer. Il y a de fortes chances que les données soient l'un des actifs les plus précieux de votre organisation et en les chiffrant, vous pouvez vous assurer qu'elles sont correctement protégées. Heureusement, le cryptage des sauvegardes MySQL n'est pas très complexe et peut être effectué de plusieurs manières, notamment en cryptant le fichier local et en cryptant la sauvegarde à la volée. Pour chiffrer une copie locale de votre sauvegarde, faites simplement une sauvegarde des données stockées dans MySQL, puis chiffrez-la en utilisant, par exemple, OpenSSL (remplacez le mot de passe par le mot de passe que vous souhaitez utiliser) :

    $ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password

    Votre sauvegarde peut être déchiffrée en exécutant :

    $ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password


    Vous pouvez également envisager de chiffrer vos sauvegardes à la volée. Pour ce faire, en général, vous devez implémenter le chiffrement lors de la génération de la sauvegarde (c'est-à-dire générer la sauvegarde, la compresser et la chiffrer). Voici comment procéder pour MySQL à l'aide de mysqldump (votre sauvegarde s'appellera secure_backup.xb.enc) :

    mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl  enc -aes-256-cbc -k password > encrypted_backup.xb.enc

    Vous pouvez également chiffrer vos sauvegardes à l'aide de ClusterControl :cochez simplement les cases "Utiliser la compression" et (ou) "Activer le chiffrement" dans la dernière étape de la sauvegarde et le tour est joué . Oui, c'est aussi simple que ça !
     

Vous pouvez également jeter un œil à un script shell appelé mysql_secure_installation (ou mariadb_secure_installation si vous utilisez MariaDB). Le script vous permet de :

  • Définissez un mot de passe pour les comptes root de MySQL.

  • Supprimer les comptes root accessibles depuis l'extérieur de l'hôte local.

  • Supprimez tous les comptes d'utilisateurs anonymes et la base de données de test accessibles aux utilisateurs anonymes.

Si vous déployez MySQL ou MariaDB à l'aide de ClusterControl, ce que vous pouvez faire librement avec l'édition communautaire, le processus de déploiement prend automatiquement en charge ces mesures de sécurité.

Résumé

Lorsqu'il s'agit de sécuriser vos sauvegardes MySQL, la liste des choses que vous pouvez faire est assez longue. Nous espérons que cet article de blog vous a donné quelques idées sur ce que vous pouvez faire pour sécuriser vos sauvegardes MySQL ou MariaDB :en général, les sauvegardes peuvent être sécurisées en rendant votre mot de passe inobservable lorsque mysqldump est invoqué, également lors du chiffrement de vos sauvegardes localement ou sur- à la volée.