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 de flux d'activité de base de données
Les événements surveillés sont représentés dans le flux d'activité de la base de données sous forme de JSON chaînes. La structure consiste en un JSON objet contenant unDatabaseActivityMonitoringRecord
, qui contient à son tour un databaseActivityEventList
ensemble d'événements d'activité.
Rubriques
Exemples de journaux d'audit de flux d'activité
Vous trouverez ci-dessous des exemples de journaux d'JSONaudit déchiffrés contenant des enregistrements d'événements d'activité.
Exemple Enregistrement des événements d'activité d'un Aurora Postgre SQL CONNECT SQL
L'enregistrement d'événement d'activité suivant montre une connexion à l'aide d'une CONNECT
SQL instruction (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 des événements d'activité d'un SQL CONNECT SQL relevé Aurora My
L'enregistrement d'événement d'activité suivant montre une connexion à l'aide d'une CONNECT
SQL instruction (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 Enregistrement des événements d'activité une déclaration Aurora Postgre SQL CREATE TABLE
L'exemple suivant montre un CREATE TABLE
événement pour Aurora Postgre, SQL .
{ "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 des événements d'activité d'un SQL CREATE TABLE relevé Aurora My
L'exemple suivant montre une CREATE TABLE
instruction 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 Enregistrement des événements d'activité d'un Aurora Postgre SQL 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 des événements d'activité d'un SQL SELECT relevé Aurora My
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" } ] }
DatabaseActivityMonitoringRecordsJSONobjet
Les enregistrements des événements d'activité de la base de données se trouvent dans un JSON objet qui contient les informations suivantes.
JSONChamp | Type de données | Description |
---|---|---|
|
chaîne |
Type d'JSONenregistrement. 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 base 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 |
Un JSON objet qui contient les événements de l'activité. |
|
key | chaîne | Clé de chiffrement que vous utilisez pour déchiffrer databaseActivityEventJSONTableau de listes |
databaseActivityEvents JSONObjet
L'databaseActivityEvents
JSONobjet contient les informations suivantes.
Champs de premier niveau enregistrés JSON
Chaque événement du journal d'audit est encapsulé dans un enregistrement au JSON format. 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 les SQL versions 10.7 et 11.4 d'Aurora Postgre. La version 1.1 représente la prise en charge des flux d'activité de données pour Aurora Postgre SQL versions 10.10 et supérieures et Aurora Postgre SQL 11.5 et versions supérieures. La version 1.1 inclut les champs supplémentaires
errorMessage
etstartTime
. La version 1.2 représente la prise en charge des flux d'activité de données pour Aurora My SQL 2.08 et versions ultérieures. La version 1.2 inclut les champs supplémentairesendTime
ettransactionId
. - 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 JSON format avec des champs, comme indiqué dans les exemples de cette section.
- clé
-
Clé de données chiffrée utilisée pour chiffrer la chaîne
databaseActivityEvents
. Il s'agit du même AWS KMS key que celui que vous avez fourni lorsque vous avez démarré le flux d'activité de la 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 du
key
JSON champ à l'aide de la KMS clé que vous avez fournie lors du démarrage du flux d'activité de la base de données. Cette opération renvoie la clé de chiffrement des données en texte clair. -
Décodez en Base64 la valeur du
databaseActivityEvents
JSON champ pour 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
databaseActivityEventList
contient un tableau d'enregistrements d'audits. Les champstype
du tableau peuvent êtrerecord
ouheartbeat
.
-
L'enregistrement des événements d'activité du journal d'audit est un JSON objet qui contient les informations suivantes.
JSONChamp | Type de données | Description |
---|---|---|
|
chaîne |
Type d'JSONenregistrement. La valeur est |
clusterId |
chaîne | Identificateur de ressource de cluster de base de données. Il correspond à l'attribut de cluster de base de donnéesDbClusterResourceId . |
instanceId |
chaîne | Identificateur 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. |