Información general sobre flujos de actividad de la base de datos - Amazon Relational Database Service

Información general sobre flujos de actividad de la base de datos

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

Cómo funcionan los flujos de actividad de la base de datos

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.

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

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.

Auditoría unificada en la base de datos de Oracle

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.

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

  3. 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 en la guía de seguridad de la base de datos de Oracle.

Auditoría en Microsoft SQL Server

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.

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

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

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

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 de JSON databaseActivityEventList.

Anulación del grupo de parámetros de base de datos

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

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

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

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.

Clases de instancia de base de datos admitidas para los flujos de actividad de la base de datos

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.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.z1d.*large

Para obtener más información sobre los tipos de clases de instancia, consulte Clases de instancia de base de datos de .