Introducción a la auditoría de SQL Managed Instance

SE APLICA A: Azure SQL Managed Instance

La auditoría de SQL Managed InstanceL hace un seguimiento de los eventos de base de datos y los escribe en un registro de auditoría de la cuenta de Azure Storage. La auditoría también puede hacer lo siguiente:

  • Ayudar a mantener el cumplimiento de normativas, comprender la actividad de las bases de datos y conocer las discrepancias y anomalías que pueden indicar problemas en el negocio o infracciones de seguridad sospechosas.
  • Posibilitar y facilitar la observancia de estándares reguladores aunque no garantiza el cumplimiento. Para más información sobre los programas de Azure que se adhieren al cumplimiento normativo, visite el Centro de confianza de Azure, donde podrá encontrar la lista más reciente de certificaciones de cumplimiento.

Importante

La auditoría de Azure SQL Database, Azure Synapse y Azure SQL Managed Instance está optimizada para el rendimiento y la disponibilidad. Durante periodos de actividad muy elevada o alta carga en la red, Azure SQL Database, Azure Synapse y Azure SQL Managed Instance permiten que las operaciones continúen y es posible que no registren algunos eventos auditados.

Configuración de la auditoría de un servidor en Azure Storage

En la sección siguiente se describe la configuración de auditoría en su Instancia administrada.

  1. Vaya a Azure Portal.

  2. Cree un contenedor de Azure Storage donde se almacenan los registros de auditoría.

    1. Vaya a la cuenta de Azure Storage donde le gustaría almacenar los registros de auditoría.

      Importante

      • Use una cuenta de almacenamiento de la misma región que la Instancia administrada para evitar lecturas y escrituras entre regiones.
      • Si la cuenta de almacenamiento está detrás de una Virtual Network o un firewall, consulte conceder acceso desde una red virtual.
      • Si cambia el período de retención de 0 (retención ilimitada) a cualquier otro valor, tenga en cuenta que la retención solo se aplicará a los registros escritos una vez cambiado el valor de retención (los registros escritos durante el período en el que la retención se estableció en ilimitada se conservan, incluso después de habilitarse la retención).
    2. En la cuenta de almacenamiento, vaya a Información general y haga clic en Blobs.

      Widget de blobs de Azure

    3. En el menú superior, haga clic en + Contenedor para crear un nuevo contenedor.

      Icono Crear contenedor de blobs

    4. En Nombre proporcione un nombre de contenedor, establezca Nivel de acceso público en Privado y haga clic en Aceptar.

      Configuración de la opción Crear contenedor de blobs

    Importante

    Los clientes que quieran configurar un almacén de registros inmutable para los eventos de auditoría de nivel de servidor o de base de datos deben seguir las instrucciones que se proporcionan en Azure Storage. (Asegúrese de que ha seleccionado Permitir anexiones adicionales al configurar el almacenamiento de blobs inmutable).

  3. Después de crear el contenedor para los registros de auditoría, hay dos maneras de configurarlo como destino de los registros de auditoría: mediante T-SQL o mediante la interfaz de usuario de SQL Server Management Studio (SSMS):

    • Configuración del almacenamiento de blobs para los registros de auditoría con T-SQL:

      1. En la lista de contenedores, haga clic en el contenedor recién creado y luego en Propiedades del contenedor.

        Botón Propiedades del contenedor de blobs

      2. Copie la dirección URL del contenedor haciendo clic en el icono de copia y guarde dicha dirección (por ejemplo, en el Bloc de notas) para un uso futuro. El formato de dirección URL del contenedor debe ser https://<StorageName>.blob.core.windows.net/<ContainerName>.

        Dirección URL de copia de contenedores de blob

      3. Genere un token de SAS de Azure Storage para conceder derechos de acceso de auditoría de instancia administrada a la cuenta de almacenamiento:

        • Vaya a la cuenta de Azure Storage donde se creó el contenedor en el paso anterior.

        • Haga clic en Firma de acceso compartido en el menú Configuración de Storage.

          Icono de Firma de acceso compartido en el menú Configuración de Storage

        • Configure SAS de la siguiente manera:

          • Servicios permitidos: Blob

          • Fecha de inicio: para evitar problemas relacionados con la zona horaria, se recomienda usar la fecha de ayer.

          • Fecha de finalización: elija la fecha en que expira este token de SAS.

            Nota

            Renueve el token tras la expiración para evitar errores de auditoría.

          • Haga clic en Generar SAS.

            Configuración de SAS

        • El token de SAS aparece en la parte inferior. Copie el token haciendo clic en el icono de copia y guárdelo (por ejemplo, en el Bloc de notas) para un uso futuro.

          Copia del token de SAS

          Importante

          Quite el signo de interrogación ("?") caracteres del principio del token.

      4. Conéctese a la instancia administrada mediante SQL Server Management Studio (SSMS) o cualquier otra herramienta compatible.

      5. Ejecute la siguiente instrucción T-SQL para crear una credencial con la dirección URL del contenedor y el token de SAS que creó en los pasos anteriores:

        CREATE CREDENTIAL [<container_url>]
        WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '<SAS KEY>'
        GO
        
      6. Ejecute la siguiente instrucción T-SQL para crear una auditoría de servidor (elija su propio nombre de auditoría y use la dirección URL del contenedor que creó en los pasos anteriores). Si no se especifica, el valor predeterminado de RETENTION_DAYS es 0 (retención ilimitada):

        CREATE SERVER AUDIT [<your_audit_name>]
        TO URL ( PATH ='<container_url>' , RETENTION_DAYS =  integer )
        GO
        
      7. Continúe con la creación de una especificación de auditoría de servidor o de auditoría de base de datos.

    • Configuración del almacenamiento de blobs para los registros de auditoría mediante SQL Server Management Studio 18:

      1. Conéctese a la instancia administrada mediante la interfaz de usuario de SQL Server Management Studio.

      2. Expanda la nota de raíz de Explorador de objetos.

      3. Expanda el nodo Seguridad, haga clic con el botón derecho en el nodo Auditorías y haga clic en Nueva auditoría:

        Expandir nodo security y audit

      4. Asegúrese de que la opción URL está seleccionada en Destino de auditoría y haga clic en Examinar:

        Examinar Azure Storage

      5. (Opcional) Inicie sesión en la cuenta de Azure:

        Inicio de sesión en Azure

      6. Seleccione una suscripción, la cuenta de almacenamiento y el contenedor de blobs en los menús desplegables o cree su propio contenedor. Para ello, haga clic en Crear. Cuando haya terminado, haga clic en Aceptar:

        Seleccionar la suscripción de Azure, la cuenta de almacenamiento y el contenedor de blobs

      7. Haga clic en Aceptar en el cuadro de diálogo Crear auditoría.

        Nota

        Si se usa la interfaz de usuario de SQL Server Management Studio para crear una auditoría, se creará automáticamente una credencial para el contenedor con una clave SAS.

      8. Después de configurar el contenedor de blobs como destino para los registros de auditoría, cree y habilite una especificación de auditoría de servidor o de base de datos como lo haría para SQL Server:

    • Guía de T-SQL de creación de la especificación de auditoría de servidor

    • Guía de T-SQL de creación de la especificación de auditoría

  4. Habilite la auditoría de servidor que ha creado en el paso 3:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE=ON);
    GO
    

Para información adicional:

Configuración de la auditoría de un servidor en Event Hubs o registros de Azure Monitor

Los registros de auditoría de una instancia administrada se pueden enviar a Azure Event Hubs o a los registros de Azure Monitor. En esta sección se describe cómo configurar todo esto:

  1. En Azure Portal , vaya a la instancia administrada.

  2. Haga clic en Configuración de diagnóstico.

  3. Haga clic en Activar diagnóstico. Si ya está habilitado el diagnóstico, se mostrará +Agregar configuración de diagnóstico.

  4. Seleccione SQLSecurityAuditEvents en la lista de registros.

  5. Seleccione un destino para los eventos de auditoría: Event Hubs, registros de Azure Monitor o ambos. Configure los parámetros necesarios (por ejemplo, el área de trabajo de Log Analytics) en cada destino.

  6. Haga clic en Save(Guardar).

    Configuración de valores de diagnóstico

  7. Conéctese a la instancia administrada mediante SQL Server Management Studio (SSMS) o cualquier otro cliente compatible.

  8. Ejecute la siguiente instrucción T-SQL para crear una auditoría de servidor:

    CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR;
    GO
    
  9. Cree y habilite una especificación de auditoría de servidor o de base de datos como lo haría para SQL Server:

  10. Habilite la auditoría de servidor que creó en el paso 8:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE=ON);
    GO
    

Uso de registros de auditoría

Uso de registros almacenados en Azure Storage

Existen varios métodos que puede usar para ver los registros de auditoría de blobs.

Consumo de registros almacenados en Event Hubs

Para consumir datos de registros de auditoría desde Event Hubs, deberá configurar una secuencia que consuma eventos y los escriba en un destino. Para más información, consulte la documentación de Azure Event Hubs.

Consumo y análisis de los registros almacenados en los registros de Azure Monitor

Si se escriben registros de auditoría en registros de Azure Monitor, estarán disponibles en el área de trabajo de Log Analytics, donde podrá ejecutar búsquedas avanzadas en los datos de auditoría. Como punto de partida, vaya al área de trabajo de Log Analytics. En la sección General, haga clic en Registros y escriba una consulta simple, como search "SQLSecurityAuditEvents" para ver los registros de auditoría.

Los registros de Azure Monitor proporcionan conclusiones operativas en tiempo real gracias a uso de paneles personalizados y de búsqueda integrados para analizar fácilmente millones de registros en todas las cargas de trabajo y servidores. Para información útil adicional sobre los comandos y el lenguaje de búsqueda de registros de Azure Monitor, consulte la referencia de búsqueda de registros de Azure Monitor.

Nota

Este artículo se ha actualizado recientemente para usar el término registros de Azure Monitor en lugar de Log Analytics. Los datos de registro siguen almacenándose en un área de trabajo de Log Analytics y siguen recopilándose y analizándose por el mismo servicio de Log Analytics. Estamos actualizando la terminología para reflejar mejor el rol de los registros de Azure Monitor. Consulte Azure Monitor terminology changes (Cambios en la terminología de Azure Monitor) para obtener más información.

Diferencias de auditoría entre las bases de datos de Instancia administrada de Azure SQL y las bases de datos de SQL Server

Las principales diferencias entre la auditoría de las bases de datos de Instancia administrada de Azure SQL y las bases de datos de SQL Server son las siguientes:

  • En Instancia administrada de Azure SQL, la auditoría funciona en el nivel de servidor y los archivos de registro .xel se almacenan en la cuenta de Azure Blob Storage.
  • En SQL Server, la auditoría funciona en el nivel de servidor, pero almacena los eventos se almacenan en el sistema de archivos y en los registros de eventos de Windows.

En las instancias administradas, la auditoría de XEvent admite Azure Blob Storage como destino. No se admiten los registros de archivos ni de Windows.

Las principales diferencias en la sintaxis de CREATE AUDIT para la auditoría en Azure Blob Storage son:

  • Se proporciona una nueva sintaxis TO URL que permite especificar la dirección URL del contenedor de Azure Blob Storage donde se colocarán los archivos .xel.
  • Se proporciona una nueva sintaxis TO EXTERNAL MONITOR para habilitar los destinos de registro de Event Hubs y Azure Monitor.
  • La sintaxis TO FILE no se admite porque Instancia administrada de Azure SQL no pueda acceder a los recursos compartidos de archivos de Windows.
  • La opción de apagado no se admite.
  • queue_delay de 0 no se admite.

Pasos siguientes