Journaux d'audit

Cette page décrit les journaux d'audit créés par Cloud Search dans le cadre des journaux d'audit Cloud.

Présentation

Les services Google Cloud génèrent des journaux d'audit pour vous aider à déterminer qui fait quoi, où et quand dans vos ressources. Vos projets Cloud ne contiennent des journaux d'audit que pour les ressources directement intégrées au projet. Les autres entités, telles que les dossiers, les organisations et les comptes de facturation Cloud, contiennent leurs propres journaux d'audit.

Pour obtenir une présentation générale, consultez Journaux d'audit Cloud. Pour en savoir plus, consultez Comprendre les journaux d'audit.

Cloud Audit Logging gère les journaux suivants pour chaque projet, dossier et organisation Cloud :

  • Journaux d'audit des activités d'administration : entrées pour les méthodes effectuant des opérations d'écriture d'administrateur.
  • Journaux d'audit pour l'accès aux données : entrées pour les méthodes effectuant des opérations de lecture administrateur, d'écriture de données et de lecture de données.
  • Journaux d'audit des événements système
  • Journaux d'audit des refus de règles

Cloud Search écrit des journaux d'audit pour les activités d'administration afin d'enregistrer les opérations qui modifient la configuration ou les métadonnées des ressources. Vous ne pouvez pas les désactiver.

Cloud Search n'écrit des journaux d'audit pour l'accès aux données que si vous les activez explicitement. Ces journaux contiennent des appels d'API qui lisent la configuration ou les métadonnées des ressources, et des appels d'API pilotés par l'utilisateur qui créent, modifient ou lisent des données de ressources fournies par l'utilisateur.

Cloud Search n'écrit pas de journaux d'audit pour les événements système ni pour les refus de règles.

Opérations auditées

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

Catégorie de journal d'audit Opérations Cloud Search
Activité d'administration : écriture (administration) indexing.datasources.updateSchema
indexing.datasources.deleteSchema
settings.datasources.create
settings.datasources.delete
settings.datasources.update
settings.searchapplications.create
settings.searchapplications.delete
settings.searchapplications.reset
settings.searchapplications.update
settings.updateCustomer
cloudsearch.IdentitySourceService.create
cloudsearch.IdentitySourceService.update
cloudsearch.IdentitySourceService.delete
Accès aux données : lecture administrateur indexing.datasources.getSchema
settings.datasources.get
settings.datasources.list
settings.searchapplications.get
settings.searchapplications.list
settings.getCustomer
cloudsearch.IdentitySourceService.get
cloudsearch.IdentitySourceService.list
Accès aux données : écriture de données indexing.datasources.items.delete
indexing.datasources.items.deleteQueueItems
indexing.datasources.items.index
indexing.datasources.items.poll
indexing.datasources.items.push
indexing.datasources.items.unreserve
indexing.datasources.items.upload
media.upload
Accès aux données : lecture des données indexing.datasources.items.get
indexing.datasources.items.list
operations.get
operations.list
debug.datasources.items.checkAccess
debug.datasources.items.searchByViewUrl
stats.getIndex
stats.getQuery
stats.getSession
stats.getUser
stats.index.datasources.get
stats.query.searchapplications.get
stats.session.searchapplications.get
stats.user.search applications.get
debug.identitysources.items.listForunmappedidentity
debug.identitysources.unmappedids.list
debug.datasources.items.unmappedids.list
query.sources.list
query.suggest
query.search
stats.getSearchapplication

Format des journaux d'audit

Les entrées des journaux d'audit comprennent les objets suivants. Vous pouvez les afficher dans Cloud Logging à l'aide de l'explorateur de journaux, de l'API Cloud Logging ou de l'outil de ligne de commande gcloud.

L'entrée de journal proprement dite est un objet LogEntry. Les champs utiles sont les suivants :

  • logName : ID de la ressource et type de journal d'audit.
  • resource : cible de l'opération auditée.
  • timeStamp : heure à laquelle l'opération auditée a été effectuée.
  • protoPayload : informations auditées.

Les données de journalisation d'audit sont un objet AuditLog dans le champ protoPayload.

Les informations d'audit spécifiques au service (facultatives) sont un objet propre au service. Pour les intégrations précédentes, cet objet se trouve dans le champ serviceData de l'objet AuditLog. Les intégrations ultérieures utilisent le champ metadata.

Pour en savoir plus, consultez Comprendre les journaux d'audit.

Nom du journal

Les noms des ressources Cloud Audit Logs indiquent le projet ou toute autre entité Google Cloud dont ils dépendent, ainsi que le type de journal d'audit. Exemple :

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Nom du service

Les journaux d'audit Cloud Search utilisent le nom de service cloudsearch.googleapis.com.

Types de ressources

Les journaux d'audit Cloud Search utilisent le type de ressource audited_resource pour tous les journaux. Pour obtenir d'autres types de ressources, consultez Types de ressources surveillées.

Activer la journalisation d'audit

Par défaut, la journalisation d'audit est désactivée pour l'API Cloud Search. Pour activer la journalisation d'audit pour Cloud Search :

  1. (Facultatif) Si vous n'avez pas créé de projet Google Cloud pour stocker les journaux, consultez Configurer l'accès à l'API Cloud Search.
  2. Obtenez l'ID du projet Google Cloud dans lequel vous souhaitez stocker les journaux. Consultez Identifier des projets.
  3. Déterminez la catégorie de journal à activer pour une API spécifique. Consultez Opérations auditées.
  4. Utilisez la méthode d'API REST updateCustomer() pour mettre à jour auditLogSettings avec les catégories :

    1. Obtenez un jeton d'accès OAuth 2.0. Consultez Utiliser le protocole OAuth 2.0 pour accéder aux API Google. Utilisez l'un des champs d'application suivants :
      • https://www.googleapis.com/auth/cloud_search.settings.indexing
      • https://www.googleapis.com/auth/cloud_search.settings
      • https://www.googleapis.com/auth/cloud_search
    2. Exécutez cette commande curl : bash curl --request PATCH \ 'https://cloudsearch.googleapis.com/v1/settings/customer?updateMask=auditLoggingSettings&key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Content-Type: application/json' \ --data '{"auditLoggingSettings": { "project": "projects/PROJECT_ID", "CATEGORY1": "true", "CATEGORY2": "true" } }' Remplacez YOUR_ACCESS_TOKEN, PROJECT_ID et les catégories (logAdminReadActions, logDataWriteActions ou logDataReadActions). Les actions d'écriture de l'administrateur sont activées par défaut. Pour enregistrer les méthodes de requête, activez la catégorie "Lecture des données".

      Les requêtes ultérieures envoyées à l'API Cloud Search génèrent des journaux dans le projet spécifié.

  5. La catégorie "Lecture de données" est requise pour la journalisation d'audit des méthodes de requête. Pour activer la journalisation pour query.sources.list, query.suggest et query.search :

    1. Récupérez le nom de chaque application de recherche au format searchapplications/<search_application_id>.
    2. Appelez settings.searchapplications.update avec enableAuditLog défini sur true.
  6. Pour activer la journalisation d'audit des appels depuis cloudsearch.google.com, assurez-vous que la catégorie "Lecture de données" est activée et mettez à jour searchapplications/default.

Affichez les journaux dans l'explorateur de journaux de la console Google Cloud. Utilisez ce filtre pour les journaux d'audit Cloud Search :

protoPayload.serviceName="cloudsearch.googleapis.com"

Pour en savoir plus, consultez la présentation de l'explorateur de journaux.

Autorisations relatives aux journaux d'audit

Les autorisations IAM (Identity and Access Management) déterminent les journaux que vous pouvez afficher ou exporter. Pour en savoir plus, consultez la page Comprendre les rôles.

Pour afficher les journaux d'audit liés aux activités d'administration, vous devez disposer de l'un des rôles IAM suivants :

Pour afficher les journaux d'audit des accès aux données, vous devez disposer de l'un des rôles suivants :

Si vous utilisez des journaux d'audit pour une entité autre qu'un projet, telle qu'une organisation, vous devez remplacer les rôles au niveau du projet Cloud par des rôles appropriés au niveau de l'organisation.

Afficher les journaux

Pour afficher les journaux, vous avez besoin de l'identifiant du projet, du dossier ou de l'organisation Cloud. Vous pouvez spécifier d'autres champs LogEntry, comme resource.type. Pour en savoir plus, consultez Créer des requêtes dans l'explorateur de journaux.

Les noms des journaux d'audit suivent le format suivant :

   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

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

Plusieurs options s'offrent à vous pour afficher les entrées de vos journaux d'audit.

Console

  1. Accédez à la page Journalisation > Explorateur de journaux dans la console Google Cloud. Accéder à l'explorateur de journaux
  2. Sélectionnez votre projet.
  3. Dans le volet Générateur de requêtes, sélectionnez la ressource et le type de journal. Pour en savoir plus sur l'exécution de requêtes à l'aide du nouvel explorateur de journaux, consultez la page Créer des requêtes dans l'explorateur de journaux.

gcloud

Exécutez cette commande pour les journaux au niveau du projet :

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

API

  1. Accédez à la section Essayer cette API pour la méthode entries.list.
  2. Utilisez ce corps de requête en remplaçant PROJECT_ID par l'ID de projet de votre choix :
    {
    "resourceNames": ["projects/PROJECT_ID"],
    "pageSize": 5,
    "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. Cliquez sur Exécuter.

Pour en savoir plus sur les requêtes, consultez la page Langage de requête Logging.

Pour obtenir un exemple d'entrée de journal d'audit et savoir comment y trouver les informations les plus importantes, consultez la page Comprendre les journaux d'audit.

Exporter des journaux d'audit

Vous pouvez exporter les journaux d'audit comme les autres journaux. Consultez Exporter des journaux.

  • Exportez-les vers Cloud Storage, BigQuery ou Pub/Sub pour une conservation plus longue ou une recherche avancée.
  • Utilisez des récepteurs agrégés pour gérer les journaux dans une organisation.
  • Excluez les journaux d'accès aux données pour gérer les quotas de journaux. Consultez Exclure des journaux.

Tarification et fidélisation

Cloud Logging ne facture pas les journaux d'audit pour les activités d'administration. Cloud Logging facture les journaux d'audit des accès aux données. Consultez les tarifs de la suite Google Cloud Operations.

Durées de conservation des journaux d'audit Cloud Search :

  • Journaux des activités d'administration : 400 jours.
  • Journaux des accès aux données : 30 jours.

Limites actuelles

Limites de la journalisation d'audit Cloud Search :

  • La taille de l'entrée de journal doit être inférieure à 512 Ko. Si une entrée dépasse 512 Ko, le champ response est supprimé. Si elle dépasse toujours 512 Ko, le champ request est supprimé. Si elle dépasse toujours 512 Ko, l'intégralité de l'entrée est supprimée.
  • Les corps de réponse ne sont pas enregistrés pour les méthodes list(), get() et suggest().
  • Seuls les appels de requête de cloudsearch.google.com et les applications de recherche client sont enregistrés.
  • Pour les appels search(), seuls Query, RequestOptions et DataSourceRestriction sont consignés dans la requête. La réponse n'audite que l'URL et les métadonnées.
  • Les appels de backend pour l'exportation de données ne sont pas audités.