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.
Contenu du journal d’audit et exemples pour les flux d’activité de base de données
Les événements surveillés sont représentés dans le flux d’activité de base de données sous la forme de chaînes JSON. La structure se compose d’un objet JSON contenant un DatabaseActivityMonitoringRecord, qui contient lui-même un tableau des événements d’activité databaseActivityEventList.
Note
Pour les flux d’activité de base de données, le tableau JSON paramList n’inclut pas les valeurs null des applications Hibernate.
Rubriques
Exemples de journaux d’audit de flux d’activité
Vous trouverez ci-après des exemples de journaux d’audits JSON déchiffrés d’enregistrements d’événements d’activité.
Exemple Enregistrement d’événement d’activité d’une instruction Aurora PostgreSQL CONNECT SQL
L’enregistrement d’événement d’activité suivant indique une connexion à l’aide d’une instruction SQL CONNECT (command) par un client psql (clientApplication).
{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-10-30 00:39:49.940668+00", "logTime": "2019-10-30 00:39:49.990579+00", "statementId": 1, "substatementId": 1, "objectType": null, "command": "CONNECT", "objectName": null, "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "49804", "sessionId": "5ce5f7f0.474b", "rowCount": null, "commandText": null, "paramList": [], "pid": 18251, "clientApplication": "psql", "exitCode": null, "class": "MISC", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
Exemple Enregistrement d’événement d’activité d’une instruction Aurora MySQL CONNECT SQL
L’enregistrement d’événement d’activité suivant indique une connexion à l’aide d’une instruction SQL CONNECT (command) par un client mysql (clientApplication).
{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:13.267214+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"rdsadmin", "databaseName":"", "remoteHost":"localhost", "remotePort":"11053", "command":"CONNECT", "commandText":"", "paramList":null, "objectType":"TABLE", "objectName":"", "statementId":0, "substatementId":1, "exitCode":"0", "sessionId":"725121", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:13.267207+00", "endTime":"2020-05-22 18:07:13.267213+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }
Exemple Registre d’événement d’activité d’une instruction Aurora PostgreSQL CREATE TABLE
L’exemple suivant montre un événement CREATE TABLE pour Aurora PostgreSQL.
{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-05-24 00:36:54.403455+00", "logTime": "2019-05-24 00:36:54.494235+00", "statementId": 2, "substatementId": 1, "objectType": null, "command": "CREATE TABLE", "objectName": null, "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "34534", "sessionId": "5ce73c6f.7e64", "rowCount": null, "commandText": "create table my_table (id serial primary key, name varchar(32));", "paramList": [], "pid": 32356, "clientApplication": "psql", "exitCode": null, "class": "DDL", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
Exemple Enregistrement d’événement d’activité d’une instruction CREATE TABLE Aurora MySQL
L’exemple suivant montre une instruction CREATE TABLE pour Aurora MySQL. L’opération est représentée sous la forme de deux enregistrements d’événements distincts. Un événement a "class":"MAIN". L’autre événement a "class":"AUX". Les messages peuvent arriver dans n’importe quel ordre. Le champ logTime de l’événement MAIN est toujours antérieur au champ logTime des événements AUX correspondants.
L’exemple suivant montre l’événement avec une valeur class de MAIN.
{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:12.250221+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"QUERY", "commandText":"CREATE TABLE test1 (id INT)", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65459278, "substatementId":1, "exitCode":"0", "sessionId":"725118", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:12.226384+00", "endTime":"2020-05-22 18:07:12.250222+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }
L’exemple suivant montre l’événement correspondant avec une valeur class de AUX.
{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:12.247182+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"CREATE", "commandText":"test1", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65459278, "substatementId":2, "exitCode":"", "sessionId":"725118", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:12.226384+00", "endTime":"2020-05-22 18:07:12.247182+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"AUX" } ] }
Exemple Registre d’événement d’activité d’une instruction Aurora PostgreSQL SELECT
L’exemple suivant montre un événement SELECT .
{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-05-24 00:39:49.920564+00", "logTime": "2019-05-24 00:39:49.940668+00", "statementId": 6, "substatementId": 1, "objectType": "TABLE", "command": "SELECT", "objectName": "public.my_table", "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "34534", "sessionId": "5ce73c6f.7e64", "rowCount": 10, "commandText": "select * from my_table;", "paramList": [], "pid": 32356, "clientApplication": "psql", "exitCode": null, "class": "READ", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
{ "type": "DatabaseActivityMonitoringRecord", "clusterId": "", "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q", "databaseActivityEventList": [ { "class": "TABLE", "clientApplication": "Microsoft SQL Server Management Studio - Query", "command": "SELECT", "commandText": "select * from [testDB].[dbo].[TestTable]", "databaseName": "testDB", "dbProtocol": "SQLSERVER", "dbUserName": "test", "endTime": null, "errorMessage": null, "exitCode": 1, "logTime": "2022-10-06 21:24:59.9422268+00", "netProtocol": null, "objectName": "TestTable", "objectType": "TABLE", "paramList": null, "pid": null, "remoteHost": "local machine", "remotePort": null, "rowCount": 0, "serverHost": "172.31.30.159", "serverType": "SQLSERVER", "serverVersion": "15.00.4073.23.v1.R1", "serviceName": "sqlserver-ee", "sessionId": 62, "startTime": null, "statementId": "0x03baed90412f564fad640ebe51f89b99", "substatementId": 1, "transactionId": "4532935", "type": "record", "engineNativeAuditFields": { "target_database_principal_id": 0, "target_server_principal_id": 0, "target_database_principal_name": "", "server_principal_id": 2, "user_defined_information": "", "response_rows": 0, "database_principal_name": "dbo", "target_server_principal_name": "", "schema_name": "dbo", "is_column_permission": true, "object_id": 581577110, "server_instance_name": "EC2AMAZ-NFUJJNO", "target_server_principal_sid": null, "additional_information": "", "duration_milliseconds": 0, "permission_bitmask": "0x00000000000000000000000000000001", "data_sensitivity_information": "", "session_server_principal_name": "test", "connection_id": "AD3A5084-FB83-45C1-8334-E923459A8109", "audit_schema_version": 1, "database_principal_id": 1, "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000", "user_defined_event_id": 0, "host_name": "EC2AMAZ-NFUJJNO" } } ] }
Exemple Enregistrement d’événement d’activité d’une instruction SELECT Aurora MySQL
L’exemple suivant montre un événement SELECT.
L’exemple suivant montre l’événement avec une valeur class de MAIN.
{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:29:57.986467+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"QUERY", "commandText":"SELECT * FROM test1 WHERE id < 28", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65469218, "substatementId":1, "exitCode":"0", "sessionId":"726571", "rowCount":2, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:29:57.986364+00", "endTime":"2020-05-22 18:29:57.986467+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }
L’exemple suivant montre l’événement correspondant avec une valeur class de AUX.
{ "type":"DatabaseActivityMonitoringRecord", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:29:57.986399+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"READ", "commandText":"test1", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65469218, "substatementId":2, "exitCode":"", "sessionId":"726571", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:29:57.986364+00", "endTime":"2020-05-22 18:29:57.986399+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"AUX" } ] }
Objet JSON DatabaseActivityMonitoringRecords
Les enregistrements d’événement d’activité de base de données se trouvent dans un objet JSON qui contient les informations suivantes.
| Champ JSON | Type de données | Description |
|---|---|---|
|
|
chaîne |
Type de l’enregistrement JSON. La valeur est |
version |
chaîne | Version des enregistrements de surveillance d’activité de base de données. La version des enregistrements d’activité de base de données générés dépend de la version du moteur du cluster de bases de données.
Tous les champs suivants sont à la fois dans la version 1.0 et dans la version 1.1, sauf indication spécifique. |
| chaîne |
Objet JSON qui contient les événements d’activité. |
|
| key | chaîne | Clé de chiffrement que vous utilisez pour déchiffrer Tableau JSON databaseActivityEventList |
Objet JSON databaseActivityEvents
L’objet JSON databaseActivityEvents contient les informations suivantes.
Champs de niveau supérieur dans l’enregistrement JSON
Chaque événement du journal d’audit est encapsulé dans un enregistrement au format JSON. Cet enregistrement contient les champs suivants.
- type
-
Ce champ a toujours la valeur
DatabaseActivityMonitoringRecords. - version ;
-
Ce champ représente la version du contrat ou du protocole de données de flux d’activité de base de données. Il définit les champs disponibles.
La version 1.0 représente la prise en charge des flux d’activité de données d’origine pour Aurora PostgreSQL versions 10.7 et 11.4. La version 1.1 représente la prise en charge des flux d’activité de données pour Aurora PostgreSQL versions 10.10 et ultérieures et Aurora PostgreSQL version 11.5 et ultérieures. La version 1.1 inclut les champs supplémentaires
errorMessageetstartTime. La version 1.2 représente la prise en charge des flux d’activité de données pour Aurora MySQL version 2.08 et ultérieures. La version 1.2 inclut les champs supplémentairesendTimeettransactionId. - databaseActivityEvents
-
Chaîne chiffrée représentant un ou plusieurs événements d’activité. Elle est représentée sou la forme d’un tableau base64 octets. Lorsque vous déchiffrez la chaîne, le résultat est un enregistrement au format JSON avec des champs comme ceux des exemples de cette section.
- key
-
Clé de données chiffrée utilisée pour chiffrer la chaîne
databaseActivityEvents. Il s’agit de la même clé AWS KMS key que celle que vous avez fournie lorsque vous avez démarré le flux d’activité de base de données.
L’exemple suivant illustre le format de cet enregistrement.
{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents":"encrypted audit records", "key":"encrypted key" }
Pour déchiffrer le contenu du champ databaseActivityEvents, procédez comme suit :
-
Déchiffrez la valeur dans le champ JSON
keyà l’aide de la clé KMS que vous avez fournie lors du démarrage du flux d’activité de base de données. Cette opération renvoie la clé de chiffrement des données en texte clair. -
Décodez en base64 la valeur dans le champ JSON
databaseActivityEventspour obtenir le texte chiffré, au format binaire, de la charge utile d’audit. -
Déchiffrez le chiffrement binaire avec la clé de chiffrement de données que vous avez décodée au cours de la première étape.
-
Décompressez la charge utile déchiffrée.
-
La charge utile chiffrée se trouve dans le champ
databaseActivityEvents. -
Le champ
databaseActivityEventListcontient un tableau d’enregistrements d’audits. Les champstypedu tableau peuvent êtrerecordouheartbeat.
-
L’enregistrement d’événement d’activité du journal d’audit est un objet JSON qui contient les informations suivantes.
| Champ JSON | Type de données | Description |
|---|---|---|
|
|
chaîne |
Type de l’enregistrement JSON. La valeur est |
clusterId |
chaîne | Identifiant de ressource de cluster de base de données. Il correspond à l’attribut de cluster de bases de donnéesDbClusterResourceId. |
instanceId |
chaîne | Identifiant de ressource d’instance de base de données. Il correspond à l’attribut d’instance de base de données DbiResourceId. |
| chaîne |
Tableau d’enregistrements d’audits d’activité ou de messages de pulsations. |