Uso de auditorías avanzadas con un clúster de base de datos de Amazon Aurora MySQL - Amazon Aurora

Uso de auditorías avanzadas con un clúster de base de datos de Amazon Aurora MySQL

Puede usar la característica de auditoría avanzada de alto desempeño de Amazon Aurora MySQL para auditar la actividad de la base de datos. Para ello, debe habilitar el conjunto de registros de auditoría definiendo varios parámetros de clúster de base de datos. Cuando la auditoría avanzada está habilitada, puede usarla para registrar cualquier combinación de eventos compatibles.

Puede ver o descargar los registros de auditoría para revisar la información de auditoría de una instancia de base de datos a la vez. Para ello, puede utilizar los procedimientos en Supervisión de archivos de registro de Amazon Aurora.

sugerencia

Para un clúster de base de datos de Aurora que contiene varias instancias de base de datos, podría resultar más conveniente examinar los registros de auditoría de todas las instancias del clúster. Para ello, puede utilizar CloudWatch Logs. Puede activar una configuración en el nivel de clúster para publicar los datos de registro de auditoría de Aurora MySQL en un grupo de registro en CloudWatch. A continuación, puede ver, filtrar y buscar los registros de auditoría a través de la interfaz de CloudWatch. Para obtener más información, consulte Publicación de registros de Amazon Aurora MySQL en Amazon CloudWatch Logs.

Habilitar la auditoría avanzada

Use los parámetros que se describen en esta sección para habilitar y configurar la auditoría avanzada para su clúster de base de datos.

Utilice el parámetro server_audit_logging para habilitar o desactivar la auditoría avanzada.

Utilice server_audit_events para especificar qué eventos se van a registrar.

Use los parámetros server_audit_incl_users y server_audit_excl_users para especificar a quién se debe auditar. De forma predeterminada, se auditan todos los usuarios. Para obtener más información sobre cómo funcionan estos parámetros cuando uno o ambos se dejan vacíos o se especifican los mismos nombres de usuario en ambos, consulte server_audit_incl_users y server_audit_excl_users.

Configure la auditoría avanzada definiendo estos parámetros en el grupo de parámetros utilizado por su clúster de base de datos. Puede usar el procedimiento que se muestra en Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon Aurora para modificar los parámetros de clúster de base de datos usando la AWS Management Console. Puede utilizar el comando modify-db-cluster-parameter-group de AWS CLI o la operación ModifyDBClusterParameterGroup de la API de Amazon RDS para modificar los parámetros del clúster de base de datos mediante programación.

Para modificar estos parámetros no se requiere un reinicio del clúster de base de datos cuando el grupo de parámetros ya está asociado al clúster. Al asociar el grupo de parámetros al clúster por primera vez, es necesario reiniciar el clúster.

server_audit_logging

Habilita o deshabilita la auditoría avanzada. Este parámetro tiene el ajuste OFF predeterminado; cámbielo a ON para habilitar la auditoría avanzada.

No aparecen datos de auditoría en los registros a menos que defina también uno o varios tipos de eventos que auditar mediante el parámetro server_audit_events.

Para confirmar que se registran los datos de auditoría de una instancia de base de datos, verifique que algunos archivos de registro de esa instancia tengan nombres del formulario audit/audit.log.other_identifying_information. Para ver los nombres de los archivos de registro, siga el procedimiento en Visualización y descripción de archivos de registro de base de datos.

server_audit_events

Contiene una lista delimitada por comas de los eventos que se deben registrar. Los eventos se deben especificar en mayúsculas y no debe haber espacios en blanco entre los elementos de la lista, por ejemplo: CONNECT,QUERY_DDL. De manera predeterminada, este parámetro es una cadena vacía.

Puede registrar cualquier combinación de los siguientes eventos:

  • CONNECT: registra las conexiones correctas y con error y también las desconexiones. Este evento incluye información de usuario.

  • QUERY: registra todas las consultas en texto sin formato, incluidas las que no se pueden completar porque contienen errores de sintaxis o de permisos.

    sugerencia

    Con este tipo de evento activado, los datos de auditoría incluyen información sobre la supervisión continua y la información de comprobación de estado que Aurora hace automáticamente. Si solo le interesan determinados tipos de operaciones, puede utilizar los tipos de eventos más específicos. También puede utilizar la interfaz de CloudWatch para buscar en los registros eventos relacionados con bases de datos, tablas o usuarios específicos.

  • QUERY_DCL: similar al evento QUERY, pero solo devuelve consultas en lenguaje de control de datos (DCL) (GRANT, REVOKE, etc.).

  • QUERY_DDL: similar al evento QUERY, pero solo devuelve consultas en lenguaje de definición de datos (DDL) (CREATE, ALTER, etc.).

  • QUERY_DML: similar al evento QUERY, pero solo devuelve consultas en lenguaje de manipulación de datos (DML) (INSERT, UPDATE, etc. y también SELECT).

  • TABLE: registra las tablas que se han visto afectadas por la ejecución de la consulta.

nota

Aurora no tiene ningún filtro que excluya determinadas consultas de los registros de auditoría. Para excluir las consultas SELECT, debe excluir todas las instrucciones de DML.

Si un usuario determinado informa de estas consultas SELECT internas en los registros de auditoría, puede excluirlo configurando el parámetro de clúster de base de datos server_audit_excl_users. Sin embargo, si ese usuario también se usa en otras actividades y no se puede omitir, no hay otra opción para excluir las consultas SELECT.

server_audit_incl_users

Contiene la lista delimitada por comas de los nombres de los usuarios cuya actividad se registra. No debe haber espacios en blanco entre los elementos de la lista, por ejemplo: user_3,user_4. De manera predeterminada, este parámetro es una cadena vacía. La longitud máxima es de 1024 caracteres. Los nombres de usuario especificados deben coincidir con los valores correspondientes de la columna User de la tabla mysql.user. Para obtener más información acerca de los nombres de usuario, consulte Account User Names and Passwords (Nombres de usuario y contraseñas de cuentas) en la documentación de MySQL.

Si server_audit_incl_users y server_audit_excl_users están vacíos (ajuste predeterminado), se auditan todos los usuarios.

Si se añaden usuarios a server_audit_incl_users y se deja server_audit_excl_users vacío, solo se auditan esos usuarios.

Si se agregan usuarios a server_audit_excl_users y se deja vacío server_audit_incl_users, todos los usuarios se auditan, excepto los enumerados en server_audit_excl_users.

Si se agregan los mismos usuarios a server_audit_excl_users y a server_audit_incl_users, se audita a esos usuarios. Cuando aparece el mismo usuario en ambas configuraciones, server_audit_incl_users tiene una mayor prioridad.

Los eventos de conexión y desconexión no se ven afectados por esta variable, siempre se registran si se ha especificado. Un usuario se registra aunque ese usuario también se haya especificado en el parámetro server_audit_excl_users, ya que server_audit_incl_users tiene una prioridad más alta.

server_audit_excl_users

Contiene la lista delimitada por comas de los nombres de los usuarios cuya actividad no se registra. No debe haber espacios en blanco entre los elementos de la lista, por ejemplo: rdsadmin,user_1,user_2. De manera predeterminada, este parámetro es una cadena vacía. La longitud máxima es de 1024 caracteres. Los nombres de usuario especificados deben coincidir con los valores correspondientes de la columna User de la tabla mysql.user. Para obtener más información acerca de los nombres de usuario, consulte Account User Names and Passwords (Nombres de usuario y contraseñas de cuentas) en la documentación de MySQL.

Si server_audit_incl_users y server_audit_excl_users están vacíos (ajuste predeterminado), se auditan todos los usuarios.

Si se agregan usuarios a server_audit_excl_users y se deja server_audit_incl_users vacío, solo se excluyen de la auditoría esos usuarios que se enumeren en server_audit_excl_users, y se auditan los restantes.

Si se agregan los mismos usuarios a server_audit_excl_users y a server_audit_incl_users, se audita a esos usuarios. Cuando aparece el mismo usuario en ambas configuraciones, server_audit_incl_users tiene una mayor prioridad.

Los eventos de conexión y desconexión no se ven afectados por esta variable, siempre se registran si se ha especificado. Un usuario se registra si ese usuario también se especifica en el parámetro server_audit_incl_users, ya que ese ajuste tiene una prioridad más alta que server_audit_excl_users.

Visualización de registros de auditoría

Puede ver y descargar los registros de auditoría mediante la consola. En la página Databases (Bases de datos), elija la instancia de base de datos para mostrar sus detalles y, a continuación, desplácese hasta la sección Logs (Registros). Los registros de auditoría producidos por la característica Auditoría avanzada tienen nombres del formulario audit/audit.log.other_identifying_information.

Para descargar un archivo de registro, elija ese archivo en la sección Logs (Registros) y, a continuación, elija Download (Descargar).

También puede obtener una lista de los archivos de registro usando el comando describe-db-log-files de la AWS CLI. Puede descargar el contenido de un archivo de registro mediante el comando download-db-log-file-portion de la AWS CLI. Para obtener más información, consulte Visualización y descripción de archivos de registro de base de datos y Descarga de un archivo de registro de base de datos.

Detalles de los logs de auditoría

Los archivos de registro se representan como archivos de variables separadas por comas (CSV) en formato UTF-8. Las consultas también se escriben entre comillas simples (').

El registro de auditoría se almacena por separado en el almacenamiento local de cada instancia de base de datos de Aurora MySQL. Cada instancia distribuye escrituras en los cuatro archivos de registro a la vez. El tamaño máximo de un archivo de registro es de 100 MB. Cuando se alcanza este límite no configurable, Aurora rota el archivo y genera uno nuevo.

sugerencia

Las entradas del archivo de registro no están en orden secuencial. Para ordenar las entradas, utilice el valor de marca temporal. Para ver los eventos más recientes, es posible que sea necesario revisar todos los archivos de registro. Para obtener más flexibilidad en la ordenación y búsqueda de los datos de registro, active la configuración para cargar los registros de auditoría en CloudWatch y verlos mediante la interfaz de CloudWatch.

Para ver los datos de auditoría con más tipos de campos y con salida en formato JSON, también puede utilizar la característica Flujos de actividad de base de datos. Para obtener más información, consulte Supervisión de Amazon Aurora con flujos de actividad de la base de datos.

Los archivos de registro de auditoría incluyen la siguiente información delimitada por comas en las filas en el orden especificado:

Campo Descripción

timestamp

Marca temporal de Unix para el evento registrado con una precisión de microsegundos.

serverhost

Nombre de la instancia para la que se ha registrado el evento.

username

Nombre de usuario conectado del usuario.

host

Host desde el que se ha conectado el usuario.

connectionid

Número de ID de conexión de la operación registrada.

queryid

Número de ID de la consulta que se puede usar para buscar los eventos de la tabla relacional y las consultas relacionadas. Para los eventos TABLE, se añaden varias líneas.

operación

Tipo de acción registrado. Los posibles valores son: CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME y DROP.

base de datos

Base de datos activa, definida por el comando USE.

objeto

Para los eventos de QUERY, este valor indica la consulta realizada por la base de datos. En los eventos TABLE, indica el nombre de la tabla.

retcode

Código devuelto de la operación registrada.