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 que les journaux d'audit des ressources directement intégrées au projet. Les autres entités, telles que les dossiers, les organisations et les comptes de facturation Cloud, contiennent les journaux d'audit de l'entité elle-même.

Pour découvrir Cloud Audit Logging, consultez la page Cloud Audit Logging. Pour en savoir plus sur Cloud Audit Logging, consultez la page Comprendre les journaux d'audit.

Cloud Audit Logging gère les journaux d'audit suivants pour chaque projet, dossier et organisation sur le cloud :

  • Journaux d'audit des activités d'administration contenant des entrées correspondant aux méthodes effectuant des opérations d'écriture par l'administrateur. Les méthodes correspondant aux opérations d'écriture Admin Activity:Admin sont décrites dans la section Opérations auditées à venir.
  • Journaux d'audit pour l'accès aux données contenant des entrées correspondant aux méthodes effectuant des opérations de lecture administrateur, d'écriture de données et de lecture de données. Les méthodes correspondant aux opérations Data Access:Admin read, Data Access:Data write et Data Access:Data read sont décrites dans la section Opérations auditées à venir.
  • 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, qui enregistrent les opérations modifiant la configuration ou les métadonnées d'une ressource. Vous ne pouvez pas les désactiver.

Cloud Search ne consigne les journaux d'audit pour l'accès aux données que si cette fonction est explicitement activée. Les journaux d'audit pour l'accès aux données 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.

Cloud Search n'écrit pas de journaux d'audit des 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, qui peuvent être affichées dans Cloud Logging à l'aide de l'explorateur de journaux, de l'API Cloud Logging ou de l'outil de ligne de commande gcloud, comprennent les objets suivants:

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

  • 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.

Informations d'audit facultatives propres au service, qui sont un objet propre 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 ressources Cloud Audit Logs indiquent 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, l'accès aux données, les refus de règles ou les événements système. Par exemple, voici les noms des journaux d'audit des activités d'administration au niveau du projet et des journaux d'audit d'accès aux données d'une organisation. Les variables désignent les identifiants de projet et d'organisation.

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 d'audit.

Pour obtenir la liste des autres types de ressources, consultez la page Types de ressources surveillés.

Activer la journalisation d'audit

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

  1. (Facultatif) Si vous n'avez pas créé de projet Google Cloud Platform pour stocker les journaux, consultez la section Configurer l'accès à l'API Google Cloud Search.

  2. Obtenez l'ID du projet Google Cloud dans lequel vous souhaitez stocker les journaux. Pour savoir comment obtenir un ID de projet, consultez la section Identifier des projets.

  3. Pour activer la journalisation d'audit pour une API spécifique, vous devez déterminer la catégorie de journaux à activer. Pour connaître les API et les catégories correspondantes, consultez la section Opérations auditées plus haut dans ce document.

  4. Utilisez la méthode API REST updateCustomer() pour mettre à jour auditLogSettings avec les catégories de journaux à activer:

    1. Obtenez un jeton d'accès OAuth 2.0 auprès du serveur d'autorisation Google. Pour en savoir plus sur l'obtention du jeton, consultez l'étape 2 de la section Utiliser OAuth 2.0 pour accéder aux API Google. Utilisez l'un des champs d'application OAuth suivants lorsque vous obtenez le jeton d'accès:

      • 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.

    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" } }'
    

    Où :

    • YOUR_ACCESS_TOKEN est le jeton d'accès OAuth 2.0 obtenu à l'étape 4a.
    • PROJECT_ID est l'ID du projet obtenu à l'étape 2.
    • CATEGORY1, CATEGORY2 et sont les catégories que vous avez choisies d'activer à l'étape 3. Les valeurs valides sont logAdminReadActions, logDataWriteActions et logDataReadActions. Les actions d'écriture des administrateurs sont activées par défaut et ne peuvent pas être désactivées. Si vous souhaitez enregistrer des journaux d'audit pour les méthodes de requête, vous devez activer la catégorie "Lecture de données".

    Après avoir mis à jour AuditLoggingSettings, les requêtes supplémentaires envoyées à l'API Cloud Search génèrent un journal d'audit dans l'ID de projet spécifié dans AuditLoggingSettings.

  5. La journalisation d'audit pour les méthodes de requête nécessite d'activer la catégorie "Lecture de données" (effectué à l'étape 4). Pour activer la journalisation d'audit pour les méthodes de requête (query.sources.list, query.suggest et query.search), procédez comme suit:

    1. Pour chaque application de recherche pour laquelle vous souhaitez activer la journalisation d'audit, récupérez le nom. Le nom doit être au format searchapplications/<search_application_id>.

    2. Utilisez le nom pour appeler settings.searchapplications.update avec enableAuditLog défini sur true.

  6. Pour activer la journalisation d'audit pour les appels provenant de cloudsearch.google.com, assurez-vous que la catégorie "Lecture des données" est activée (étape 4). En outre, effectuez l'étape 5b avec un name de searchapplications/default .

Une fois activés, les journaux peuvent être consultés dans la section "Explorateur de journaux" de la console Google Cloud. Utilisez le filtre suivant pour afficher uniquement les journaux d'audit Cloud Search:

protoPayload.serviceName="cloudsearch.googleapis.com"

Pour savoir comment afficher les journaux, consultez la page Présentation de l'explorateur de journaux.

Autorisations relatives aux journaux d'audit

Les autorisations et rôles IAM (gestion de l'authentification et des accès) déterminent les journaux d'audit que vous pouvez afficher ou exporter. Les journaux sont consignés dans des projets Cloud et dans certaines autres entités, telles que des organisations, des dossiers et des comptes de facturation Cloud. 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 d'un des rôles IAM suivants dans le projet qui contient vos journaux d'audit:

Pour afficher les journaux d'audit des accès aux données, vous devez disposer d'un des rôles suivants dans le projet qui contient les journaux d'audit :

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 rechercher et afficher des journaux d'audit, vous devez connaître l'identifiant du projet, du dossier ou de l'organisation Cloud pour lesquels vous souhaitez consulter les informations de journalisation d'audit. Vous pouvez également spécifier d'autres champs LogEntry indexés, comme resource.type. Pour en savoir plus, consultez la section Créer des requêtes dans l'explorateur de journaux.

Les noms de journaux d'audit sont indiqués ci-dessous. Ils incluent des variables correspondant aux identifiants de l'organisation, du dossier ou du projet Cloud:

   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

Vous pouvez utiliser l'explorateur de journaux de Cloud Console pour récupérer les entrées du journal d'audit de votre projet Cloud:

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

    Accéder à la page Explorateur de journaux

  2. Sur la page Explorateur de journaux, sélectionnez un projet Cloud existant.

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

    • Dans Ressource, sélectionnez le type de 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 Cloud.

    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

gcloud fournit une interface de ligne de commande à l'API Logging. Fournissez un ID PROJECT_ID, FOLDER_ID ou ORGANIZATION_ID valide dans chacun des noms de journaux.

Pour lire les entrées de journal d'audit au niveau du projet Google 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 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 l'outil gcloud, consultez la page gcloud logging read.

API

Lorsque vous créez des requêtes, remplacez les variables par des valeurs valides. Spécifiez des noms et identifiants de journaux d'audit appropriés au niveau d'un projet, d'un dossier ou d'une organisation, comme indiqué dans les noms des journaux d'audit. 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 consulter les entrées de journal d'audit à l'aide de l'API Logging, 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. En cliquant sur ce formulaire prérempli, vous remplissez 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.

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 de la même manière que vous exportez d'autres types de journaux. Pour en savoir plus sur l'exportation des journaux, consultez la page Exporter des journaux. Voici des exemples d'applications associées à l'exportation des journaux d'audit :

  • Pour conserver les journaux d'audit pendant une période plus longue ou pour utiliser des fonctionnalités de recherche plus puissantes, vous pouvez exporter des copies des journaux d'audit vers Cloud Storage, BigQuery ou Pub/Sub. Avec Pub/Sub, vous avez la possibilité d'exporter vos journaux 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. Ces récepteurs permettent d'exporter les journaux pour un projet Cloud spécifique ou pour l'ensemble des projets Cloud de l'organisation.

  • Si les journaux d'audit des 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 les exporter et les exclure de Logging. Pour en savoir plus, consultez la page Exclure des journaux.

Tarification et fidélisation

Cloud Logging ne facture pas les journaux d'audit qui ne peuvent pas être désactivés, ce qui inclut tous les journaux d'audit pour les activités d'administration. Cloud Logging facture les journaux d'audit d'accès aux données que vous demandez explicitement.

Pour en savoir plus sur la tarification des journaux d'audit, consultez la page Tarifs de la suite Google Cloud Operations.

La durée de stockage associée aux journaux d'audit Cloud Search est la suivante:

  • Journaux des activités d'administration (ou écriture administrateur) : ces journaux sont conservés pendant 400 jours.
  • Journaux d'accès aux données (lecture par l'administrateur, écriture des données et lecture des données) : ces journaux sont conservés pendant 30 jours.

Pour en savoir plus sur la durée de stockage, consultez la section Durée de conservation des journaux.

Limites actuelles

La journalisation d'audit de Cloud Search présente les limites suivantes:

  • La taille de l'entrée de journal doit être inférieure à 512 Ko. Si la taille dépasse 512 ko, la réponse est supprimée de l'entrée de journal. Si la taille n'est pas réduite à 512 Ko ou moins, la requête est abandonnée. Enfin, si la taille dépasse toujours 512 ko, l'entrée de journal est supprimée.

  • Les corps de réponse ne sont pas consignés pour les méthodes list(), get() et suggest(). Toutefois, les états de réponse sont disponibles.

  • Seuls les appels d'API de requête à partir de cloudsearch.google.com (si activés) 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. Dans la réponse, seules l'URL et les métadonnées (source et objectType) de chaque SearchResult sont auditées.

  • Les appels émis vers le backend Cloud Search et correspondant à l'exportation de données ne sont pas audités.