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

Gestión de claves SSL y cifrado de datos MySQL en tránsito

Las bases de datos suelen funcionar en un entorno seguro. Puede ser un centro de datos con una VLAN dedicada para el tráfico de la base de datos. Puede ser una VPC en EC2. Si su red se extiende a través de múltiples centros de datos en diferentes regiones, generalmente usaría algún tipo de red privada virtual o túnel SSH para conectar estas ubicaciones de manera segura. Dado que la privacidad y la seguridad de los datos son temas candentes en estos días, es posible que se sienta mejor con una capa adicional de seguridad.

MySQL admite SSL como un medio para cifrar el tráfico entre servidores MySQL (replicación) y entre servidores MySQL y clientes. Si usa el clúster de Galera, hay funciones similares disponibles:tanto la comunicación dentro del clúster como las conexiones con los clientes se pueden cifrar mediante SSL.

Una forma común de implementar el cifrado SSL es usar certificados autofirmados. La mayoría de las veces, no es necesario comprar un certificado SSL emitido por la Autoridad de Certificación. Cualquiera que haya pasado por el proceso de generar un certificado autofirmado probablemente estará de acuerdo en que no es el proceso más sencillo; la mayoría de las veces, termina buscando en Internet para encontrar procedimientos e instrucciones sobre cómo hacerlo. Esto es especialmente cierto si usted es un DBA y solo pasa por este proceso cada pocos meses o incluso años. Es por eso que agregamos una función ClusterControl para ayudarlo a administrar las claves SSL en su clúster de base de datos. En esta publicación de blog, utilizaremos ClusterControl 1.5.1.

Gestión de claves en el ClusterControl

Puede ingresar a Administración de claves yendo a Menú lateral -> Administración de claves sección.

Se le presentará la siguiente pantalla:

Puede ver dos certificados generados, uno es una CA y el otro es un certificado normal. Para generar más certificados, cambie a 'Generar clave pestaña:

Un certificado se puede generar de dos maneras:primero puede crear una CA autofirmada y luego usarla para firmar un certificado. O puede ir directamente a 'Certificados y clave de cliente/servidor ' pestaña y crear un certificado. La CA requerida se creará para usted en segundo plano. Por último, pero no menos importante, puede importar un certificado existente (por ejemplo, un certificado que compró de una de las muchas empresas que venden certificados SSL).

Para hacerlo, debe cargar su certificado, clave y CA en su nodo ClusterControl y almacenarlos en el directorio /var/lib/cmon/ca. Luego, complete las rutas a esos archivos y se importará el certificado.

Si decidió generar una CA o generar un nuevo certificado, hay otro formulario para completar:debe pasar detalles sobre su organización, nombre común, correo electrónico, elegir la longitud de la clave y la fecha de vencimiento.

Una vez que tenga todo en su lugar, puede comenzar a usar sus nuevos certificados. ClusterControl actualmente admite la implementación de cifrado SSL entre clientes y bases de datos MySQL y cifrado SSL del tráfico dentro del clúster en Galera Cluster. Planeamos ampliar la variedad de implementaciones admitidas en futuras versiones de ClusterControl.

Cifrado SSL completo para Galera Cluster

Ahora supongamos que tenemos nuestras claves SSL listas y tenemos un Galera Cluster, que necesita encriptación SSL, implementado a través de nuestra instancia de ClusterControl. Podemos asegurarlo fácilmente en dos pasos.

Primero:cifre el tráfico de Galera usando SSL. Desde la vista de su clúster, una de las acciones del clúster es 'Habilitar el cifrado SSL Galera '. Se te presentarán las siguientes opciones:

Si no tiene un certificado, puede generarlo aquí. Pero si ya generó o importó un certificado SSL, debería poder verlo en la lista y usarlo para cifrar el tráfico de replicación de Galera. Tenga en cuenta que esta operación requiere un reinicio del clúster:todos los nodos deberán detenerse al mismo tiempo, aplicar los cambios de configuración y luego reiniciar. Antes de continuar aquí, asegúrese de estar preparado para un tiempo de inactividad mientras se reinicia el clúster.

Una vez que se ha asegurado el tráfico dentro del clúster, queremos cubrir las conexiones cliente-servidor. Para hacer eso, elija 'Habilitar cifrado SSL ' trabajo y verá el siguiente cuadro de diálogo:

Es bastante similar:puede elegir un certificado existente o generar uno nuevo. La principal diferencia es que para aplicar el cifrado cliente-servidor, no se requiere tiempo de inactividad; bastará con un reinicio continuo. Una vez reiniciado, encontrará un icono de candado justo debajo del host cifrado en la Descripción general. página:

La etiqueta 'Galera ' significa que el cifrado de Galera está habilitado, mientras que 'SSL ' significa que el cifrado cliente-servidor está habilitado para ese host en particular.

Por supuesto, habilitar SSL en la base de datos no es suficiente:debe copiar los certificados a los clientes que se supone que deben usar SSL para conectarse a la base de datos. Todos los certificados se pueden encontrar en el directorio /var/lib/cmon/ca en el nodo ClusterControl. También debe recordar cambiar las concesiones para los usuarios y asegurarse de haberles agregado REQUIERE SSL si desea aplicar solo conexiones seguras.

Esperamos que estas opciones le resulten fáciles de usar y le ayuden a proteger su entorno MySQL. Si tiene alguna pregunta o sugerencia con respecto a esta función, nos encantaría saber de usted.