Présentation des flux d'activité de base de données - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Présentation des flux d'activité de base de données

En tant qu'administrateur de base de données Amazon RDS, vous devez protéger votre base de données et satisfaire aux exigences en matière de conformité et de réglementation. Une politique consiste à intégrer les flux d'activités de base de données avec vos outils de surveillance. De cette façon, vous surveillez l'activité d'audit dans votre base de données et définissez des alarmes.

Les menaces de sécurité sont à la fois externes et internes. Pour vous protéger contre des menaces internes, vous pouvez contrôler l'accès administrateur aux flux de données à l'aide de la fonction Database Activity Streams. Les administrateurs de base de données Amazon RDS n'ont pas accès à la collecte, à la transmission, au stockage et au traitement des flux.

Fonctionnement des flux d'activité de base de données

Amazon RDS envoie (push) les activités vers un flux de données Amazon Kinesis en temps quasi réel. Le flux Kinesis est créé automatiquement. Kinesis vous permet de configurer des AWS services tels qu'Amazon Data Firehose, de consommer le flux et AWS Lambda de stocker les données.

Important

L'utilisation de la fonction de flux d'activité de base de données dans Amazon RDS est gratuite, mais Amazon Kinesis facture un flux de données. Pour plus d'informations, consultez la Tarification d'Amazon Kinesis Data Streams.

Vous pouvez configurer les applications de gestion de la conformité pour qu'elles consomment les flux d'activité des bases de données. Ces applications peuvent utiliser le flux pour générer des alertes et auditer l'activité sur votre base de données.

Amazon RDS prend en charge les flux d'activité des bases de données dans les déploiements multi-AZ. Dans ce cas, les flux d'activité de la base de données vérifient à la fois les instances principales et les instances en veille.

Audit dans Oracle Database et la base de données Microsoft SQL Server

L'audit est la surveillance et l'enregistrement d'actions de base de données configurées. Amazon RDS ne capture aucune activité de base de données par défaut. Vous créez et gérez vous-même les politiques d'audit dans votre base de données.

Audit unifié dans Oracle Database

Dans une base de données Oracle, une politique d'audit unifié est un groupe nommé de paramètres d'audit que vous pouvez utiliser pour auditer un aspect du comportement utilisateur. Une politique peut être aussi simple que l'audit des activités d'un seul utilisateur. Vous pouvez également créer des politiques d'audit complexes qui utilisent des conditions.

Une base de données Oracle écrit des enregistrements d'audit, dont des enregistrements d'audit SYS, dans la trace d'audit unifié. Par exemple, si une erreur survient pendant une instruction INSERT, un audit standard indique le numéro d'erreur et le code SQL qui a été exécuté. La trace d'audit se trouve dans une table en lecture seule dans le schéma AUDSYS. Pour accéder à ces enregistrements, interrogez la vue du dictionnaire de données UNIFIED_AUDIT_TRAIL.

Généralement, vous configurez les flux d'activité de base de données comme suit :

  1. Créez une politique d'audit Oracle Database à l'aide de la commande CREATE AUDIT POLICY.

    Oracle Database génère des enregistrements d'audit.

  2. Activez la politique d'audit à l'aide de la commande AUDIT POLICY.

  3. Configurer les flux d'activité de base de données.

    Seules les activités qui correspondent aux politiques d'audit d'Oracle Database sont capturées et envoyées au flux de données Amazon Kinesis. Lorsque les flux d'activité de base de données sont activés, un administrateur de base de données Oracle ne peut pas modifier la politique d'audit ou supprimer des journaux d'audit.

Pour en savoir plus sur les politiques d'audit unifié, consultez About Auditing Activities with Unified Audit Policies and AUDIT dans Oracle Database Security Guide.

Audit dans Microsoft SQL Server

Le flux d'activité de base de données utilise la fonctionnalité SQLAudit pour auditer la base de données SQL Server.

L'instance RDS pour SQL Server contient les éléments suivants :

  • Audit de serveur – L'audit SQL Server collecte une instance unique d'actions au niveau du serveur ou de la base de données, ainsi qu'un groupe d'actions à surveiller. Les audits au niveau du serveur RDS_DAS_AUDIT et RDS_DAS_AUDIT_CHANGES sont gérés par RDS.

  • Spécification d'audit de serveur – La spécification d'audit de serveur enregistre les événements au niveau du serveur. Vous pouvez modifier la spécification RDS_DAS_SERVER_AUDIT_SPEC. Cette spécification est liée à l'audit du serveur RDS_DAS_AUDIT. La spécification RDS_DAS_CHANGES_AUDIT_SPEC est gérée par RDS.

  • Spécification d'audit de base de données – La spécification d'audit de base de données enregistre les événements au niveau du serveur. Vous pouvez créer une spécification d'audit de base de données RDS_DAS_DB_<name> et la lier à l'audit de serveur RDS_DAS_AUDIT.

Vous pouvez configurer les flux d'activité de base de données à l'aide de la console ou de l'interface de ligne de commande. Généralement, vous configurez les flux d'activité de base de données comme suit :

  1. (Facultatif) Créez une spécification d'audit de base de données à l'aide de la commande CREATE DATABASE AUDIT SPECIFICATION et associez-la à l'audit de serveur RDS_DAS_AUDIT.

  2. (Facultatif) Modifiez la spécification d'audit de serveur à l'aide de la commande ALTER SERVER AUDIT SPECIFICATION et définissez les politiques.

  3. Activez les politiques d'audit de base de données et de serveur. Par exemple :

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

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

  4. Configurer les flux d'activité de base de données.

    Seules les activités qui correspondent aux politiques d'audit de serveur et de base de données sont capturées et envoyées au flux de données Amazon Kinesis. Quand les flux d'activité de base de données sont activés et que les politiques sont verrouillées, un administrateur de base de données ne peut pas modifier la politique d'audit ni supprimer des journaux d'audit.

    Important

    Si la spécification d'audit de base de données pour une base de données spécifique est activée et que la politique est à l'état verrouillé, la base de données ne peut pas être supprimée.

Pour plus d'informations sur l'audit SQL Server, consultez Composants d'audit SQL Server dans la documentation sur Microsoft SQL Server.

Champs d'audit non natifs pour Oracle Database et SQL Server

Lorsque vous démarrez un flux d'activité de base de données, chaque événement de base de données génère un événement de flux d'activité correspondant. Par exemple, un utilisateur de base de données peut exécuter des instructions SELECT et INSERT. La base de données audite ces événements et les envoie à un flux de données Amazon Kinesis Data Stream.

Les événements sont représentés dans le flux comme des objets JSON. Un objet JSON contient un DatabaseActivityMonitoringRecord, qui contient un tableau databaseActivityEventList. Les champs prédéfinis dans le tableau sont class, clientApplication et command.

Par défaut, un flux d'activité n'inclut pas de champs d'audit natifs du moteur. Vous pouvez configurer Amazon RDS pour Oracle et SQL Server de sorte qu'il inclue ces champs supplémentaires dans l'objet JSON engineNativeAuditFields.

Dans Oracle Database, la plupart des événements dans la trace d'audit unifié sont mappés à des champs dans le flux d'activité de données RDS. Par exemple, le champ UNIFIED_AUDIT_TRAIL.SQL_TEXT dans un audit mappe au champ commandText dans un flux d'activité de base de données. Toutefois, des champs d'audit d'Oracle Database tels que OS_USERNAME ne mappent pas à des champs prédéfinis dans un flux d'activité de base de données.

Dans SQL Server, la plupart des champs de l'événement enregistrés par SQLAudit sont mappés aux champs du flux d'activité de base de données RDS. Par exemple, le champ code issu de sys.fn_get_audit_file dans l'audit est mappé sur le champ commandText dans un flux d'activité de base de données. Toutefois, les champs d'audit de base de données SQL Server, tels que permission_bitmask, ne sont pas mappés sur les champs prédéfinis dans un flux d'activité de base de données.

Pour plus d'informations sur databaseActivityEvent List, consultezdatabaseActivityEventTableau JSON de liste.

Remplacement de groupe de paramètres de base de données

En règle générale, vous activez l'audit unifié dans RDS for Oracle en attachant un groupe de paramètres. Toutefois, les flux d'activité de base de données nécessitent une configuration supplémentaire. Pour améliorer votre expérience client, Amazon RDS procède comme suit :

  • Si vous activez un flux d'activité, RDS pour Oracle ignore les paramètres d'audit dans le groupe de paramètres.

  • Si vous désactivez un flux d'activité, RDS pour Oracle cesse d'ignorer les paramètres d'audit.

Le flux d'activité de base de données pour SQL Server est indépendant des paramètres que vous définissez dans l'option d'audit SQL.

Mode asynchrone pour les flux d'activité de base de données

Les flux d'activité dans Amazon RDS sont toujours asynchrones. Quand une session de base de données génère un événement de flux d'activité, la session revient immédiatement aux activités normales. En arrière-plan, Amazon RDS transforme l'événement de flux d'activité en un enregistrement durable.

Si une erreur se produit dans la tâche en arrière-plan, Amazon RDS génère un événement. Cet événement indique le début et la fin de toute fenêtre de temps au cours de laquelle des enregistrements d'événement de flux d'activité ont pu être perdus. Le mode asynchrone favorise les performances de la base de données plutôt que la précision du flux d'activité.

Exigences et limites pour les flux d'activité de base de données

Dans RDS, les flux d'activité de base de données présentent les limites et les exigences suivantes :

  • Amazon Kinesis est nécessaire pour les flux d'activité des bases de données.

  • AWS Key Management Service (AWS KMS) est obligatoire pour les flux d'activité de base de données car ils sont toujours chiffrés.

  • L'application d'un chiffrement supplémentaire à votre flux de données Amazon Kinesis est incompatible avec les flux d'activité de base de données, qui sont déjà chiffrés avec votre AWS KMS clé.

  • Vous créez et gérez vous-même les politiques d'audit. Contrairement à Amazon Aurora, RDS for Oracle ne capture aucune activité de base de données par défaut.

  • Vous créez et gérez vous-même les politiques d'audit ou les spécifications. Contrairement à Amazon Aurora, Amazon RDS ne capture aucune activité de base de données par défaut.

  • Dans un déploiement multi-AZ, démarrez le flux d'activité de base de données uniquement sur l'instance de base de données principale. Le flux d'activité vérifie automatiquement les instances de base de données principales et en veille. Aucune étape supplémentaire n'est requise lors d'un basculement.

  • Le fait de renommer une instance de base de données ne crée pas un nouveau flux Kinesis.

  • Les bases de données Conteneur (CDB) ne sont pas prises en charge pour RDS pour Oracle.

  • Les réplicas en lecture ne sont pas pris en charge.

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions avec les flux d'activité des bases de données, consultez Flux d'activité de base de données..

Classes d'instance de base de données prises en charge pour les flux d'activité de base de données

Pour RDS pour Oracle, vous pouvez utiliser des flux d'activité de base de données avec les classes d'instances de base de données suivantes :

  • 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

Pour RDS pour SQL Server, vous pouvez utiliser des flux d'activité de base de données avec les classes d'instances de base de données suivantes :

  • 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

Pour plus d'informations sur les types de classes d'instances , consultez Classes d'instances de base de données .