

# Uso de auditorías avanzadas con un clúster de base de datos de Amazon Aurora MySQL
<a name="AuroraMySQL.Auditing"></a><a name="auditing"></a><a name="advanced_auditing"></a>

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](USER_LogAccess.md). 

**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](AuroraMySQL.Integrating.CloudWatch.md). 

## Habilitar la auditoría avanzada
<a name="AuroraMySQL.Auditing.Enable"></a>

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\$1audit\$1incl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_incl_users) y [server\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.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](USER_WorkingWithParamGroups.Modifying.md) para modificar los parámetros de clúster de base de datos usando la Consola de administración de AWS. Puede utilizar el comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) de AWS CLI o la operación [ModifyDBClusterParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) 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.

**Topics**
+ [server\$1audit\$1logging](#AuroraMySQL.Auditing.Enable.server_audit_logging)
+ [server\$1audit\$1events](#AuroraMySQL.Auditing.Enable.server_audit_events)
+ [server\$1audit\$1incl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_incl_users)
+ [server\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_excl_users)

### server\$1audit\$1logging
<a name="AuroraMySQL.Auditing.Enable.server_audit_logging"></a>

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](USER_LogAccess.Procedural.Viewing.md). 

### server\$1audit\$1events
<a name="AuroraMySQL.Auditing.Enable.server_audit_events"></a>

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\$1DCL: similar al evento QUERY, pero solo devuelve consultas en lenguaje de control de datos (DCL) (GRANT, REVOKE, etc.).
+ QUERY\$1DDL: similar al evento QUERY, pero solo devuelve consultas en lenguaje de definición de datos (DDL) (CREATE, ALTER, etc.).
+ QUERY\$1DML: 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\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.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\$1audit\$1incl\$1users
<a name="AuroraMySQL.Auditing.Enable.server_audit_incl_users"></a>

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](https://dev.mysql.com/doc/refman/8.0/en/user-names.html) (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\$1audit\$1excl\$1users
<a name="AuroraMySQL.Auditing.Enable.server_audit_excl_users"></a>

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](https://dev.mysql.com/doc/refman/8.0/en/user-names.html) (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
<a name="AuroraMySQL.Auditing.View"></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](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html) de la AWS CLI. Puede descargar el contenido de un archivo de registro mediante el comando [download-db-log-file-portion](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) de la AWS CLI. Para obtener más información, consulte [Visualización y descripción de archivos de registro de base de datos](USER_LogAccess.Procedural.Viewing.md) y [Descarga de un archivo de registro de base de datos](USER_LogAccess.Procedural.Downloading.md).

## Detalles de los logs de auditoría
<a name="AuroraMySQL.Auditing.Logs"></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](DBActivityStreams.md). 

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.  | 