Tutorial: Protección de una base de datos en Azure SQL Database

Se aplica a:Azure SQL Database

En este tutorial, aprenderá a:

  • Crear reglas de firewall de nivel de servidor y de base de datos.
  • Configurar un administrador de Microsoft Entra
  • Administrar el acceso de usuario con la autenticación de SQL, la autenticación de Microsoft Entra y cadenas de conexión seguras
  • Habilitar características de seguridad, como Microsoft Defender para SQL, la auditoría, el enmascaramiento de datos y el cifrado.

Nota:

Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).

Azure SQL Database protege los datos, al permitirle:

  • Limitar el acceso mediante reglas de firewall
  • Usar mecanismos de autenticación que requieran la identidad
  • Usar la autorización con pertenencias y permisos basados en roles
  • Habilitar características de seguridad

Nota:

Instancia administrada de Azure SQL se protege mediante reglas de seguridad de red y puntos de conexión privados, como se describe en Instancia administrada de Azure SQL Database y Arquitectura de conectividad.

Para más información, consulte los artículos Información general sobre las funcionalidades de seguridad de Azure SQL Database y Funcionalidades.

Sugerencia

En este módulo gratuito de Learn se muestra cómo Proteger la base de datos en Azure SQL Database.

Requisitos previos

Para completar el tutorial, asegúrese de que cuenta con estos requisitos previos:

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Inicio de sesión en Azure Portal

Para realizar todos los pasos del tutorial, inicie sesión en Azure Portal.

Creación de reglas de firewall

En Azure, las bases de datos SQL Database están protegidas mediante firewalls. De forma predeterminada, se rechazan todas las conexiones al servidor y a la base de datos. Para más información, consulte Creación de reglas de firewall de nivel de servidor y de base de datos.

Establezca Permitir el acceso a servicios de Azure en OFF (DESACTIVADO) para configurar la opción más segura. A continuación, cree una dirección IP reservada (implementación clásica) para el recurso que tenga que conectar, como una máquina virtual de Azure o un servicio en la nube, y permita solo a esa dirección IP el acceso mediante el firewall. Si usa el modelo de implementación de Resource Manager, es necesaria una dirección IP pública dedicada para cada recurso.

Nota

SQL Database se comunica a través del puerto 1433. Si intenta conectarse desde una red corporativa, es posible que el firewall de la red no permita el tráfico saliente a través del puerto 1433. En ese caso, no puede conectarse al servidor, salvo que el administrador abra el puerto 1433.

Configuración de reglas de firewall de nivel de servidor

Las reglas de firewall de IP en el nivel de servidor se aplican a todas las bases de datos del mismo servidor.

Para configurar una regla de firewall de nivel de servidor:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Nota:

    Copie el nombre completo del servidor (como suservidor.database.windows.net) para usarlo más adelante en el tutorial.

  2. Seleccione Redes en Configuración. Elija la pestaña Acceso público y, después, seleccione Redes seleccionadas en Public network access (Acceso a la red pública) para mostrar la sección Reglas de firewall.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. Seleccione Agregar IP de cliente en la barra de herramientas para agregar la dirección IP actual a la nueva regla de firewall por IP. La regla de firewall de IP puede abrir el puerto 1433 para una única dirección IP o un intervalo de direcciones IP.

  4. Seleccione Aceptar para guardar la configuración del firewall.

Ahora puede conectarse a cualquier base de datos del servidor con la dirección IP o el intervalo de direcciones IP especificados.

Configuración de reglas de firewall para las bases de datos

Las reglas de firewall de nivel de base de datos solo se aplican a bases de datos individuales. La base de datos conservará estas reglas durante una conmutación por error del servidor. Las reglas de firewall de nivel de base de datos solo pueden configurarse mediante instrucciones de Transact-SQL (T-SQL) y únicamente después de haber configurado una regla de firewall de nivel de servidor.

Para configurar una regla de firewall en el nivel de base de datos:

  1. Conéctese a la base de datos, por ejemplo, mediante SQL Server Management Studio.

  2. En el Explorador de objetos, haga clic con el botón derecho en la base de datos y seleccione Nueva consulta.

  3. En la ventana de consulta, agregue esta instrucción y reemplace la dirección IP por su dirección IP pública:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. En la barra de herramientas, seleccione Ejecutar para crear la regla de firewall.

Nota:

También puede crear una regla de firewall de nivel de servidor en SSMS mediante el comando sp_set_firewall_rule, aunque debe estar conectado a la base de datos maestra.

Creación de un administrador de Microsoft Entra

Asegúrese de que usa el dominio administrado de Microsoft Entra ID (anteriormente Azure Active Directory) adecuado. Seleccione el dominio en la esquina superior derecha de Azure Portal. Este proceso confirma que la misma suscripción se usa tanto para Microsoft Entra ID como para el servidor lógico en el que se hospeda el almacenamiento de datos o la base de datos.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Paa configurar el administrador de Microsoft Entra:

  1. En Azure Portal, en la página SQL Server, seleccione Microsoft Entra ID en el menú de recursos y después Establecer administrador para abrir el panel Microsoft Entra ID.

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Importante

    Para realizar esta tarea, debe ser "administrador global".

  2. En el panel Microsoft Entra ID, busque y seleccione el usuario o grupo de Microsoft Entra y elija Seleccionar. Todos los miembros y grupos de la organización de Microsoft Entra aparecen en la lista y las entradas atenuadas no se admiten como administradores de Microsoft Entra. Vea Características y limitaciones de Microsoft Entra.

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Importante

    El control de acceso basado en roles de Azure se aplica solo al portal y no se propaga a SQL Server.

  3. En la parte superior de la página Administrador de Microsoft Entra, seleccione Guardar.

    El proceso de cambio de un administrador puede tardar varios minutos. El nuevo administrador aparecerá en el campo Administrador de Microsoft Entra.

Nota:

Al configurar un administrador de Microsoft Entra, el nombre del nuevo administrador (usuario o grupo) no puede existir como un usuario o inicio de sesión en la base de datos maestra. Si estuviera, se producirá un error en la instalación, se revertirán los cambios y se indicará que ese nombre de administrador ya existe. Como el usuario o inicio de sesión del servidor no forma parte de Microsoft Entra ID, se producirá un error cada vez que se intente conectar el usuario con la autenticación de Microsoft Entra.

Para más información sobre la configuración de Microsoft Entra ID, vea lo siguiente:

Administración del acceso a las bases de datos

Para administrar el acceso de la base de datos, agregue usuarios a la base de datos o permita el acceso de los usuarios con cadenas de conexión segura. Las cadenas de conexión son útiles para las aplicaciones externas. Para más información, vea Administración de inicios de sesión y cuentas de usuario y Autenticación de Microsoft Entra.

Para agregar usuarios, elija el tipo de autenticación de base de datos:

  • Autenticación de SQL, que usa un nombre de usuario y una contraseña para iniciar sesión, y son válidos únicamente en el contexto de una base de datos específica dentro de un servidor.

  • Autenticación de Microsoft Entra, que usa identidades administradas por Microsoft Entra ID

Autenticación SQL

Para agregar un usuario con la autenticación de SQL:

  1. Conéctese a la base de datos, por ejemplo, mediante SQL Server Management Studio.

  2. En el Explorador de objetos, haga clic con el botón derecho en la base de datos y elija Nueva consulta.

  3. En la ventana de consulta, escriba el comando siguiente:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. En la barra de herramientas, seleccione Ejecutar para crear el usuario.

  5. De forma predeterminada, el usuario puede conectarse a la base de datos, pero no tiene permisos para leer o escribir datos. Para conceder estos permisos, ejecute los dos comandos siguientes en una nueva ventana de consulta:

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Nota:

Cree cuentas sin privilegios de administrador en el nivel de base de datos, a menos que haya que ejecutar tareas de administrador tales como crear nuevos usuarios.

Autenticación de Microsoft Entra

Como Azure SQL Database no admite entidades de seguridad de servidor (inicios de sesión) de Microsoft Entra, los usuarios de base de datos creados con cuentas de Microsoft Entra se crean como usuarios de base de datos independientes. Un usuario de base de datos independiente no está asociado a un inicio de sesión en la base de datos master, incluso si existe un inicio de sesión con el mismo nombre. La identidad de Microsoft Entra puede ser una cuenta de usuario individual o un grupo. Para más información, vea Usuarios de base de datos independiente: hacer que la base de datos sea portátil y revise el Tutorial de Microsoft Entra sobre cómo autenticarse con Microsoft Entra ID.

Nota:

Los usuarios de base de datos (a excepción de los administradores) no se pueden crear mediante Azure Portal. Los roles de Microsoft Entra no se propagan a los almacenes de datos, servidores o bases de datos de SQL. Se utilizan solo para administrar los recursos de Azure y no se aplican a los permisos de base de datos.

Por ejemplo, el rol Colaborador de SQL Server no concede acceso para conectarse a una base de datos o a un almacenamiento de datos. Este permiso tiene que concederse dentro de la base de datos mediante instrucciones de T-SQL.

Importante

No se admiten caracteres especiales, como los dos puntos : o la "y" comercial &, en los nombres de usuario de las instrucciones CREATE LOGIN y CREATE USER de T-SQL.

Para agregar un usuario con la autenticación de Microsoft Entra:

  1. Conéctese al servidor de Azure mediante una cuenta de Microsoft Entra con al menos el permiso ALTER ANY USER.

  2. En el Explorador de objetos, haga clic con el botón derecho en la base de datos y seleccione Nueva consulta.

  3. En la ventana de consulta, escriba el siguiente comando y reemplace <Azure_AD_principal_name> por el nombre de entidad de seguridad del usuario de Microsoft Entra o el nombre para mostrar del grupo de Microsoft Entra:

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Nota:

Los usuarios de Microsoft Entra se marcan en los metadatos de la base de datos con el tipo E (EXTERNAL_USER) y el tipo X (EXTERNAL_GROUPS) para grupos. Para obtener más información, consulte sys.database_principals (Transact-SQL).

Cadenas de conexión seguras

Para garantizar una conexión cifrada y segura entre la aplicación cliente y SQL Database, se debe configurar una cadena de conexión para:

  • Solicitar una conexión cifrada.
  • No confiar en el certificado de servidor.

La conexión se establece mediante la Seguridad de la capa de transporte (TLS) y se reduce el riesgo de ataques de tipo "Man in the middle". Las cadenas de conexión están disponibles para cada base de datos y están preconfiguradas para admitir los controladores de cliente como ADO.NET, JDBC, ODBC y PHP. Para información sobre TLS y la conectividad, consulte Consideraciones de TLS.

Para copiar una cadena de conexión segura:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

  2. En la página Información general, haga clic en Mostrar las cadenas de conexión de la base de datos.

  3. Seleccione una pestaña de controlador y copie la cadena de conexión completa.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

Habilitar características de seguridad

Azure SQL Database proporciona características de seguridad que son accesibles mediante Azure Portal. Estas características están disponibles tanto para la base de datos como para el servidor, excepto el enmascaramiento de datos, que solo está disponible en la base de datos. Para más información, consulte Microsoft Defender para SQL, Auditoría, Enmascaramiento dinámico de datos y Cifrado de datos transparente.

Microsoft Defender para SQL

La característica Microsoft Defender para SQL detecta amenazas a medida que se producen y proporciona alertas de seguridad sobre actividades anómalas. Los usuarios pueden explorar los eventos sospechosos con la característica de autoría y determinar si el evento pretendía acceder a los datos de la base de datos, infringir su seguridad o aprovechar sus vulnerabilidades. Los usuarios también obtienen una visión general de la seguridad que incluye una evaluación de las vulnerabilidades y la herramienta de detección y clasificación de datos.

Nota:

Un ejemplo de amenaza es la inyección de código SQL, un proceso mediante el cual los atacantes insertan SQL malintencionado en los datos de entrada de la aplicación. Después, una aplicación puede ejecutar el código SQL malintencionado sin saberlo y permitir el acceso de los atacantes para infringir la seguridad o modificar los datos de la base de datos.

Para habilitar Microsoft Defender para SQL:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

  2. En la página Información general, seleccione el vínculo Nombre de servidor. Se abrirá la página del servidor.

  3. En la página SQL Server, busque la sección Seguridad y seleccione Defender para la nube.

    1. Seleccione Activado en Microsoft Defender para SQL para habilitar la característica. Elija una cuenta de almacenamiento para guardar los resultados de la evaluación de vulnerabilidad. Después, seleccione Guardar.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      También puede configurar mensajes de correo electrónico para recibir las alertas de seguridad, los detalles de almacenamiento y los tipos de detección de amenazas.

  4. Vuelva a la página Bases de datos SQL de la base de datos y seleccione Defender para la nube en la sección Seguridad. Aquí encontrará varios indicadores de seguridad disponibles para la base de datos.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

Si se detectan actividades anómalas, recibirá un correo electrónico con información sobre el evento. Por ejemplo, la naturaleza de la actividad, la base de datos, el servidor, la hora del evento, las posibles causas y las acciones recomendadas para investigar y mitigar la posible amenaza. Si se recibe dicho correo electrónico, seleccione el vínculo Registro de auditoría de SQL Azure para abrir Azure Portal y mostrar los registros de auditorías pertinentes para el momento del evento.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

Auditoría

La característica de auditoría realiza un seguimiento de los eventos de base de datos y escribe los eventos en un registro de auditoría en un almacenamiento de Azure, registros de Azure Monitor o en un centro de eventos. La auditoría ayuda a mantener el cumplimiento de las normativas y conocer la actividad de las bases de datos, así como las discrepancias y anomalías que pueden indicar la existencia de posibles infracciones de la seguridad.

Para habilitar la auditoría:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

  2. En la sección Seguridad, seleccione Auditoría.

  3. En las opciones de Auditoría, establezca los valores siguientes:

    1. Establezca Auditoría en ACTIVADA.

    2. En Destino del registro de auditoría, seleccione alguna de las opciones siguientes:

      • Almacenamiento, una cuenta de Azure Storage donde se guardan los registros de eventos, que se pueden descargar como archivos .xel.

        Sugerencia

        Use la misma cuenta de almacenamiento para todas las bases de datos auditadas con el fin de obtener el máximo partido de las plantillas de informes de auditorías.

      • Log Analytics, que almacena automáticamente los eventos para realizar consultas o un análisis más profundo.

        Nota:

        Se requiere un área de trabajo de Log Analytics para admitir características avanzadas, como análisis, reglas de alerta personalizadas y exportaciones de Excel o Power BI. Sin un área de trabajo, solo está disponible el editor de consultas.

      • Centro de eventos, que permite enrutar los eventos para usarlos en otras aplicaciones.

    3. Seleccione Guardar.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Ahora puede seleccionar Ver registros de auditoría para ver los datos de eventos de base de datos.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

Importante

Consulte Auditoría de base de datos SQL para saber cómo personalizar aún más los eventos de auditoría con PowerShell o la API REST.

Enmascaramiento de datos dinámicos

La función de enmascaramiento de datos ocultará automáticamente los datos confidenciales de la base de datos.

Para habilitar el enmascaramiento de datos:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

  2. En la sección Seguridad, seleccione Enmascaramiento dinámico de datos.

  3. En la opción Enmascaramiento dinámico de datos, seleccione Agregar máscara para agregar una regla de enmascaramiento. Azure rellenará automáticamente los esquemas de base de datos disponibles, las tablas y las columnas para elegir.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Seleccione Guardar. Ahora se enmascara la información seleccionada para mantener la privacidad.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

Cifrado de datos transparente

La característica de cifrado cifra automáticamente los datos en reposo y no requiere cambios en las aplicaciones que acceden a la base de datos cifrada. En las bases de datos nuevas, el cifrado está activado de forma predeterminada. También puede cifrar los datos con SSMS y la característica Always encrypted.

Para habilitar o comprobar el cifrado:

  1. En Azure Portal, seleccione Bases de datos SQL en el menú de la izquierda y seleccione la base de datos en la página Bases de datos SQL.

  2. En la sección Seguridad, seleccione Cifrado de datos transparente.

  3. Si es necesario, establezca Cifrado de datos en ACTIVADO. Seleccione Guardar.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

Nota:

Para ver el estado de cifrado, conéctese a la base de datos mediante SSMS y consulte la columna encryption_state de la vista sys.dm_database_encryption_keys. El estado 3 indica que la base de datos está cifrada.

Nota:

Algunos elementos considerados contenido del cliente, como nombres de tablas, nombres de objetos y nombres de índices, se pueden transmitir en archivos de registro para soporte técnico y solución de problemas por parte de Microsoft.

Sugerencia

¿Está listo para empezar a desarrollar una aplicación .NET? El siguiente módulo gratuito de Microsoft Learn le enseña cómo Desarrollar y configurar una aplicación de ASP.NET que consulta una instancia de Azure SQL Database, incluida la creación de una base de datos simple.

Paso siguiente

En el siguiente tutorial aprenderá a implementar una distribución geográfica.