Configuración de las características de red y seguridad
Entre las características clave de red y seguridad de Azure Database for MySQL: servidor flexible se incluyen el control de acceso, la conectividad, la compatibilidad con Microsoft Entra ID, una plataforma centralizada para administrar identidades, roles y permisos. Los servidores flexibles de MySQL también cifran todos los datos en tránsito de forma predeterminada y habilitan el cifrado de datos en reposo con claves administradas por el cliente o Azure.
Redes
Configurar el acceso a la red
Al crear un servidor flexible de MySQL, puede seleccionar el acceso privado a través de una instancia de Azure Virtual Network o el acceso público para las direcciones IP permitidas con un punto de conexión privado opcional. Después de completar la sección Aspectos básicos, seleccione Siguiente: Redes y, luego, seleccione Acceso público y Punto de conexión privado o Acceso privado:
Si selecciona Acceso público y Punto de conexión privado, puede elegir si quiere exponer la base de datos a Internet. Si la opción Permitir acceso público no está seleccionada, solo se podrá acceder a la base de datos mediante puntos de conexión privados y no con una dirección IP pública. Para mantener el acceso a través de una red de Internet pública, seleccione Permitir acceso público y, después, en la sección Reglas de firewall, agregue direcciones IP o intervalos de direcciones a la lista de permitidos. Para agregar todos los servicios de Azure en la red de Azure a la lista de permitidos, seleccione Permitir acceso público a este servidor desde cualquier servicio de Azure dentro de Azure.
Además del acceso público, o en lugar de este, puede configurar un punto de conexión privado. Dado que Wingtip Toys planea operar una VPN entre su red local y Azure, omitiremos el punto de conexión privado. Para obtener más información sobre cómo configurar un vínculo privado, consulte la documentación de referencia.
Para permitir solo las conexiones desde la red virtual, seleccione Acceso privado y, después, seleccione la suscripción, red virtual y subred más adecuadas. Si no selecciona una red virtual y una subred, se creará una nueva red y una nueva subred.
Por último, debe configurar la integración de DNS privada para conectarse con un nombre de dominio completo en lugar de una dirección IP, que podría cambiar. Seleccione una zona DNS existente o deje que Azure cree una automáticamente.
Configurar el cifrado en tránsito
De forma predeterminada, los servidores flexibles de MySQL solo aceptan conexiones cifradas mediante la versión 1.2 de TLS (Seguridad de la capa de transporte). Si está desarrollando nuevas aplicaciones que admiten TLS 1.3, se recomienda admitir o incluso aplicar la versión más reciente. Para ello, lleve a cabo los siguientes pasos:
- En Azure Portal, seleccione el servidor flexible de MySQL al que quiere conectarse con TLS 1.3.
- En la sección Parámetros del servidor, escriba tls_version en la barra de búsqueda con los filtros Principal o Todo.
- En la lista desplegable VALOR, seleccione TLSv1.2 o TLSv1.3 y, después, seleccione Guardar.
También puede permitir conexiones sin cifrar desactivando el valor del parámetro require_secure_transport
, aunque esto no se recomienda a menos que sea estrictamente necesario.
Microsoft Defender for Cloud
Microsoft Defender for Cloud es una manera rentable de detectar y alertar sobre actividades anómalas o sospechosas en la base de datos. Para habilitarlo, siga estos pasos:
En Azure Portal, seleccione el servidor flexible de MySQL que quiere proteger con Defender.
En la sección Microsoft Defender for Cloud, seleccione Habilitar.
Para obtener más información sobre Defender, incluida la configuración de alertas, consulte la documentación de referencia.
Habilitación y conexión mediante la autenticación de Microsoft Entra ID
Antes de comenzar, necesita una identidad administrada por el usuario (UMI) configurada correctamente. La identidad necesita el rol Lectores de directorio o estos permisos individuales: User.Read.All, GroupMember.Read.All y Application.Read.ALL. Para obtener más información sobre cómo agregar estos permisos, consulte este tutorial.
Para habilitar la autenticación de Microsoft Entra ID para un servidor flexible de Azure Database for MySQL, siga estos pasos:
En Azure Portal, seleccione el servidor flexible de MySQL al que quiere conectarse mediante Microsoft Entra ID.
En la sección Seguridad, seleccione Autenticación.
En el encabezado Asignar acceso a, seleccione una de las siguientes opciones: La Autenticación solo de Microsoft Entra (deshabilita el inicio de sesión nativo de usuario y contraseña de MySQL) o la autenticación de MySQL y Microsoft Entra (permite inicios de sesión nativos de MySQL y Microsoft Entra).
En el encabezado Seleccionar identidad, seleccione la identidad administrada por el usuario mencionada anteriormente en esta unidad.
Seleccione un usuario o grupo de Microsoft Entra para que sea el administrador de Microsoft Entra. Si selecciona un grupo, todos los miembros del grupo serán administradores. Solo puede haber un usuario o un grupo administrador y seleccionar otro reemplaza al administrador anterior.
Con Microsoft Entra ID habilitado, ahora puede conectarse al servidor flexible de MySQL mediante la autenticación de Microsoft Entra ID siguiendo los pasos a continuación.
Autentique un shell con Azure. Si usa Azure Cloud Shell, la identidad ya está configurada en la sesión, por lo que no es necesario iniciar sesión. Si usa un terminal no autenticado, ejecute los siguientes comandos:
az login az account set --subscription <subscription_id>
Ejecute el siguiente comando en un shell autenticado para recuperar un token de acceso:
az account get-access-token --resource-type oss-rdbms
Para iniciar sesión, copie el token de acceso presentado y úselo como contraseña. Para pasar el token de acceso al cliente de MySQL directamente, en Linux, ejecute el siguiente comando:
mysql -h mydb.mysql.database.azure.com \ --user user@tenant.onmicrosoft.com \ --enable-cleartext-plugin \ --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
Si usa PowerShell, ejecute el comando siguiente:
mysql -h mydb.mysql.database.azure.com \ --user user@tenant.onmicrosoft.com \ --enable-cleartext-plugin \ --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)
Al usar otros clientes como MySQL Workbench, solo tiene que pegar el token de acceso en el campo de contraseña.
Cifrado de datos en reposo con claves administradas por el cliente
Puede configurar el cifrado en reposo mediante Azure Portal o mediante la CLI de Azure. Pero para poder habilitar el cifrado con claves administradas por el cliente, debe comprobar que se cumplen los siguientes requisitos previos:
Identidad administrada por el usuario (UMI). Necesita una UMI para que la base de datos acceda al almacén de claves.
Permisos. Configure el acceso basado en roles (IAM) o una directiva de acceso del almacén y conceda los permisos siguientes a la UMI: obtener, enumerar, encapsular clave y desencapsular clave.
Habilitar [eliminación temporal](/azure/key-vault/general/soft-delete-overview" /l "soft-delete-behavior). La pérdida accidental del acceso a una clave de cifrado podría provocar una pérdida de datos permanente. Habilite la eliminación temporal como una capa de protección. Cuando se usa Azure Portal para crear un nuevo almacén de claves, la eliminación temporal está habilitada de forma predeterminada.
Si conoce el nombre del almacén, pero no el identificador, puede buscarlo ejecutando lo siguiente:
az keyvault show --name $KEY_VAULT_NAME
Para habilitar la eliminación temporal en un almacén existente, ejecute:
az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=true
Habilitar la protección de purga. Una clave eliminada temporalmente todavía se puede purgar incorrectamente antes de que finalice el período de retención debido a un error del usuario o del código. El uso de la protección de purga establece un período de retención para los objetos eliminados antes de quitarlos de forma permanente.
Ahora puede usar Azure Portal o la CLI de Azure para configurar la clave administrada por el cliente para cifrar los datos en reposo.
Si usa Azure Portal:
Vaya a la instancia de servidor flexible y, en Seguridad, seleccione Cifrado de datos.
En Cifrado de datos, elija + Seleccionar. En el cuadro de diálogo Seleccionar una identidad administrada asignada por el usuario, seleccione la identidad administrada asignada por el usuario identificada en los requisitos previos, seleccione la identidad y, después, seleccione Agregar.
Después, seleccione especifique un identificador de clave y escriba el identificador; o bien, en el cuadro de diálogo Seleccionar clave, seleccione la clave especificando el identificador o seleccionando un almacén de claves y una clave.
Seleccione Guardar.
Si usa la CLI de Azure, ejecute el siguiente comando:
az mysql flexible-server update --resource-group $RESOURCE_GROUP --name $TEST_SERVER --key $KEY_IDENTIFIER --identity $IDENTITY