Spanner Omni écrit des journaux d'audit qui enregistrent les activités d'administration et les accès aux données dans vos déploiements Spanner Omni.
Les journaux d'audit vous aident à répondre à la question "Qui a fait quoi, où et quand ?". Utilisez les journaux d'audit pour aider vos entités de sécurité, d'audit et de conformité à surveiller vos données et systèmes Spanner Omni afin de détecter d'éventuelles failles ou un usage abusif des données externes.
Avant de commencer
Configurez votre déploiement Spanner Omni avec le chiffrement TLS ou TLS mutuel (mTLS). Si vous créez un déploiement sans chiffrement TLS ni mTLS, aucun journal d'audit n'est généré. Pour savoir comment créer un déploiement avec chiffrement TLS ou mTLS, consultez les pages suivantes :
Types de journaux d'audit
Spanner Omni est compatible avec les types de journaux d'audit suivants.
Journaux d'audit pour les activités d'administration
Les journaux d'audit des activités d'administration enregistrent les appels d'API qui modifient la configuration ou les métadonnées de votre déploiement. Par exemple, Spanner Omni écrit des journaux d'audit des activités d'administration lorsqu'un utilisateur crée une base de données.
Les journaux d'audit pour les activités d'administration sont générés par défaut pour les déploiements configurés avec le chiffrement TLS et mTLS. Vous ne pouvez pas les configurer, les exclure ni les désactiver.
Pour obtenir la liste des méthodes qui écrivent des journaux d'audit pour les activités d'administration, consultez Méthodes par type d'autorisation.
Journaux d'audit pour l'accès aux données
Les journaux d'audit pour l'accès aux données enregistrent les appels d'API qui lisent la configuration ou les métadonnées de votre déploiement, ainsi que les appels d'API qui créent, modifient ou lisent les données utilisateur. Par exemple, Spanner Omni écrit des journaux d'audit pour l'accès aux données lorsqu'un utilisateur décrit une base de données, exécute une requête SQL ou exécute une instruction de langage de manipulation de données (LMD).
Les journaux d'audit d'accès aux données sont désactivés par défaut, car ils peuvent être volumineux. Pour enregistrer les événements d'accès aux données, activez-les et configurez-les explicitement. Les journaux d'audit pour l'accès aux données aident l'assistance Google à résoudre les problèmes. Nous vous recommandons donc de les activer.
Pour savoir comment configurer ces journaux, consultez Configurer les journaux d'audit pour l'accès aux données. Pour obtenir la liste des méthodes qui écrivent des journaux d'audit pour l'accès aux données, consultez Méthodes par type d'autorisation.
Journaux d'audit des événements système
Les journaux d'audit des événements système enregistrent les modifications apportées par le système à la configuration de vos ressources Spanner Omni sans action directe de l'utilisateur. Par exemple, Spanner Omni écrit un journal d'audit des événements système lorsque le système optimise automatiquement une base de données nouvellement restaurée ou crée une sauvegarde planifiée.
Les journaux d'audit des événements système sont générés par défaut pour les déploiements configurés avec le chiffrement TLS et mTLS. Vous ne pouvez pas les configurer, les exclure ni les désactiver.
Pour en savoir plus sur les événements système qui génèrent ces journaux, consultez Événements système.
Configurer les journaux d'audit des accès aux données
Pour activer les journaux d'audit d'accès aux données, configurez la stratégie Identity and Access Management (IAM) pour votre déploiement à l'aide de Spanner Omni CLI ou de l'API. Vous pouvez activer la journalisation pour des types d'autorisations spécifiques et exempter certains utilisateurs de la journalisation.
Autorisations requises
Pour configurer les journaux d'audit pour l'accès aux données, vous devez disposer de l'autorisation spanner.instances.setIamPolicy.
Pour afficher les configurations des journaux d'audit pour l'accès aux données, vous devez disposer de l'autorisation spanner.instances.getIamPolicy.
Types d'autorisations
Les méthodes d'API vérifient les autorisations IAM, et chaque autorisation est associée à un type d'autorisation. Lorsque vous configurez les journaux d'audit pour l'accès aux données, spécifiez les types d'autorisations à enregistrer. Les types d'autorisations sont classés comme suit :
Types d'autorisation d'accès aux données :
ADMIN_READ: enregistre les méthodes d'API qui lisent les métadonnées ou les informations de configuration. Par exemple, en décrivant une base de données.DATA_READ: enregistre les méthodes d'API qui lisent les données utilisateur. Par exemple, l'exécution d'une requête SQL.DATA_WRITE: enregistre les méthodes d'API qui écrivent des données utilisateur. Par exemple, l'exécution d'une instruction LMD.
Type d'autorisation "Activité d'administration" :
ADMIN_WRITE: coché pour les méthodes d'API qui écrivent des métadonnées ou des informations de configuration (par exemple, la création d'une base de données). Ces journaux génèrent des journaux d'audit des activités d'administration et ne peuvent pas être configurés.
Pour obtenir une explication détaillée des types d'autorisations, consultez Types d'autorisations dans la documentation Cloud Audit Logs.
Configurer à l'aide de la CLI Spanner Omni
Pour configurer les journaux d'audit pour l'accès aux données à l'aide de la CLI Spanner Omni, créez un fichier de stratégie JSON qui liste les types de journaux à activer et les membres exemptés, puis appliquez la stratégie.
Créez un fichier de règles nommé
policy.json:{ "auditConfigs": [ { "auditLogConfigs": [ { "logType": "ADMIN_READ", "exemptedMembers": [ "USER_NAME" ] }, { "logType": "DATA_WRITE" }, { "logType": "DATA_READ" } ], "service": "spanner.googleapis.com" } ] }Appliquez la règle à l'aide de la commande
spanner instances set-iam-policy:spanner instances set-iam-policy default policy.json
Pour afficher la configuration actuelle des journaux d'audit pour l'accès aux données, exécutez la commande suivante :
spanner instances get-iam-policy default
Pour obtenir d'autres exemples de cas d'utilisation courants pour la configuration, consultez Configurer les journaux d'audit des accès aux données dans la documentation Cloud Audit Logs.
Événements système
Spanner Omni génère des journaux d'audit d'événements système pour la plupart des événements système compatibles avec la version gérée de Spanner. Pour en savoir plus, consultez Événements système dans la documentation Spanner.
Spanner Omni est compatible avec les événements système CreateScheduledBackup et OptimizeRestoredDatabase. Toutefois, Spanner Omni n'est pas compatible avec l'événement système AutoscaleInstance, car l'autoscaling n'est pas disponible dans Spanner Omni.
Fichiers journaux d'audit et conservation
Spanner Omni écrit les journaux d'audit dans le système de fichiers local de vos serveurs Spanner Omni.
Recherchez les fichiers journaux d'audit en utilisant le chemin d'accès et la convention de nommage suivants :
BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID
BASE_DIR: répertoire de base spécifié lors du démarrage de votre déploiement Spanner Omni. Pour les déploiements Kubernetes, la valeur par défaut est/spanner.PROCESS: Spanner Omni exécute plusieurs processus par serveur, tels queserver,zone_services,zonal_zone_services,zonal_serveretbase_services. Les journaux d'audit sont écrits dans le répertoire correspondant au processus qui les a générés.BUCKET: les journaux d'audit des activités d'administration et des événements système sont écrits dans le bucketrequired, tandis que les journaux d'audit des accès aux données sont écrits dans le bucketdefault.TIMESTAMP: code temporel de la création du fichier.PROCESS_ID: ID du processus qui écrit le journal d'audit.
Spanner Omni crée un fichier journal d'audit lorsque le fichier actuel dépasse 50 Mio ou lorsqu'un processus de serveur redémarre. Il gère également automatiquement un lien symbolique de BASE_DIR/logs/PROCESS/audit.log.BUCKET vers le fichier journal d'audit en cours d'écriture.
L'accès aux fichiers journaux d'audit locaux est contrôlé par les listes de contrôle d'accès (LCA) de votre système de fichiers. Toute personne autorisée à se connecter au serveur et à accéder à ces fichiers peut consulter les journaux d'audit.
Nous vous recommandons de limiter l'accès aux VM Spanner Omni (par exemple, en limitant l'accès SSH et en configurant les LCA du système de fichiers) afin que seul le personnel autorisé puisse consulter les journaux. Pour le stockage à long terme, l'audit et la conformité, utilisez un agent de journalisation (tel que Fluentd) pour collecter et exporter les journaux d'audit vers un système de journalisation externe, tel que AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk ou Cloud Monitoring.
Conservation des fichiers
Spanner Omni applique des règles de conservation basées sur la taille et l'âge pour les fichiers journaux d'audit locaux :
Limite de taille : les fichiers journaux d'audit sont conservés jusqu'à ce que leur utilisation totale de l'espace disque dépasse 1 Go. Si un disque distinct est utilisé pour le répertoire des journaux, les fichiers journaux d'audit se voient attribuer un quota de 25% de l'espace total sur ce disque.
Limite d'ancienneté : les fichiers journaux d'audit sont conservés pendant 14 jours maximum, à condition que la limite de taille ne soit pas dépassée.
Lorsque l'une ou l'autre limite est atteinte, Spanner Omni supprime d'abord les fichiers journaux les plus anciens. Si vous devez conserver les journaux d'audit pendant plus de 14 jours, exportez-les vers un système de journalisation externe.
Structure des entrées des journaux d'audit
Les entrées de journal d'audit Spanner Omni sont au format JSON et utilisent la même définition structurelle que Spanner. Pour en savoir plus, consultez la section Structure des entrées de journal d'audit dans la documentation Cloud Audit Logs.
Nom du journal
Contrairement à la version Spanner gérée et mutualisée, Spanner Omni s'exécute en tant que déploiement à locataire unique sur des serveurs dédiés. Comme il n'y a pas d'autres locataires ni projets sur ces serveurs, toutes les entrées du journal d'audit utilisent l'identifiant de projet default.
projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event
Identités des appelants
Les journaux d'audit enregistrent l'identité de l'utilisateur ayant effectué l'opération consignée.
L'identité de l'appelant est stockée dans le champ AuthenticationInfo de l'objet AuditLog.
Dans Spanner Omni, l'identité de l'appelant correspond au nom d'utilisateur de l'utilisateur authentifié qui a effectué l'appel d'API. Pour en savoir plus sur la création et la gestion des utilisateurs, consultez Authentification et autorisation.
Adresse IP de l'appelant
Spanner Omni n'est pas compatible avec l'enregistrement de l'adresse IP de l'appelant dans les journaux d'audit.
Méthodes par type d'autorisation
Lorsque vous appelez une méthode d'API, Spanner Omni génère un journal d'audit en fonction du type d'autorisation requis pour exécuter la méthode. Les méthodes nécessitant les autorisations ADMIN_READ, DATA_READ ou DATA_WRITE génèrent des journaux d'audit d'accès aux données, tandis que les méthodes nécessitant les autorisations ADMIN_WRITE génèrent des journaux d'audit d'activité d'administration.
Spanner Omni est compatible avec la plupart des méthodes de l'API Cloud Spanner. Pour connaître la classification des méthodes de journalisation des audits partagées par Spanner et Spanner Omni, consultez Méthodes par type d'autorisation dans la documentation Spanner.
Spanner Omni introduit également des méthodes d'API uniques qui génèrent des journaux d'audit. Les méthodes marquées comme opérations de longue durée (LRO) génèrent généralement deux entrées de journal d'audit : une au début de l'opération et une autre à la fin. Pour en savoir plus, consultez Opérations de longue durée dans la documentation Cloud Audit Logs.
| Type d'autorisation | Méthodes |
|---|---|
ADMIN_READ |
google.spanner.omni.v1.OmniAdmin.GetLocationgoogle.spanner.omni.v1.OmniAdmin.ListLocationgoogle.spanner.omni.v1.OmniAdmin.GetLocationDistancegoogle.spanner.omni.v1.OmniAdmin.ListLocationDistancegoogle.spanner.omni.v1.OmniAdmin.GetZonegoogle.spanner.omni.v1.OmniAdmin.ListZonesgoogle.spanner.omni.v1.OmniAdmin.GetServergoogle.spanner.omni.v1.OmniAdmin.ListServersgoogle.spanner.omni.v1.OmniAdmin.GetDeploymentgoogle.spanner.omni.v1.OmniAdmin.ListBackupDescriptorsgoogle.spanner.omni.v1.OmniAdmin.GetExternalStoragegoogle.spanner.omni.v1.OmniAdmin.ListExternalStoragesgoogle.spanner.omni.v1.OmniAdmin.GetIamPolicygoogle.spanner.omni.v1.UsersService.GetUsergoogle.spanner.omni.v1.UsersService.ListUsersgoogle.spanner.omni.v1.UsersService.GetRolegoogle.spanner.omni.v1.UsersService.ListRoles
|
ADMIN_WRITE |
google.spanner.omni.v1.OmniAdmin.CreateLocationgoogle.spanner.omni.v1.OmniAdmin.DeleteLocationgoogle.spanner.omni.v1.OmniAdmin.CreateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.UpdateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.DeleteLocationDistancegoogle.spanner.omni.v1.OmniAdmin.CreateZonegoogle.spanner.omni.v1.OmniAdmin.DeleteZonegoogle.spanner.omni.v1.OmniAdmin.CreateServergoogle.spanner.omni.v1.OmniAdmin.DeleteServergoogle.spanner.omni.v1.OmniAdmin.CreateExternalStoragegoogle.spanner.omni.v1.OmniAdmin.DeleteExternalStoragegoogle.spanner.omni.v1.OmniAdmin.SetIamPolicygoogle.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)google.spanner.omni.v1.UsersService.CreateUsergoogle.spanner.omni.v1.UsersService.DeleteUsergoogle.spanner.omni.v1.UsersService.UpdateUser
|
DATA_READ |
google.spanner.omni.v1.ImportExportService.ExportDatabase
(LRO)
|
DATA_WRITE |
google.spanner.omni.v1.ImportExportService.ImportDatabase
(LRO)
|
Méthodes ne produisant pas de journaux d'audit
Spanner Omni exclut les mêmes méthodes de la journalisation d'audit que Spanner. Ces méthodes sont exclues, car il s'agit de méthodes à volume élevé impliquant des coûts importants de génération et de stockage de journaux, ou parce qu'elles ont une faible valeur d'audit ou qu'un autre journal d'audit ou de plate-forme fournit déjà une couverture pour les tâches effectuées par la méthode. Pour obtenir la liste complète de ces méthodes exclues, consultez Méthodes exemptées dans la documentation Spanner.
De plus, la méthode google.spanner.omni.v1.LoginService.Login ne produit pas de journaux d'audit, car elle précède les vérifications d'authentification et d'autorisation.
Durée de traitement
Le champ "Durée du traitement" d'un journal d'audit enregistre la durée du traitement de l'API, par exemple la durée d'exécution d'une requête SQL, et non le délai d'écriture du journal d'audit. Pour en savoir plus, consultez Durée du traitement dans la documentation Spanner.
Comparaison avec la version gérée de Spanner
Bien que la journalisation des audits dans Spanner Omni partage des concepts et un format de base avec Spanner, il existe plusieurs différences clés dans la façon dont les journaux sont stockés, configurés et gérés.
Différences
Destination des journaux : Spanner Omni écrit les journaux d'audit directement dans le système de fichiers local de vos serveurs Spanner Omni, au lieu de les exporter vers Cloud Logging.
Configuration : dans Spanner, vous configurez les journaux d'audit d'accès aux données au niveau du projet à l'aide de la console Google Cloud , de Google Cloud CLI ou de l'API Identity and Access Management. Dans Spanner Omni, vous configurez les journaux d'audit pour l'accès aux données à l'aide de la CLI Spanner Omni ou de l'API Spanner Omni.
Chiffrement TLS et mTLS : Spanner applique le chiffrement TLS par défaut, et il ne peut pas être désactivé. Dans Spanner Omni, si vous choisissez de déployer sans chiffrement TLS ni mTLS, aucun journal d'audit n'est généré.
Conservation : les journaux d'audit Spanner sont conservés dans Logging en fonction de vos paramètres de conservation Logging. Spanner Omni conserve les fichiers journaux d'audit locaux pendant 14 jours maximum ou jusqu'à ce que les limites de taille de disque soient atteintes. Il vous incombe d'exporter les journaux vers un système externe pour le stockage à long terme.
Similitudes
Format des journaux : les deux produits écrivent les journaux d'audit au format JSON, en suivant la structure AuditLog standard Google Cloud.
Configuration de l'accès aux données : les deux produits vous permettent d'activer les journaux d'audit de l'accès aux données de manière précise par type d'autorisation (
ADMIN_READ,DATA_READ,DATA_WRITE) et de définir des utilisateurs spécifiques à exclure de la journalisation.
Étapes suivantes
En savoir plus sur l'authentification et l'autorisation dans Spanner Omni
Découvrez comment surveiller votre déploiement Spanner Omni.