Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Informations sur les journaux d'audit Firestore

Ce document décrit les journaux d'audit créés par Firestore dans le cadre des audits Cloud Audit Logging.

Vue d'ensemble

Les services Google Cloud alimentent des journaux d'audit pour vous aider à déterminer qui fait quoi, où et quand, au sein de vos ressources Google Cloud.

Vos projets Google Cloud ne contiennent que les journaux d'audit des ressources directement intégrées au projet Cloud. Les autres ressources Google Cloud, telles que les dossiers, les organisations et les comptes de facturation, contiennent les journaux d'audit de l'entité elle-même.

Pour découvrir Cloud Audit Logging, consultez la page Présentation de Cloud Audit Logging. Pour en savoir plus sur le format des journaux d'audit, consultez la page Comprendre les journaux d'audit.

Journaux d'audit disponibles

Voici les types de journaux d'audit disponibles pour Firestore:

  • Journaux d'audit pour les activités d'administration

    Inclut les opérations d'écriture d'administration qui écrivent des métadonnées ou des informations de configuration.

    Vous ne pouvez pas désactiver ces journaux.

  • Journaux d'audit pour l'accès aux données

    Inclut les opérations de lecture de l'administrateur qui lisent des métadonnées ou des informations de configuration. Inclut également les opérations de lecture et d'écriture de données qui lisent ou écrivent des données fournies par l'utilisateur.

    Pour recevoir des journaux d'audit relatifs à l'accès aux données, vous devez les activer explicitement.

Pour obtenir une description plus complète des types de journaux d'audit, consultez la page Types de journaux d'audit.

Opérations auditées

Le tableau suivant récapitule les opérations d'API correspondant à chaque type de journaux d'audit dans Firestore:

Catégorie de journal d'audit Opérations Firestore
Journaux pour les activités d'administration (ADMIN_WRITE)
Journaux d'audit d'accès aux données (ADMIN_READ)
Journaux d'audit d'accès aux données (DATA_READ)
  • GetDocument
  • ListDocuments
  • BatchGetDocuments
  • BeginTransaction
  • Commit sans les écritures
  • Rollback
  • RunQuery (streaming)

    RunQuery est un RPC de streaming à court terme qui émet une entrée de journal lors de l'envoi du dernier message (document).

  • PartitionQuery
  • ListCollectionIds
  • Listen (streaming)

    Listen est un RPC de longue durée qui combine plusieurs cibles de streaming. Chaque cible correspond à une requête ou à un ensemble de clés de document. Le flux de chaque cible comprend un ensemble de résultats initial, ainsi qu'une séquence de mises à jour, d'ajouts et de suppressions. Les cibles correspondent à l'unité d'audit appropriée. Firestore effectue un audit de chaque cible de la manière suivante:

    • Une fois la cible ajoutée, Émettez une entrée de journal avec la requête ou la clé de document de la cible.
    • Émettre des mises à jour périodiques indiquant le nombre de mises à jour depuis le dernier journal d'audit pour cette cible
    • Émettez une entrée de journal lorsque la cible est supprimée du flux, explicitement ou en raison de l'arrêt du RPC Listen. Cette entrée de journal indique le nombre de mises à jour depuis le dernier journal d'audit pour cette cible.
    • Les entrées de journal émises utilisent le même paramètre operation.id.
Journaux d'audit d'accès aux données (DATA_WRITE)

Format des journaux d'audit

Les entrées du journal d'audit incluent les objets suivants:

  • L'entrée de journal proprement dite, qui est un objet de type LogEntry. Voici quelques champs utiles:

    • logName, qui contient l'ID de ressource et le type de journal d'audit
    • resource, qui contient la cible de l'opération auditée
    • timeStamp, qui indique l'heure à laquelle l'opération auditée a été effectuée
    • protoPayload, qui contient les informations auditées
  • Les données de journalisation d'audit, qui correspondent à un objet AuditLog inclus dans le champ protoPayload de l'entrée de journal.

  • Un objet (facultatif) de type "informations d'audit propres au service". Pour les intégrations précédentes, cet objet est conservé dans le champ serviceData de l'objet AuditLog. Les intégrations ultérieures utilisent le champ metadata.

Pour en savoir plus sur les autres champs de ces objets, ainsi que sur leur interprétation, consultez la page Comprendre les journaux d'audit.

Nom du journal

Les noms des journaux d'audit Cloud incluent des identifiants de ressources indiquant le projet Cloud ou toute autre entité Google Cloud dont ils dépendent. En outre, ils précisent si les journaux contiennent des données sur les activités d'administration, sur l'accès aux données, sur les refus de règles ou sur les événements système.

Voici les noms des journaux d'audit, y compris les variables des identifiants de ressources:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Nom du service

Les journaux d'audit Firestore utilisent le nom de service firestore.googleapis.com.

Pour obtenir la liste de tous les noms de service de l'API Cloud Logging et des types de ressources surveillées correspondants, consultez la section Mapper des services sur des ressources.

Types de ressources

Les journaux d'audit Firestore utilisent les types de ressources datastore_database et datastore_index.

Pour obtenir la liste de tous les types de ressources surveillées Cloud Logging et des informations descriptives, consultez la page Types de ressources surveillées.

Activer les journaux d'audit

Les journaux d'audit pour les activités d'administration sont toujours activés. Vous ne pouvez pas les désactiver.

Les journaux d'audit pour l'accès aux données sont désactivés par défaut et ne sont pas écrits à moins d'être explicitement activés (à l'exception de ceux pour BigQuery, qui ne peuvent pas être désactivés).

Pour plus d'informations sur l'activation d'une partie ou de l'ensemble de vos journaux d'audit pour l'accès aux données, consultez la page Configurer les journaux d'audit pour l'accès aux données.

Autorisations et rôles

Les autorisations et rôles IAM déterminent votre capacité à accéder aux données des journaux d'audit dans les ressources Google Cloud.

Pour décider des autorisations et des rôles spécifiques à Logging qui s'appliquent à votre cas d'utilisation, tenez compte des points suivants:

  • Le rôle Lecteur de journaux (roles/logging.viewer) vous permet d'accéder en lecture seule aux journaux concernant les activités d'administration, les règles refusées et les événements système. Si vous ne disposez que de ce rôle, vous ne pouvez pas afficher les journaux d'audit des accès aux données qui se trouvent dans les buckets _Required et _Default.

  • Le rôle "Lecteur des journaux privés"(roles/logging.privateLogViewer) inclut les autorisations contenues dans roles/logging.viewer, ainsi que la possibilité de lire les journaux d'audit des accès aux données dans les buckets _Required et _Default.

    Notez que si ces journaux privés sont stockés dans des buckets définis par l'utilisateur, tout utilisateur autorisé à lire les journaux dans ces buckets peut lire les journaux privés. Pour en savoir plus sur les buckets de journaux, consultez la page Présentation du routage et du stockage.

Pour en savoir plus sur les autorisations et les rôles IAM qui s'appliquent aux données des journaux d'audit, consultez la page Contrôle des accès avec IAM.

Afficher les journaux

Pour interroger des journaux d'audit, vous devez connaître le nom du journal d'audit, qui inclut l'identifiant de ressource du projet Cloud, du dossier, du compte Cloud Billing ou de l'organisation pour lesquels vous souhaitez afficher les informations de journalisation d'audit. Dans votre requête, vous pouvez également spécifier d'autres champs LogEntry indexés, tels que resource.type. Pour en savoir plus sur l'interrogation, consultez la page Créer des requêtes dans l'explorateur de journaux.

Vous pouvez afficher les journaux d'audit dans Logging à l'aide de Cloud Console, de la CLI Google Cloud ou de l'API Logging:

Console

  1. Dans Cloud Console, accédez à la page Explorateur de journaux >.

    Accéder à l'explorateur de journaux

  2. Sélectionnez un projet, dossier ou organisation Cloud existant.

  3. Dans le volet Générateur de requêtes, procédez comme suit:

    • Dans Type de ressource, sélectionnez la ressource Google Cloud dont vous souhaitez afficher les journaux d'audit.

    • Dans Nom du journal, sélectionnez le type de journal d'audit que vous souhaitez afficher:

      • Pour les journaux d'audit pour les activités d'administration, sélectionnez activity.
      • Pour les journaux d'audit des accès aux données, sélectionnez data_access.
      • Pour les journaux d'audit des événements système, sélectionnez system_event.
      • Pour les journaux d'audit des refus de règles, sélectionnez policy.

    Si ces options ne sont pas visibles, cela signifie qu'aucun journal d'audit de ce type n'est disponible dans le projet, le dossier ou l'organisation Cloud.

    Si vous rencontrez des problèmes lors de l'affichage de journaux dans l'explorateur de journaux, consultez les informations de dépannage.

    Pour en savoir plus sur l'utilisation de l'explorateur de journaux pour effectuer des requêtes, consultez la page Créer des requêtes dans l'explorateur de journaux.

gcloud

La CLI Google Cloud fournit une interface de ligne de commande à l'API Logging. Fournissez un identifiant de ressource valide dans chacun des noms de journal. Par exemple, si votre requête inclut un PROJECT_ID, l'identifiant de projet que vous fournissez doit faire référence au projet Cloud actuellement sélectionné.

Pour lire les entrées de journal d'audit au niveau d'un projet Cloud, exécutez la commande suivante:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Pour lire les entrées de journal d'audit au niveau d'un dossier, exécutez la commande suivante:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Pour lire les entrées de journal d'audit au niveau d'un compte de facturation, exécutez la commande suivante:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Pour lire les entrées de journal d'audit au niveau de l'organisation, exécutez la commande suivante:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Pour en savoir plus sur l'utilisation de la CLI gcloud, consultez la page gcloud logging read.

API

Lors de la création de vos requêtes, indiquez un identifiant de ressource valide dans chacun des noms de journal. Par exemple, si votre requête inclut un PROJECT_ID, l'identifiant de projet que vous fournissez doit faire référence au projet Cloud actuellement sélectionné.

Par exemple, pour utiliser l'API Logging afin d'afficher les entrées de journal d'audit au niveau d'un projet, procédez comme suit:

  1. Accédez à la section Essayer cette API dans la documentation de la méthode entries.list.

  2. Insérez les éléments suivants dans la partie Corps de la requête du formulaire Essayer cette API. Cliquer sur ce formulaire prérempli remplit automatiquement le corps de la requête, mais vous devez fournir un ID de projet PROJECT_ID valide pour chaque nom de journal.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Cliquez sur Exécuter.

Acheminer les journaux d'audit

Vous pouvez acheminer les journaux d'audit vers des destinations compatibles de la même manière que vous pouvez acheminer d'autres types de journaux. Voici quelques raisons pour lesquelles vous pouvez acheminer vos journaux d'audit:

  • Pour conserver les journaux d'audit plus longtemps ou utiliser des fonctionnalités de recherche plus puissantes, vous pouvez acheminer des copies de vos journaux d'audit vers Cloud Storage, BigQuery ou Pub/Sub. Avec Pub/Sub, vous pouvez acheminer le trafic vers d'autres applications, d'autres dépôts, ainsi que vers des organisations tierces.

  • Pour gérer les journaux d'audit à l'échelle de votre organisation, vous pouvez créer des récepteurs agrégés capables d'acheminer les journaux pour un projet Cloud spécifique ou pour l'ensemble des projets Cloud de l'organisation.

  • Si les journaux d'audit pour l'accès aux données que vous avez activés entraînent le dépassement du quota d'attribution de journaux défini pour vos projets Cloud, vous pouvez créer des récepteurs qui excluent les journaux d'audit pour l'accès aux données dans Logging.

Pour obtenir des instructions sur le routage des journaux, consultez la page Configurer et gérer les récepteurs.

Tarifs

Pour plus d'informations sur la tarification de Cloud Logging, consultez la section Tarifs de la suite Google Cloud Operations: Cloud Logging.