

# Supervisión de Amazon RDS con flujos de actividad de la base de datos
<a name="DBActivityStreams"></a><a name="das"></a>

Mediante la característica de flujos de actividad de la base de datos, puede supervisar flujos de actividad de la base de datos prácticamente en tiempo real.

**Topics**
+ [Información general sobre flujos de actividad de la base de datos](#DBActivityStreams.Overview)
+ [Configuración de la auditoría unificada para Oracle Database](DBActivityStreams.configuring-auditing.md)
+ [Configuración de la política de auditoría para Amazon RDS para Microsoft SQL Server](DBActivityStreams.configuring-auditing-SQLServer.md)
+ [Inicio de una secuencia de actividades de la base de datos](DBActivityStreams.Enabling.md)
+ [Modificación de una secuencia de actividades de la base de datos para Amazon RDS](DBActivityStreams.Modifying.md)
+ [Obtención del estado de un flujo de actividad de la base de datos](DBActivityStreams.Status.md)
+ [Detención de un flujo de actividad de la base de datos](DBActivityStreams.Disabling.md)
+ [Monitoreo de secuencias de actividades de la base de datos](DBActivityStreams.Monitoring.md)
+ [Ejemplos de políticas de IAM para flujos de actividad de base de datos](DBActivityStreams.ManagingAccess.md)

## Información general sobre flujos de actividad de la base de datos
<a name="DBActivityStreams.Overview"></a>

Como administrador de base de datos de Amazon RDS, debe proteger su base de datos y cumplir los requisitos normativos y de conformidad. Una estrategia es integrar flujos de actividad de la base de datos con sus herramientas de monitoreo. De esta manera, monitoriza y configura alarmas para la actividad de auditoría en su base de datos.

Las amenazas de seguridad son tanto externas como internas. Para protegerse contra amenazas internas, puede controlar el acceso del administrador a los flujos de datos mediante la configuración de la característica de flujos de actividad de la base de datos. Los DBA de Amazon RDS no tienen acceso a la recopilación, transmisión, almacenamiento ni procesamiento de los flujos.

**Contents**
+ [Cómo funcionan los flujos de actividad de la base de datos](#DBActivityStreams.Overview.how-they-work)
+ [Auditoría en Oracle Database y Microsoft SQL Server Database](#DBActivityStreams.Overview.auditing)
  + [Auditoría unificada en la base de datos de Oracle](#DBActivityStreams.Overview.unified-auditing)
  + [Auditoría en Microsoft SQL Server](#DBActivityStreams.Overview.SQLServer-auditing)
  + [Campos de auditoría no nativos para Oracle Database y SQL Server](#DBActivityStreams.Overview.unified-auditing.non-native)
  + [Anulación del grupo de parámetros de base de datos](#DBActivityStreams.Overview.unified-auditing.parameter-group)
+ [Modo asíncrono para flujos de actividad de la base de datos](#DBActivityStreams.Overview.sync-mode)
+ [Requisitos y limitaciones de los flujos de actividad de la base de datos](#DBActivityStreams.Overview.requirements)
+ [Disponibilidad en regiones y versiones](#DBActivityStreams.RegionVersionAvailability)
+ [Clases de instancia de base de datos admitidas para los flujos de actividad de la base de datos](#DBActivityStreams.Overview.requirements.classes)

### Cómo funcionan los flujos de actividad de la base de datos
<a name="DBActivityStreams.Overview.how-they-work"></a>

Amazon RDS envía actividades a un flujo de datos de Amazon Kinesis prácticamente en tiempo real. El flujo de Kinesis se crea automáticamente. Desde Kinesis, puede configurar servicios de AWS como Amazon Data Firehose y AWS Lambda para utilizar el flujo y almacenar los datos.

**importante**  
La característica de flujo de actividad de la base de datos en Amazon RDS se puede utilizar de forma gratuita, pero Amazon Kinesis cobra por un flujo de datos. Para obtener más información, consulte los [Precios de Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/pricing/).

Puede configurar aplicaciones para administrar la conformidad para consumir los flujos de actividad de la base de datos. Esas aplicaciones pueden utilizar el flujo para generar alertas y auditar la actividad la base de datos.

Amazon RDS admite flujos de actividad de bases de datos en implementaciones multi-AZ. En este caso, los flujos de actividad de la base de datos auditan tanto las instancias principales como en espera.

### Auditoría en Oracle Database y Microsoft SQL Server Database
<a name="DBActivityStreams.Overview.auditing"></a>

La auditoría es el monitoreo y registro de acciones de base de datos configuradas. Amazon RDS no captura las actividades de la base de datos de forma predeterminada. Cree y administre usted mismo políticas de auditoría en la base de datos.

**Topics**
+ [Auditoría unificada en la base de datos de Oracle](#DBActivityStreams.Overview.unified-auditing)
+ [Auditoría en Microsoft SQL Server](#DBActivityStreams.Overview.SQLServer-auditing)
+ [Campos de auditoría no nativos para Oracle Database y SQL Server](#DBActivityStreams.Overview.unified-auditing.non-native)
+ [Anulación del grupo de parámetros de base de datos](#DBActivityStreams.Overview.unified-auditing.parameter-group)

#### Auditoría unificada en la base de datos de Oracle
<a name="DBActivityStreams.Overview.unified-auditing"></a>

En una base de datos de Oracle, una *política de auditoría unificada* es un grupo con nombre de configuración de auditoría que se puede utilizar para auditar un aspecto del comportamiento del usuario. Una política puede ser tan simple como auditar las actividades de un solo usuario. También puede crear políticas de auditoría complejas que utilicen condiciones.

Una base de datos de Oracle escribe registros de auditoría, incluidos registros de auditoría `SYS`, en los *seguimientos de auditoría unificada*. Por ejemplo, si se produce un error durante una instrucción `INSERT`, la auditoría estándar indica el número de error y el SQL que se ejecutó. El seguimiento de auditoría reside en una tabla de solo lectura en el esquema `AUDSYS`. Para acceder a estos registros, consulte la vista `UNIFIED_AUDIT_TRAIL` del diccionario de datos.

Por lo general, se configuran flujos de actividad de la base de datos de la siguiente manera:

1. Cree una política de auditoría de base de datos de Oracle mediante el comando `CREATE AUDIT POLICY`.

   La base de datos de Oracle genera registros de auditoría.

1. Habilite la política de auditoría mediante el comando `AUDIT POLICY`.

1. Configure los flujos de actividad de la base de datos.

   Solo las actividades que coincidan con las políticas de auditoría de la base de datos de Oracle se capturan y envían al flujo de datos de Amazon Kinesis. Cuando se habilitan los flujos de actividad de la base de datos, un administrador de base de datos de Oracle no puede modificar la política de auditoría ni eliminar registros de auditoría.

Para obtener más información sobre las políticas de auditoría unificadas, consulte la sección [acerca de las actividades de auditoría con políticas de auditoría unificadas y AUDIT](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-audit-policies.html#GUID-2435D929-10AD-43C7-8A6C-5133170074D0) en la *guía de seguridad de la base de datos de Oracle*.

#### Auditoría en Microsoft SQL Server
<a name="DBActivityStreams.Overview.SQLServer-auditing"></a>

El flujo de actividad de la base de datos utiliza la característica SQLAudit para auditar la base de datos de SQL Server.

La instancia de RDS para SQL Server contiene lo siguiente:
+ Auditoría de servidor: la auditoría de SQL server recopila una sola instancia de acciones a nivel de servidor o base de datos y un grupo de acciones para supervisar. Las auditorías a nivel de servidor `RDS_DAS_AUDIT` y `RDS_DAS_AUDIT_CHANGES` las administra RDS.
+ Especificación de auditoría del servidor: la especificación de auditoría del servidor registra los eventos a nivel de servidor. Puede modificar la especificación `RDS_DAS_SERVER_AUDIT_SPEC`. Esta especificación está vinculada a la auditoría del servidor `RDS_DAS_AUDIT`. La especificación `RDS_DAS_CHANGES_AUDIT_SPEC` la administra RDS.
+ Especificación de auditoría de base de datos: la especificación de auditoría de base de datos registra los eventos a nivel de base de datos. Puede crear una especificación de auditoría de base de datos `RDS_DAS_DB_<name>` y vincularla a la auditoría del servidor `RDS_DAS_AUDIT`.

Puede configurar los flujos de actividad de la base de datos mediante la consola o la CLI. Por lo general, se configuran flujos de actividad de la base de datos de la siguiente manera:

1. (Opcional) Cree una especificación de auditoría de base de datos con el comando `CREATE DATABASE AUDIT SPECIFICATION` y vincúlela a la auditoría `RDS_DAS_AUDIT` del servidor. 

1. (Opcional) Modifique la especificación de auditoría del servidor con el comando `ALTER SERVER AUDIT SPECIFICATION` y defina las políticas. 

1. Active las políticas de auditoría de base de datos y servidor. Por ejemplo:

   `ALTER DATABASE AUDIT SPECIFICATION [<Your database specification>] WITH (STATE=ON)`

   `ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC] WITH (STATE=ON)`

1. Configure los flujos de actividad de la base de datos.

   Solo las actividades que coincidan con las políticas de auditoría de base de datos y servidor se capturan y envían a Amazon Kinesis Data Streams. Cuando se habilitan los flujos de actividad de base de datos y las políticas están bloqueadas, un administrador de base de datos no puede modificar la política de auditoría ni eliminar registros de auditoría. 
**importante**  
Si la especificación de auditoría de base de datos para una base de datos específica está habilitada y la política está bloqueada, no se puede eliminar la base de datos.

Para obtener más información sobre la auditoría de SQL Server, consulte [SQL Server Audit Components](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver16) (Componentes de auditoría de SQL Server) en la *documentación de Microsoft SQL Server*.



#### Campos de auditoría no nativos para Oracle Database y SQL Server
<a name="DBActivityStreams.Overview.unified-auditing.non-native"></a>

Cuando inicia un flujo de actividad de la base de datos, cada evento de base de datos genera un evento de flujo de actividad correspondiente. Por ejemplo, un usuario de base de datos puede ejecutar las instrucciones `SELECT` y `INSERT`. La base de datos audita estos eventos y los envía a un flujo de datos de Amazon Kinesis.

Los eventos se representan como objetos JSON en el flujo. Un objeto JSON contiene un `DatabaseActivityMonitoringRecord`, que contiene una matriz `databaseActivityEventList`. Los campos predefinidos en la matriz incluyen `class`, `clientApplication` y `command`.

De forma predeterminada, un flujo de actividad no incluye campos de auditoría nativos del motor. Puede configurar Amazon RDS para Oracle y SQL Server para que incluyan estos campos adicionales en el objeto JSON `engineNativeAuditFields`.

En Oracle Database, la mayoría de los eventos del seguimiento de auditoría unificado se asignan a campos del flujo de actividad de datos de RDS. Por ejemplo, el campo `UNIFIED_AUDIT_TRAIL.SQL_TEXT` en los mapas unificados de auditoría al campo `commandText` en un flujo de actividad de la base de datos. Sin embargo, los campos de auditoría de la base de datos de Oracle, como `OS_USERNAME`, no se asignan a campos predefinidos en un flujo de actividad de la base de datos.

En SQL Server, la mayoría de los campos del evento que registra SQLAudit se asignan a los campos del flujo de actividad de la base de datos de RDS. Por ejemplo, el campo `code` de `sys.fn_get_audit_file` en la auditoría se asigna al campo `commandText` en un flujo de actividad de la base de datos. Sin embargo, los campos de auditoría de la base de datos de SQL Server, como `permission_bitmask`, no se asignan a campos predefinidos en un flujo de actividad de la base de datos.

Para obtener más información acerca de databaseActivityEventList, consulte [Matriz JSON databaseActivityEventList para flujos de actividad de base de datos](DBActivityStreams.AuditLog.databaseActivityEventList.md).

#### Anulación del grupo de parámetros de base de datos
<a name="DBActivityStreams.Overview.unified-auditing.parameter-group"></a>

Por lo general, se adjunta un grupo de parámetros para activar la auditoría unificada en RDS para Oracle. Sin embargo, los flujos de actividad de la base de datos requieren una configuración adicional. Para mejorar la experiencia del cliente, Amazon RDS realiza lo siguiente:
+ Si activa un flujo de actividad, RDS para Oracle ignora los parámetros de auditoría del grupo de parámetros.
+ Si desactiva un flujo de actividad, RDS para Oracle deja de ignorar los parámetros de auditoría.

El flujo de actividad de la base de datos para SQL Server es independiente de los parámetros que establezca en la opción de auditoría de SQL.

### Modo asíncrono para flujos de actividad de la base de datos
<a name="DBActivityStreams.Overview.sync-mode"></a>

Los flujos de actividad en Amazon RDS siempre son asíncronos. Cuando una sesión de la base de datos genere un evento de flujo de actividad, la sesión volverá de inmediato a las actividades normales. En segundo plano, Amazon RDS convierte el evento de flujo de actividad en un registro permanente.

Si se produce un error en la tarea en segundo plano, Amazon RDS generará un evento. Dicho evento marca el principio y el fin de todo período de tiempo en el que podrían haberse perdido registros de eventos de la secuencia de actividades. El modo asíncrono favorece el rendimiento de la base de datos con respecto a la precisión de la secuencia de actividades.

### Requisitos y limitaciones de los flujos de actividad de la base de datos
<a name="DBActivityStreams.Overview.requirements"></a>

En RDS, los flujos de actividad de la base de datos tienen los límites y los requisitos siguientes:
+ Los flujos de actividad de la base de datos requieren Amazon Kinesis.
+ Se requiere AWS Key Management Service (AWS KMS) porque los flujos de actividad de la base de datos siempre están cifrados.
+ La aplicación de cifrado adicional al flujo de datos de Amazon Kinesis no es compatible con los flujos de actividad de la base de datos, que ya están cifrados con su clave AWS KMS.
+ Usted mismo debe crear y administrar las políticas de auditoría. A diferencia de Amazon Aurora, RDS para Oracle no captura las actividades de la base de datos de forma predeterminada.
+ Usted mismo debe crear y administrar las políticas o especificaciones de la auditoría. A diferencia de Amazon Aurora, Amazon RDS no captura las actividades de la base de datos de forma predeterminada.
+ En una implementación multi-AZ, inicie el flujo de actividad de la base de datos solo en la instancia de base de datos principal. El flujo de actividad audita automáticamente las instancias de base de datos principal y en espera. No hace falta realizar ningún otro paso durante una conmutación por error.
+ Al cambiar el nombre de una instancia de base de datos, no se crea un flujo de Kinesis nuevo.
+ No se admiten CDB en RDS para Oracle.
+ No se admiten réplicas de lectura.

### Disponibilidad en regiones y versiones
<a name="DBActivityStreams.RegionVersionAvailability"></a>

La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para obtener más información sobre la disponibilidad de versiones y regiones de los flujos de actividades de base de datos, consulte [Regiones y motores de base de datos admitidos para los flujos de actividad de bases de datos en Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.DBActivityStreams.md).

### Clases de instancia de base de datos admitidas para los flujos de actividad de la base de datos
<a name="DBActivityStreams.Overview.requirements.classes"></a>

Para RDS para Oracle, puede utilizar flujos de actividad de bases de datos con las siguientes clases de instancias de base de datos:
+ db.m4.\*large
+ db.m5.\*large
+ db.m5d.\*large
+ db.m6i.\*large
+ db.r4.\*large
+ db.r5.\*large
+ db.r5.\*large.tpc\*.mem\*x
+ db.r5b.\*large
+ db.r5b.\*large.tpc\*.mem\*x
+ db.r5d.\*large
+ db.r6i.\*large
+ db.r6i.\*large.tpc\*.mem\*x
+ db.x2idn.\*large
+ db.x2iedn.\*large
+ db.x2iezn.\*large
+ db.z1d.\*large

Para RDS para SQL Server, puede utilizar flujos de actividad de bases de datos con las siguientes clases de instancias de base de datos:
+ db.m4.\*large
+ db.m5.\*large
+ db.m5d.\*large
+ db.m6i.\*large
+ db.r4.\*large
+ db.r5.\*large
+ db.r5b.\*large
+ db.r5d.\*large
+ db.r6i.\*large
+ db.x1e.\*large
+ db.x2iedn.\*large
+ db.z1d.\*large

Para obtener más información sobre los tipos de clases de instancia, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md).