Présentation de Cloud Audit Logs

Ce document présente les concepts liés à Cloud Audit Logs.

Les services Google Cloud écrivent des journaux d'audit qui enregistrent les activités d'administration et les accès aux ressources Google Cloud. Les journaux d'audit vous aident à répondre aux questions "qui a fait quoi, où et quand ?". au sein de vos ressources Google Cloud avec le même niveau de transparence que dans les environnements sur site. L'activation des journaux d'audit permet à vos entités de sécurité, d'audit et de conformité de surveiller les données et les systèmes Google Cloud afin de détecter d'éventuelles failles ou un usage abusif des données externes.

Services Google générant des journaux d'audit

Pour obtenir la liste des services Google Cloud qui fournissent des journaux d'audit, consultez la page Services Google avec journaux d'audit. À terme, tous les services Google Cloud fourniront des journaux d'audit.

Pour obtenir une présentation des journaux d'audit Google Workspace, consultez la section Journaux d'audit pour Google Workspace.

Types de journaux d'audit

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

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

Les journaux d'audit de type "Activités d'administration" contiennent des entrées liées aux appels d'API et aux autres opérations d'administration qui modifient la configuration ou les métadonnées des ressources. Par exemple, ces journaux enregistrent les actions de création d'instance de VM ou de modification des autorisations Cloud IAM (Identity and Access Management).

Les journaux d'audit des activités d'administration sont toujours écrits. Vous ne pouvez pas les configurer ni les désactiver. Même si vous désactivez l'API Cloud Logging, les journaux d'audit des activités d'administration sont toujours générés.

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

Les journaux d'audit relatifs à 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.

Les ressources accessibles au public dont les stratégies Identity and Access Management allAuthenticatedUsers ou allUsers ne génèrent pas de journaux d'audit. Les ressources accessibles sans connexion à un compte Google Cloud, Google Workspace, Cloud Identity ou Drive Enterprise ne génèrent pas de journaux d'audit. Cela permet de protéger les identités et les informations des utilisateurs finaux.

Les journaux d'audit pour l'accès aux données, à l'exception de ceux de BigQuery, sont désactivés par défaut, car leur taille peut être assez importante. Si vous souhaitez que les journaux d'audit des accès aux données soient écrits pour les services Google Cloud autres que BigQuery, vous devez les activer explicitement. L'activation de ces journaux peut entraîner une facturation pour "utilisation de journaux supplémentaires dans le cadre de votre projet". Pour savoir comment activer et configurer les journaux d'audit pour l'accès aux données, consultez la page Configurer les journaux d'accès aux données.

Journaux d'audit d'événements système

Les journaux d'audit des événements système contiennent des entrées associées aux actions d'administration de Google Cloud qui modifient la configuration des ressources. Les journaux d'audit des événements système sont activés par les systèmes Google. Ils ne sont pas pilotés directement par l'utilisateur.

Les journaux d'audit des événements système sont toujours écrits. Vous ne pouvez pas les configurer ni les désactiver.

Journaux d'audit des refus de règles

Les journaux d'audit des refus de règles sont enregistrés lorsqu'un service Google Cloud refuse l'accès à un utilisateur ou à un compte de service en raison d'une violation des règles de sécurité. Les règles de sécurité sont déterminées par VPC Service Controls, qui fournit les journaux d'audit des refus de règles à Cloud Logging.

Les journaux d'audit des refus de règles sont générés par défaut et leur stockage est facturé à votre projet Cloud. Vous ne pouvez pas désactiver les journaux d'audit des refus de règles, mais vous pouvez utiliser des filtres d'exclusion pour empêcher leur ingestion et leur stockage dans Cloud Logging.

Structure des entrées des journaux d'audit

Dans Cloud Logging, chaque entrée de journal d'audit est un objet de type LogEntry. Une entrée de journal d'audit se distingue des autres entrées de journal par le champ protoPayload. Ce champ contient un objet AuditLog qui stocke les données de journalisation d'audit.

Pour comprendre comment lire et interpréter les entrées du journal d'audit, et obtenir un exemple d'entrée de journal d'audit, consultez la section Comprendre les journaux d'audit.

Nom du journal

Les noms des journaux Cloud Audit Logs incluent des identifiants de ressources qui désignent le projet Cloud ou toute autre entité Google Cloud dont ils dépendent et permettent également de déterminer 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.

Voici les noms des journaux d'audit incluant des variables pour les identifiants de ressource :

   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

Identités de l'appelant dans les journaux d'audit

Les journaux d'audit enregistrent l'identité ayant effectué les opérations consignées sur la ressource Google Cloud. L'identité de l'appelant est conservée dans le champ AuthenticationInfo des objets AuditLog.

Pour des raisons de confidentialité, l'adresse e-mail principale de l'appelant est masquée dans un journal d'audit si l'opération est en lecture seule et si une erreur de type "Autorisation refusée" s'affiche. La seule exception où l'adresse e-mail n'est pas masquée est lorsque l'appelant est un compte de service dans l'organisation Google Cloud associée à la ressource.

Outre les conditions répertoriées ci-dessus, les conditions suivantes s'appliquent à certains services Google Cloud:

  • Ancienne API App Engine : les identités ne sont pas collectées.

  • BigQuery : les identités des appelants, les adresses IP et certains noms de ressources sont masqués dans les journaux d'audit, sauf si certaines conditions sont remplies.

  • Cloud Storage : lorsque les journaux d'utilisation de Cloud Storage sont activés, Cloud Storage écrit les données d'utilisation dans le bucket Cloud Storage, qui génère des journaux d'audit pour l'accès aux données de ce bucket. L'identité de l'appelant dans le journal d'audit des accès aux données généré est masquée.

  • Firestore : si un jeton Web JSON (JWT) a été utilisé pour l'authentification tierce, le champ thirdPartyPrincipal inclut l'en-tête et la charge utile du jeton. Par exemple, les journaux d'audit des requêtes authentifiées avec Firebase Authentication incluent le jeton d'authentification de cette requête.

  • VPC Service Controls: pour les journaux d'audit refusés pour les règles, le masquage suivant se produit:

    • Certaines parties des adresses e-mail de l'appelant peuvent être masquées et remplacées par trois caractères ....

    • Certaines adresses e-mail de l'appelant appartenant au domaine google.com sont masquées et remplacées par des caractères google-internal.

    • Les adresses e-mail des appelants pour les comptes de service gérés par Google ne sont pas masquées.

Si vous consultez les journaux d'audit à l'aide de la page Activité de Google Cloud Console, User (anonymized) s'affiche pour toutes les entrées de journal dont l'identité est masquée ou vide.

Afficher les journaux d'audit

Pour interroger les journaux d'audit, vous devez connaître le nom du journal d'audit (qui inclut les identifiants de ressource du projet Cloud, du dossier, du compte de facturation Cloud 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 Générer des requêtes dans l'explorateur de journaux.

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

Console

Dans Google Cloud Console, vous pouvez utiliser l'explorateur de journaux pour récupérer les entrées de journal d'audit concernant votre projet, votre dossier ou votre organisation Cloud:

  1. Dans Google Cloud Console, accédez à la page Logging> Logs Explorer (Explorateur de journaux).

    Accéder à l'explorateur de journaux

  2. Sélectionnez un projet, une organisation ou un dossier 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 la tentative d'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

Google Cloud CLI fournit une interface de ligne de commande à l'API Logging. Fournissez un identifiant de ressource valide dans chacun des noms de journaux. 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 du 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 de l'organisation, exécutez la commande suivante :

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

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

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

Ajoutez l'option --freshness à votre commande pour lire les journaux datant de plus d'une journée.

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

API

Lors de la création de vos requêtes, fournissez un identifiant de ressource valide dans chacun des noms de journaux. 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 permet de remplir automatiquement le corps de la requête. Cependant, 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.

Utiliser la page "Activité"

Vous pouvez afficher les versions abrégées des entrées des journaux d'audit dans la page Activité de votre projet, dossier ou organisation Google Cloud Console. Les entrées réelles du journal d'audit peuvent contenir plus d'informations que celles affichées dans la page Activité.

Pour afficher les versions abrégées des entrées des journaux d'audit dans Google Cloud Console, procédez comme suit:

  1. Accédez à la page Activité :

    Accéder à la page "Activité"

  2. Dans le sélecteur de projet, sélectionnez le projet ou l'organisation Google Cloud dont vous souhaitez afficher les entrées de journal d'audit.

  3. Dans le panneau Filtre, sélectionnez les entrées que vous souhaitez afficher.

Dans la page "Activité", où l'identité associée aux actions consignées est masquée dans l'entrée du journal d'audit, la valeur User (anonymized) est affichée. Pour plus d'informations, consultez la section Identités des utilisateurs dans les journaux d'audit.

Stocker et acheminer les journaux d'audit

Cloud Logging utilise des buckets de journaux comme conteneurs qui stockent et organisent les données de vos journaux. Pour chaque projet, dossier et organisation Cloud, Logging crée automatiquement deux buckets de journaux, _Required et _Default, et des récepteurs nommés de manière correspondante.

Les buckets Cloud Logging _Required ingèrent et stockent les journaux d'audit pour les activités d'administration et les événements système. Vous ne pouvez pas configurer les buckets _Required ni les données de journaux qu'ils contiennent.

Par défaut, les buckets _Default ingèrent et stockent tous les journaux d'audit des accès aux données activés, ainsi que les journaux d'audit des refus de règles. Vous pouvez désactiver les journaux d'audit des accès aux données dans les buckets _Default. Pour empêcher que les journaux d'audit des refus de règles soient stockés dans les buckets _Default, vous pouvez les exclure en modifiant les filtres de leurs récepteurs.

Vous pouvez également acheminer vos entrées de journaux d'audit vers des buckets Cloud Logging définis par l'utilisateur au niveau du projet Cloud ou vers des destinations compatibles en dehors de Logging à l'aide de récepteurs. Pour obtenir des instructions sur le routage des journaux, consultez la page Configurer et gérer les récepteurs.

Lors de la configuration des filtres de vos récepteurs de journaux, vous devez spécifier les types de journaux d'audit que vous souhaitez acheminer. Pour obtenir des exemples de filtrage, consultez la page Requêtes de journalisation de sécurité.

Si vous souhaitez acheminer des entrées de journal d'audit pour une organisation, un dossier ou un compte de facturation Google Cloud, consultez la page Configurer des récepteurs agrégés.

Conserver des journaux d'audit

Pour en savoir plus sur la durée de conservation des entrées de journal par Cloud Logging, consultez la section correspondante sur la page Quotas et limites : durée de conservation des journaux.

Contrôle des accès

Les autorisations et les rôles IAM déterminent votre capacité à accéder aux données des journaux d'audit dans l'API Logging, l'explorateur de journaux et la CLI Google Cloud.

Pour plus d'informations sur les autorisations et les rôles IAM dont vous avez besoin, consultez la page Contrôle des accès avec IAM .

Quotas et limites

Pour en savoir plus sur les limites d'utilisation de la journalisation, y compris sur la taille maximale des journaux d'audit, consultez la page Quotas et limites.

Tarification

Pour en savoir plus sur les tarifs de Cloud Logging, consultez la page Tarifs de la suite d'opérations Google Cloud : Cloud Logging.

Étapes suivantes