Journaux d'audit

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

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 une présentation générale, consultez la page Cloud Audit Logs. Pour en savoir plus, consultez la page Comprendre les journaux d'audit.

Cloud Audit Logs 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 administrateur.
  • Journaux d'audit des 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 les appels d'API qui lisent la configuration ou les métadonnées des ressources, et les 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 administrateur 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 de 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 de journal d'audit incluent 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 elle-même est un LogEntry objet. Les champs utiles incluent les suivants :

  • logName : ID de ressource et type de journal d'audit
  • resource : cible de l'opération auditée
  • timeStamp : heure de l'opération auditée
  • protoPayload : informations auditées

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

Les informations d'audit facultatives spécifiques au service sont un objet spécifique au service. Pour les intégrations antérieures, 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 la page Comprendre les journaux d'audit.

Nom du journal

Les noms de ressources Cloud Audit Logs indiquent le projet ou une autre entité Google Cloud propriétaire des journaux, 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 plus de types de ressources, consultez la page 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 l'activer pour Cloud Search :

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

    1. Obtenez un jeton d'accès OAuth 2.0. Consultez la page 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 la commande curl suivante : 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 administrateur sont activées par défaut. Pour consigner les méthodes de requête, activez la catégorie "Lecture de données".

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

  5. La journalisation d'audit pour les méthodes de requête nécessite la catégorie "Lecture de données". 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 pour les appels de 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 page Présentation de l'explorateur de journaux.

Autorisations relatives aux journaux d'audit

Les autorisations IAM (gestion de l'authentification et des accès) 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 des 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 LogEntry champs, comme resource.type. Consultez la page 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 à Logging > Explorateur de journaux dans la console Google Cloud. Accéder à l'explorateur de journaux
  2. Sélectionnez votre projet.
  3. Dans le volet Créateur de requêtes, sélectionnez le type de ressource et 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 entries.list méthode.
  2. Utilisez le corps de requête suivant, en remplaçant PROJECT_ID par l'ID du 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 informations, 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 la page Exporter des journaux.

  • Exportez les journaux vers Cloud Storage, BigQuery ou Pub/Sub pour une période de 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 la page Exclure des journaux.

Tarifs et conservation

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

Périodes de conservation des journaux d'audit Cloud Search :

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

Limites actuelles

Limites de la journalisation d'audit Cloud Search :

  • La taille des entrées 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'entrée entière est supprimée.
  • Les corps de réponse ne sont pas consigné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 consigné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 backend pour l'exportation de données ne sont pas audités.