Utiliser Cloud Audit Logging avec Cloud Functions

Cette page décrit les journaux d'audit créés par Google Cloud Functions dans le cadre des audits Cloud Audit Logging.

Vue d'ensemble

Les services Google Cloud Platform génèrent des journaux d'audit pour vous aider à répondre aux questions du type "Qui a fait quoi, où et quand ?". Chaque projet GCP contient uniquement les journaux d'audit relatifs aux ressources directement intégrées au sein du projet. Chacune des autres entités (y compris les dossiers, les organisations et les comptes de facturation) ne contient que les journaux d'audit qui la concernent.

Pour découvrir les journaux d'audit Cloud, consultez la page Journaux d'audit Cloud. Pour approfondir vos connaissances sur les journaux d'audit Cloud, consultez la page Comprendre les journaux d'audit.

Les journaux d'audit Cloud incluent trois journaux d'audit pour chaque projet, dossier et organisation GCP :

  • Journaux d'audit pour les activités d'administration
  • Journaux d'audit pour l'accès aux données
  • Journaux d'audit d'événements système

Cloud Functions écrit les 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. Ces journaux sont toujours générés et ne peuvent pas être désactivés.

Cloud Functions ne consigne les journaux d'audit pour l'accès aux données que si cette fonction est explicitement activée. Ils 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. Les journaux d'audit pour l'accès aux données n'enregistrent pas les opérations d'accès aux données sur les ressources partagées publiquement (accessibles à tous les utilisateurs ou à tous les utilisateurs authentifiés) ou accessibles sans connexion à GCP.

Les journaux d'audit pour les événements système ne sont pas disponibles dans Cloud Functions.

Opérations auditées

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

Catégorie de journal d'audit Opération Cloud Functions
Activité d'administration cloudfunctions.functions.create
cloudfunctions.functions.delete
cloudfunctions.functions.update
cloudfunctions.functions.sourceCodeSet
cloudfunctions.operations.get
cloudfunctions.locations.list
Accès aux données (ADMIN_READ, lecture administrateur) cloudfunctions.functions.get
cloudfunctions.functions.list
cloudfunctions.functions.sourceCodeGet
Accès aux données (DATA_READ, lecture de données) cloudfunctions.functions.call

Format des journaux d'audit

Les entrées des journaux d'audit, qui peuvent être affichées dans Stackdriver Logging à l'aide de la visionneuse de journaux, de l'API Stackdriver Logging ou du SDK Cloud, 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'identification du projet et le type du journal d'audit
    • resource, qui contient la cible de l'opération faisant l'objet d'un audit
    • 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", consigné dans le champ serviceData de l'objet AuditLog. Pour en savoir plus, consultez la section Données d'audit spécifiques au service.

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

Nom du journal

Les noms de ressource des journaux d'audit Cloud indiquent l'entité ou le projet 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 ou sur les événements système. Les exemples ci-dessous présentent respectivement la structure des noms des journaux concernant les activités d'administration d'un projet et celle des noms des journaux concernant l'accès aux données d'une 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 Functions utilisent le nom de service cloudfunctions.googleapis.com.

Pour en savoir plus sur les services de journalisation, consultez la section Mapper des services à des ressources.

Types de ressources

Les journaux d'audit Cloud Functions utilisent le type de ressource cloud_function pour tous les journaux d'audit.

Pour une liste complète, 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 générés et ne peuvent pas être désactivés.

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 obtenir des instructions sur l'activation d'une partie ou de l'ensemble de vos journaux d'audit d'accès aux données, consultez la page Configurer les journaux d'accès aux données.

Les journaux d'audit pour l'accès aux données que vous configurez peuvent avoir une incidence sur le coût global des journaux dans Stackdriver. Consultez la section Tarifs ci-après.

Autorisations relatives aux journaux d'audit

Les autorisations et rôles Cloud IAM (Cloud Identity and Access Management) dont vous disposez déterminent les journaux d'audit que vous pouvez afficher ou exporter. Les journaux sont consignés dans les projets et dans certaines autres entités, par exemple des organisations, des dossiers et des comptes de facturation. Pour en savoir plus, consultez la page Comprendre les rôles.

Pour afficher les journaux relatifs aux activités d'administration, vous devez disposer d'un des rôles Cloud IAM suivants dans le projet qui contient vos journaux d'audit :

Pour afficher les journaux d'audit relatifs à l'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 modifier les rôles Projet. Sélectionnez à la place des rôles "Organisation" appropriés.

Afficher les journaux

Plusieurs options s'offrent à vous pour afficher les entrées de votre journal d'audit :

Interface de base de la visionneuse

Vous pouvez utiliser l'interface de base de la visionneuse de journaux de la console GCP pour récupérer les entrées de votre journal d'audit. Procédez comme suit :

  1. Accédez à la page Stackdriver Logging > Journaux (Visionneuse de journaux) dans la console GCP :

    Accéder à la page Visionneuse de journaux

  2. Sélectionnez un projet GCP existant en haut de la page, ou créez un projet.

  3. Dans le premier menu déroulant, sélectionnez le type de ressource dont vous souhaitez afficher les journaux d'audit. Vous pouvez sélectionner une ressource spécifique ou l'option Global pour toutes les ressources.

  4. Dans le deuxième menu déroulant, sélectionnez le type de journal que vous souhaitez afficher : activity pour les journaux d'audit pour les activités d'administration, data_access pour les journaux d'audit pour l'accès aux données et system_events pour les journaux d'audit pour les événements système.

    Si aucune de ces options ne s'affiche, aucun journal d'audit de ce type n'est disponible dans le projet.

Visionneuse avancée

Vous pouvez utiliser l'interface avancée de la visionneuse de journaux de la console GCP pour récupérer les entrées de votre journal d'audit. Procédez comme suit :

  1. Accédez à la page Stackdriver Logging > Journaux (Visionneuse de journaux) dans la console GCP :

    Accéder à la page Visionneuse de journaux

  2. Sélectionnez un projet GCP existant en haut de la page, ou créez un projet.

  3. Dans le premier menu déroulant, sélectionnez le type de ressource dont vous souhaitez afficher les journaux d'audit. Vous pouvez sélectionner une ressource spécifique ou l'option Globalpour toutes les ressources.

  4. Cliquez sur la flèche du menu déroulant (▾) tout à droite du champ de filtre de recherche et sélectionnez Convertir en filtre avancé.

  5. Créez un filtre qui spécifie davantage les entrées de journal que vous voulez afficher. Pour récupérer tous les journaux d'audit de votre projet, ajoutez le filtre suivant. Fournissez un [PROJECT_ID] valide pour chacun des noms de journaux.

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Pour en savoir plus sur les filtres, consultez la page Filtres de journaux avancés.

API

Pour examiner les entrées de votre journal d'audit à l'aide de l'API Stackdriver Logging :

  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 chacun des noms de journal.

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. Cliquez sur Exécuter.

Pour en savoir plus sur les filtres, consultez la page Filtres de journaux avancés.

SDK

Pour lire vos entrées de journal à l'aide du SDK Cloud, exécutez la commande suivante. Fournissez un [PROJECT_ID] valide pour chacun des noms de journaux.

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"

Consultez la page Lire les entrées de journal pour en savoir plus sur l'utilisation du SDK Cloud.

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, reportez-vous à la page Présentation des exportations de 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 Cloud Pub/Sub. Avec Cloud 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 d'exportation agrégés. Ces récepteurs permettent d'exporter les journaux pour un projet spécifique ou pour l'ensemble des projets 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, vous pouvez les exporter et les exclure de Logging. Pour en savoir plus, consultez la page Exclusions de journaux.

Tarifs

Stackdriver Logging ne facture pas les journaux d'audit qui sont toujours générés et qui ne peuvent pas être désactivés, y compris tous les journaux d'audit pour les activités d'administration. Stackdriver Logging facture les journaux d'audit pour l'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 Stackdriver.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Cloud Functions Documentation