Auditoría de instancias de base de datos de Amazon RDS para SQL Server - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Auditoría de instancias de base de datos de Amazon RDS para SQL Server

En esta sección se proporciona información sobre las opciones de auditoría de SQL Server en Amazon RDS, lo que incluye la creación de auditorías, la visualización de los registros de auditorías y la supervisión de los resultados.

Requisitos previos

  • Un bucket de Amazon Simple Storage Service (Amazon S3) en el que almacenar los archivos de auditoría

  • Un rol de AWS Identity and Access Management (IAM) para acceder al bucket de S3

  • Un inicio de sesión en bases de datos con un permiso ALTER ANY SERVER AUDIT o CONTROL SERVER

Versiones compatibles

  • En el caso de Amazon RDS para SQL Server 2014, todas las ediciones admiten auditorías de servidor. La edición Enterprise también admite auditorías de base de datos.

  • A partir de SQL Server 2016 (13.x) SP1, todas las ediciones admiten tanto auditorías de nivel de servidor como de nivel de base de datos.

  • Amazon RDS admite actualmente las auditorías de SQL Server en todas las Regiones de AWS excepto Medio Oriente (Baréin). Para obtener la información más reciente, consulte Compatibilidad con SQL Server Audit en la documentación de Amazon RDS.

Uso del modo de auditoría C2

El modo de auditoría C2 es un parámetro del grupo de parámetros de base de datos de Amazon RDS para SQL Server. Está deshabilitado de forma predeterminada. Para activarlo, puede actualizar el valor del parámetro a 1. Cuando el modo de auditoría C2 está activado, audita eventos como los inicios de sesión de los usuarios, las llamadas a procedimientos almacenados y la creación y eliminación de objetos. Este modo puede generar grandes cantidades de datos porque lo audita todo, aunque también es posible que no se audite nada.

importante

Microsoft planea eliminar el modo de auditoría C2 en una versión futura de SQL Server. Le recomendamos que evite el uso de esta característica.

Creación y visualización de auditorías

Puede auditar bases de datos de Amazon RDS para SQL Server mediante mecanismos de auditoría de SQL Server integrados que implican la creación de auditorías y especificaciones de auditoría. 

  • Los registros de auditoría se cargan en un bucket de S3 mediante un rol de IAM que tiene los permisos necesarios para acceder al bucket. 

  • Puede elegir el rol de IAM, el bucket de S3, la compresión y el periodo de retención al crear el grupo de opciones. El periodo máximo de retención es de 35 días.

  • Cree el grupo de opciones y adjúntelo a una instancia de base de datos de Amazon RDS para SQL Server nueva o existente.  Los registros de auditoría se almacenan en D:\rdsdbdata\SQLAudit

  • Cuando SQL Server termina de escribir en un archivo de registro de auditoría o cuando el archivo alcanza su límite de tamaño, Amazon RDS lo carga en el bucket de S3.

  • Si habilita la retención, Amazon RDS mueve el archivo a la carpeta de retención D:\rdsdbdata\SQLAudit\transmitted. Los registros de auditoría se conservan en la instancia de base de datos hasta que se carga el archivo de registro de auditoría. 

  • Para buscar registros de auditoría, también puede consultar dbo.rds_fn_get_audit_file

Para las instancias Multi-AZ, los objetos de especificación de auditoría de base de datos se replican en todos los nodos.  La auditoría de servidor y las especificaciones de auditoría de servidor no se replican en todos los nodos, por lo que debe crearlas manualmente.

Configuración del grupo de opciones

Siga estos pasos para configurar un grupo de opciones a fin de llevar a cabo una auditoría de SQL Server en la instancia de base de datos de Amazon RDS para SQL Server. Para obtener instrucciones detalladas, consulte SQL Server Audit en la documentación de Amazon RDS.

  • Cree un grupo de opciones.

  • Agregue la opción SQLSERVER_AUDIT al grupo de opciones.

  • En Destino de S3, cree un nuevo bucket o seleccione uno existente para los registros de auditoría.

  • En Rol de IAM, cree un nuevo rol o elija uno existente con las políticas necesarias. Para más información, consulte Creación manual de un rol de IAM para SQL Server Audit en la documentación de IAM.

  • Expanda Información adicional y seleccione Habilitar compresión para comprimir los registros de auditoría (recomendado).

  • Para conservar los registros de auditoría de la instancia de base de datos, seleccione Habilitar retención y especifique un periodo de retención (hasta un máximo de 35 días).

  • Aplique el grupo de opciones a una instancia de base de datos de Amazon RDS para SQL Server nueva o existente.

    • Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia.

    • Para una instancia de base de datos existente, modifique la instancia y adjunte el nuevo grupo de opciones.

Creación de auditorías

Para crear una auditoría de servidor, utilice el siguiente script. Este script crea el archivo de auditoría en la ruta de archivo que especifique. Para ver la sintaxis, argumentos y ejemplos, consulte la documentación de Microsoft SQL Server. Para evitar errores, consulte la lista de limitaciones en la documentación de Amazon RDS.

--Creating the server audit use master GO CREATE SERVER AUDIT [Audit-<<servername>>] TO FILE ( FILEPATH = N'D:\rdsdbdata\SQLAudit', MAXSIZE = 2 MB, RESERVE_DISK_SPACE = OFF) WITH ( QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE) GO -- Enabling the server audit ALTER SERVER AUDIT [Audit-<<servername>>] WITH (STATE = ON) ; GO

Creación de especificaciones de auditoría

Después de crear una auditoría de servidor, puede registrar los eventos de servidor mediante la creación de una especificación de auditoría de servidor con el siguiente código. Esta especificación determina qué se comprobará durante la auditoría de servidor. Para ver la sintaxis, argumentos y ejemplos, consulte la documentación de Microsoft SQL Server. La siguiente especificación audita las acciones de inicios de sesión fallidos y hace un seguimiento de la creación, la alteración y la eliminación de los objetos del servidor. Para obtener una lista de las acciones, consulte la documentación de Microsoft SQL Server.

--Creating server audit specification USE [master] GO CREATE SERVER AUDIT SPECIFICATION [Audit-Spec-<<servername>>] FOR SERVER AUDIT [Audit-<<servername>>] ADD (FAILED_LOGIN_GROUP), ADD (SERVER_OBJECT_CHANGE_GROUP) GO --Enables the audit ALTER SERVER AUDIT [Audit-<<servername>>] WITH (STATE = ON); GO

Puede usar el siguiente código para crear una especificación de auditoría de base de datos que registre eventos de base de datos. En este ejemplo, se auditan las acciones INSERT. Para ver la sintaxis, argumentos y más ejemplos, consulte la documentación de Microsoft SQL Server.

--Creating database audit specification USE [<<DBName>>] GO CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-<<DBName>>] FOR SERVER AUDIT [Audit-<<ServerName>>] ADD (INSERT ON DATABASE::[<<DBName>>] BY [dbo]) WITH (STATE = ON) GO

Visualización de registros de auditoría

Utilice la siguiente consulta para ver los registros de auditoría. Los registros de auditoría se almacenan en la instancia de base de datos hasta que se cargan en Amazon S3. Si habilita la retención para la opción SQLSERVER_AUDIT, Amazon RDS mueve el archivo a la carpeta de retención D:\rdsdbdata\SQLAudit\transmitted.

También puede cambiar el filtro a D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit para ver los registros de auditoría de la carpeta de retención.

--Viewing audit logs SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default ) --Viewing audit logs in retention folder SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )

Las opciones adicionales para auditar bases de datos de SQL Server se describen en la siguiente documentación de AWS y Microsoft:

Monitorización

Puede utilizar los flujos de actividad de base de datos para Amazon RDS a fin de integrar los eventos de auditoría de SQL Server con las herramientas de supervisión de la actividad de las bases de datos de Imperva, McAfee e IBM. Para más información, consulte Auditoría en Microsoft SQL Server en la documentación de Amazon RDS.