Pour surveiller l'activité de la base de données et répondre aux exigences de conformité gouvernementales, financières et ISO, vous pouvez afficher et interroger les journaux d'audit des accès aux données générés par pgAudit pour AlloyDB pour PostgreSQL dans Cloud Logging. Vous pouvez également inspecter le format d'entrée de journal pgAudit et surveiller l'état du pipeline de journalisation d'audit dans Cloud Monitoring. Pour en savoir plus sur pgAudit, consultez À propos de pgAudit.
Avant de commencer
Pour afficher les journaux d'audit, procédez comme suit :
Activez les journaux d'audit des accès aux données pour votre projet AlloyDB.
Demandez à votre administrateur de vous attribuer le rôle Visionneuse de journaux privés (
roles/logging.privateLogViewer).
Consulter les journaux d'audit
Les journaux pgAudit générés pour une instance donnée sont envoyés à Cloud Logging en tant que journaux d'audit des accès aux données.
Vous pouvez afficher les journaux pgAudit générés dans l'explorateur de journaux.
Pour afficher les journaux pgAudit, sélectionnez le filtre de journaux cloudaudit.googleapis.com/data_access dans l'application Explorateur de journaux.
Pour afficher tous les journaux pgAudit d'un projet AlloyDB, exécutez la requête suivante à l'aide de l'interface Filtre avancé :
resource.type="alloydb.googleapis.com/Instance" logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
Remplacez PROJECT_ID par l'ID de votre projet AlloyDB.
Format des journaux pour pgAudit
Chaque entrée de journal pgAudit dans les journaux d'audit des accès aux données contient des champs qui représentent les informations collectées pour une requête. Pour en savoir plus sur ces champs d'entrée de journal, consultez la documentation pgAudit.
Exemple d'entrée de journal pgAudit :
{
protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
methodName: "alloydb.instances.query"
request: {
@type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
auditClass: "READ"
auditType: "SESSION"
chunkCount: "1"
chunkIndex: "1"
command: "SELECT"
database: "finance"
databaseSessionId: 2209692
parameter: "[not logged]"
statement: "SELECT * FROM revenue"
statementId: 2
substatementId: 1
user: "alice"
}
}
}
Vous trouverez ci-dessous la description des champs disponibles dans les journaux d'audit pour l'accès aux données :
- auditClass. Type d'instruction consigné. Les valeurs possibles sont READ, WRITE, FUNCTION, ROLE, LDD, MISC et MISC_SET.
- auditType. SESSION ou OBJECT.
- chunkCount. La segmentation peut se produire sur les données fournies dans les champs
parameteretstatement. Le champchunkCountindique le nombre total de fragments. Consultez également la description du champchunkIndex. - chunkIndex. Spécifie le numéro d'index des fragments de données dans les champs
parameteretstatementdu conteneurrequestactuel. Le nombre initial est1. Reportez-vous également à la description du champchunkCount. - mklink. Par exemple, ALTER TABLE ou SELECT.
- . Le champ
chunkIndexpeut déterminer le contenu de ce champ. Consultez la description du champchunkIndex. Si la valeur de l'optionpgaudit.log_parameterest définie, le champparameterpeut contenir les paramètres de l'instruction sous forme de données CSV entre guillemets.[none]si aucun paramètre n'est défini. Dans le cas contraire, ce champ contient la valeur[not logged](non consigné). - statement. Instruction exécutée sur le backend.
Le champ
chunkIndexpeut déterminer le contenu du champstatement. Consultez la description du champchunkIndex. - statementId. Identifiant d'instruction unique pour cette session. Chaque ID d'instruction représente un appel de backend. Les ID d'instruction sont séquentiels, même si certaines instructions ne sont pas consignées.
- substatementId. ID séquentiel de chaque sous-instruction dans l'instruction principale.
Surveiller l'état du pipeline des journaux d'audit
AlloyDB traite les journaux d'audit générés par l'utilisateur de manière asynchrone avant de les transférer de manière sécurisée vers Cloud Logging. Vous pouvez surveiller l'état, le débit et l'arriéré du pipeline de journalisation d'audit pour vos instances et vos nœuds à l'aide de Cloud Monitoring.
Les métriques suivantes sont disponibles sur la ressource surveillée alloydb.googleapis.com/InstanceNode dans l'explorateur de métriques :
| Nom de la métrique | Nom à afficher | Genre de métrique / Type de valeur | Unité | Description |
|---|---|---|---|---|
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count |
Taille du backlog du journal d'audit | GAUGE / INT64 | Octets (By) |
Taille, en octets, du backlog du journal d'audit sur le nœud en attente de traitement et d'importation dans Cloud Logging. Une valeur élevée ou croissante indique une contre-pression dans le pipeline de transfert des journaux d'audit. |
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count |
Octets de journal d'audit traités | DELTA / INT64 | Octets (By) |
Nombre total d'octets de données de journal d'audit traités et transférés avec succès vers Cloud Logging depuis le nœud. |
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count |
Entrées de journal d'audit traitées | DELTA / INT64 | Nombre (1) |
Nombre total d'entrées de journal d'audit traitées et transférées vers Cloud Logging depuis le nœud. |
Pour en savoir plus, consultez la documentation de référence sur les métriques d'insights système.