sql >> Base de Datos >  >> RDS >> MariaDB

Protección de copias de seguridad de MySQL:una guía

Si alguna vez usó MySQL, es probable que haya realizado copias de seguridad de su base de datos. Si realizó copias de seguridad de su base de datos, es probable que al menos una vez haya pensado en cómo protegerlas. En esta publicación de blog, le diremos cómo hacer exactamente eso.

¿Por qué debería proteger sus copias de seguridad de MySQL?

Antes de que le digamos cómo debe proteger sus copias de seguridad de MySQL, probablemente deberíamos decirle por qué debería protegerlas en primer lugar. ¿Qué queremos decir con "asegurar" sus copias de seguridad de MySQL? Las copias de seguridad de MySQL deberían ser seguras de forma predeterminada, ¿verdad? Desafortunadamente, no todo es tan simple como parece. Para realizar y mantener copias de seguridad seguras de MySQL, debe tener en cuenta lo siguiente:

  1. Realice copias de seguridad de MySQL de forma segura

  2. Almacene de forma segura sus copias de seguridad de MySQL

  3. Transfiere de forma segura tus copias de seguridad de MySQL

Obviamente, es más fácil decirlo que hacerlo, pero le brindaremos algunos consejos generales que pueden guiarlo en la dirección correcta.

Proteger las copias de seguridad de MySQL

  1. Para realizar de forma segura sus copias de seguridad de MySQL utilizando, por ejemplo, mysqldump, considere poner el nombre de usuario y la contraseña de su Usuario de MySQL dentro de my.cnf. Incluso puede crear un archivo .my.cnf en su directorio de inicio, almacenar el nombre de usuario y la contraseña allí, luego usar la opción --defaults-extra-file para decirle a MySQL que lea este archivo después del archivo de opciones globales:

    [mysqldump]
    user=demo_user
    password=demo_password

    De esta manera, ya no necesitará proporcionar su contraseña de MySQL cuando ejecute mysqldump; al colocar su nombre de usuario y contraseña dentro de my.cnf, hará que su contraseña no sea visible para nadie más que para los administradores de bases de datos.

  2. Considere echar un vistazo a mysqldump-secure:es un script contenedor compatible con POSIX para mysqldump con capacidades de cifrado. La herramienta puede respaldar bases de datos como archivos separados. Las bases de datos también se pueden incluir en la lista negra para que no se realicen copias de seguridad. La herramienta también puede cifrar sus bases de datos MySQL y también se autovalida, lo que significa que si algo sale mal, le dirá qué sucedió y cómo solucionarlo, por lo que si está buscando una alternativa a mysqldump, definitivamente considere darle una prueba.

  3. Una vez que haya realizado una copia de seguridad de sus instancias de base de datos MySQL o MariaDB, considere cifrarla. Lo más probable es que los datos sean uno de los activos más valiosos para su organización y, al cifrarlos, puede asegurarse de que estén protegidos adecuadamente. Afortunadamente, encriptar las copias de seguridad de MySQL no es muy complejo y se puede hacer de varias maneras, incluida la encriptación del archivo local y la encriptación de la copia de seguridad sobre la marcha. Para cifrar una copia local de su copia de seguridad, simplemente haga una copia de seguridad de los datos almacenados en MySQL, luego cifre usando, por ejemplo, OpenSSL (reemplace la contraseña con la contraseña que desea usar):

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

    Su copia de seguridad se puede descifrar ejecutando:

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


    También puede considerar cifrar sus copias de seguridad sobre la marcha. Para hacerlo, en general, deberá implementar el cifrado cuando se genera la copia de seguridad (es decir, generar la copia de seguridad, comprimirla y cifrarla). A continuación, le mostramos cómo hacerlo para MySQL usando mysqldump (su copia de seguridad se llamará encrypted_backup.xb.enc):

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

    También puede cifrar sus copias de seguridad usando ClusterControl:simplemente marque las casillas "Usar compresión" y (o) "Habilitar cifrado" en la última etapa de la copia de seguridad y listo. . Sí, ¡así de fácil!
     

También es posible que desee echar un vistazo a un script de shell llamado mysql_secure_installation (o mariadb_secure_installation si está utilizando MariaDB). El script le permite:

  • Establezca una contraseña para las cuentas raíz de MySQL.

  • Elimine las cuentas raíz a las que se puede acceder desde fuera del host local.

  • Elimine cualquier cuenta de usuario anónimo y la base de datos de prueba a la que pueden acceder los usuarios anónimos.

Si está implementando MySQL o MariaDB usando ClusterControl, algo que puede hacer libremente con Community Edition, el proceso de implementación se ocupa automáticamente de estas medidas de seguridad.

Resumen

Cuando se trata de proteger sus copias de seguridad de MySQL, la lista de cosas que puede hacer es bastante larga. Esperamos que esta publicación de blog le haya dado algunas ideas sobre lo que puede hacer para proteger sus copias de seguridad de MySQL o MariaDB:en general, las copias de seguridad se pueden proteger haciendo que su contraseña no se pueda observar cuando se invoca mysqldump, también al cifrar sus copias de seguridad localmente o en- la mosca.