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 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 paramList
JSON n'inclut pas les valeurs nulles 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" } ] }
DatabaseActivityMonitoringRecordsObjet JSON
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 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 |
Objet JSON qui contient les événements d'activité. |
|
key | chaîne | Clé de chiffrement que vous utilisez pour déchiffrer databaseActivityEventTableau JSON de liste |
databaseActivityEvents Objet JSON
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 supérieures et Aurora PostgreSQL version 11.5 et 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 MySQL version 2.08 et supé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 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 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 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
databaseActivityEvents
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 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 | 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. |