Configurer les journaux d'accès aux données

Ce guide vous explique comment activer les journaux d'audit pour l'accès aux données dans votre projet ou votre organisation, et comment configurer certains paramètres de ces journaux. Des informations générales concernant les journaux d'audit sont disponibles dans la section Cloud Audit Logging.

Les journaux d'audit pour les activités d'administration sont activés sur tous les services Google Cloud Platform et ne sont pas configurables.

Présentation de la configuration

Les journaux d'audit pour l'accès aux données sont désactivés par défaut (sauf dans BigQuery). Vous pouvez les activer et configurer certains de leurs paramètres :

  • Organisations : vous pouvez activer et configurer les journaux d'audit pour l'accès aux données au niveau d'une organisation. Vos choix s'appliquent à tous les projets et dossiers existants et nouveaux de l'organisation.

  • Dossiers : vous pouvez activer et configurer les journaux d'audit pour l'accès aux données au niveau d'un dossier. Vos choix s'appliquent à tous les projets existants et nouveaux du dossier. Notez toutefois que vous ne pouvez pas désactiver ce type de journal s'il a été activé au niveau de l'organisation dont dépend le projet.

  • Projets : vous pouvez activer et configurer les journaux d'audit pour l'accès aux données au niveau d'un projet spécifique. Notez toutefois que vous ne pouvez pas désactiver ce type de journal s'il a été activé au niveau de l'organisation ou du dossier dont dépend le projet.

  • Configurations par défaut : vous pouvez spécifier une configuration par défaut concernant les journaux d'audit pour l'accès aux données au niveau d'une organisation, d'un dossier ou d'un projet. Les services GCP que vous utiliserez par la suite appliqueront cette configuration pour générer ce type de journal.

  • Services : vous pouvez spécifier les services pour lesquels vous souhaitez recevoir des journaux d'audit. Par exemple, vous pouvez choisir de recevoir des journaux d'audit de Compute Engine, mais pas de Cloud SQL. Pour obtenir une liste des services GCP pouvant générer des journaux d'audit, consultez la section Services Google avec journaux d'audit.

  • Types d'informations : vous pouvez contrôler les types d'informations qui figurent dans les journaux d'audit. Les journaux d'audit pour l'accès aux données sont associés à trois types d'informations :

    • ADMIN_READ : enregistre les opérations de lecture des métadonnées ou des informations de configuration.

      Les journaux d'audit pour les activités d'administration consignent les opérations d'écriture des métadonnées et des informations de configuration. Ils ne peuvent pas être désactivés.

    • DATA_READ : enregistre les opérations de lecture des données fournies par l'utilisateur.

    • DATA_WRITE : enregistre les opérations d'écriture des données fournies par l'utilisateur.

    Vous pouvez par exemple ne consigner que les opérations d'écriture des données, mais consigner tout de même les trois types d'informations depuis Cloud DNS.

  • Utilisateurs exemptés : vous pouvez empêcher la journalisation des accès aux données de certains groupes ou utilisateurs. Vous pouvez, par exemple, demander à ce que les opérations Stackdriver Debugger effectuées par vos comptes de test internes ne soient pas consignées.

Vous pouvez configurer les journaux d'audit pour l'accès aux données via la console Logging ou l'API. Ces méthodes sont expliquées dans les sections ci-dessous.

Configurations spécifiques aux services

S'il existe à la fois une configuration globale (allServices) et une configuration spécifique à un service GCP donné, la configuration appliquée à ce service combine ces deux configurations. Autrement dit :

  • Vous pouvez activer les journaux d'audit pour l'accès aux données sur des services GCP spécifiques, mais vous ne pouvez pas désactiver ceux qui ont été activés sur les services GCP dans la configuration globale.

  • Vous pouvez ajouter des types d'informations supplémentaires au journal d'audit pour l'accès aux données d'un service GCP, mais vous ne pouvez pas supprimer les types d'informations spécifiés dans la configuration globale.

  • Vous pouvez ajouter des utilisateurs à des listes d'exemptions, mais vous ne pouvez pas supprimer les membres des listes d'exemptions définies dans la configuration globale.

Configurations au niveau d'une organisation, d'un dossier ou d'un projet

Vous pouvez configurer les journaux d'audit pour l'accès aux données au niveau d'une organisation, d'un dossier et d'un projet. S'il existe une configuration spécifique à un service GCP dans la hiérarchie, la configuration appliquée combine les deux configurations. En d'autres termes, voici ce que vous pouvez faire au niveau du projet :

  • Vous pouvez activer les journaux sur un service GCP, mais vous ne pouvez pas les désactiver sur un service GCP activé au niveau du dossier ou de l'organisation.

  • Vous pouvez activer des types d'informations, mais vous ne pouvez pas désactiver ceux qui sont activés au niveau de l'organisation ou du dossier.

  • Vous pouvez ajouter des utilisateurs à des listes d'exemptions, mais vous ne pouvez pas supprimer les membres des listes d'exemptions définies au niveau de l'organisation ou du dossier.

  • Au niveau d'une organisation ou d'un dossier, vous pouvez activer les journaux pour l'accès aux données sur un projet dépendant de cette organisation ou de ce dossier, même si ce type de journal n'a pas été configuré sur le projet.

Contrôle des accès

Selon le cas, vous devrez disposer de l'un des rôles IAM suivants : roles/resourcemanager.organizationAdmin pour configurer les journaux d'audit pour l'accès aux données au niveau d'une organisation, roles/resourcemanager.folderAdmin pour les configurer au niveau d'un dossier ou roles/owner pour les configurer au niveau d'un projet.

Configurer les journaux pour l'accès aux données via la console GCP

Cette section explique comment utiliser la console GCP pour configurer les journaux d'audit pour l'accès aux données.

Vous pouvez également utiliser l'API ou le SDK Cloud pour effectuer ces tâches par programmation. Consultez la section Configurer les journaux pour l'accès aux données à l'aide de l'API pour plus de détails.

Pour accéder aux options de configuration des journaux d'audit dans la console  GCP, procédez comme suit :

  1. Dans la console GCP, sélectionnez IAM et administration > Journaux d'audit dans le menu à développer en haut à gauche.

    Accéder à la page "Journaux d'audit"

  2. En haut de la page, sélectionnez une organisation, un dossier ou un projet GCP.

Activer les journaux d'audit

Pour activer les journaux pour l'accès aux données, procédez comme suit :

  1. Dans le tableau principal de la page Audit Logs (Journaux d'audit), sélectionnez un ou plusieurs services GCP en cliquant sur la case située à gauche du nom du service, dans la colonne Title (Titre).

  2. Dans l'onglet Log type (Type de journal) du panneau d'informations à droite du tableau, cochez les cases correspondant aux types de journaux d'audit pour l'accès aux données que vous souhaitez activer, puis cliquez sur Save (Enregistrer).

  3. Une coche s'affiche dans le tableau lorsque vous activez un journal d'audit. Dans l'exemple suivant, les journaux d'audit Admin Read (Lecture administrateur) et Data Read (Lecture de données) sont activés pour le service Cloud Composer API :

    Configuration des journaux d'audit

Vous pouvez également activer les journaux d'audit sur tous les services GCP, ce qui va entraîner la génération de journaux d'audit pour l'accès aux données. Dans le tableau principal de la page Audit Logs (Journaux d'audit), sélectionnez tous les services GCP en cliquant sur la case à gauche de Title (Titre).

Notez que cette méthode de configuration "groupée" ne s'applique qu'aux services GCP actuellement disponibles. Si un nouveau service GCP est ajouté, il hérite de la configuration d'audit par défaut.

Désactiver les journaux d'audit

Pour désactiver les journaux pour l'accès aux données, procédez comme suit :

  1. Dans le tableau principal de la page Audit Logs (Journaux d'audit), sélectionnez un ou plusieurs services GCP en cliquant sur la case située à gauche du nom du service, dans la colonne Title (Titre).

  2. Dans l'onglet Type de journal du panneau d'informations à droite du tableau, cochez les cases correspondant aux types de journaux d'audit pour l'accès aux données que vous souhaitez désactiver, puis cliquez sur Enregistrer.

  3. Un tiret gris s'affiche dans le tableau lorsque vous désactivez un journal d'audit. Les journaux d'audit activés sont signalés par une coche verte.

Définir des exemptions d'utilisateurs

Vous pouvez définir des exemptions afin de contrôler les utilisateurs autorisés à générer des journaux d'audit. Lorsque vous exemptez un utilisateur, les journaux d'audit de tous les types sélectionnés ne sont pas créés pour cet utilisateur. Notez que les journaux pour les activités d'administration sont toujours générés, quel que soit le statut de l'exemption.

Pour définir des exemptions, procédez comme suit :

  1. Dans le tableau principal de la page de configuration Journaux d'audit, sélectionnez un ou plusieurs services GCP en cliquant sur la case à gauche du nom du service dans la colonne Titre.

  2. Cliquez sur l'onglet Utilisateurs exemptés du panneau d'informations à droite du tableau. Sous Ajouter un utilisateur exempté, saisissez l'adresse e-mail de l'utilisateur que vous souhaitez ajouter à la liste des exemptions pour les services sélectionnés. Pour ajouter plusieurs utilisateurs, cliquez sur le bouton Ajouter un utilisateur exempté autant de fois que nécessaire.

  3. Sous l'adresse e-mail, cochez les cases correspondant aux types de journaux d'audit pour l'accès aux données que vous souhaitez désactiver pour l'utilisateur, puis cliquez sur Enregistrer.

  4. Lorsque vous ajoutez des utilisateurs exemptés à un service, un numéro s'affiche dans la colonne Exceptions du tableau.

Pour supprimer un utilisateur de la liste des exemptions :

  1. Accédez à l'onglet Utilisateurs exemptés du panneau d'informations.

  2. Passez la souris sur un nom d'utilisateur et sélectionnez l'icône Corbeille qui s'affiche.

  3. Une fois que le nom de l'utilisateur s'affiche en texte barré, cliquez sur Enregistrer.

Pour modifier les informations d'un utilisateur exempté :

  1. Accédez à l'onglet Utilisateurs exemptés du panneau d'informations.

  2. Cliquez sur la flèche de développement à droite du nom de l'utilisateur.

  3. Sélectionnez ou désélectionnez les types de journaux d'audit pour l'accès aux données en fonction des autorisations que vous souhaitez accorder à l'utilisateur, puis cliquez sur Enregistrer.

Définir la configuration par défaut

Vous pouvez définir une configuration qui sera appliquée à tous les services GCP (nouveaux ou existants) au niveau du projet, du dossier ou de l'organisation. Cette configuration par défaut est appliquée à tout nouveau service CGP dès sa mise à disposition aux utilisateurs de votre organisation lorsqu'ils commencent à l'utiliser : le service hérite de la stratégie de journalisation d'audit que vous avez définie précédemment pour d'autres services GCP. Vous avez ainsi l'assurance que les journaux d'audit pour l'accès aux données sont bien capturés pour ce service.

  1. Cliquez sur Définir la configuration par défaut en haut de la page.

  2. Dans l'onglet Type de journal, cochez les cases correspondant aux types de journaux d'audit pour l'accès aux données que vous souhaitez activer ou désactiver, puis cliquez sur Enregistrer.

  3. Dans l'onglet Utilisateurs exemptés, saisissez l'adresse e-mail des utilisateurs que vous souhaitez ajouter à la liste des exemptions, puis cliquez sur Enregistrer. Suivez la procédure décrite dans la section Définir des exemptions d'utilisateurs ci-dessus.

Configurer les journaux pour l'accès aux données à l'aide de l'API

Cette section explique comment utiliser l'interface de ligne de commande de l'API et du SDK Cloud pour configurer les journaux d'audit pour l'accès aux données par programmation.

La plupart de ces tâches peuvent également être effectuées via la console GCP. Reportez-vous à la section Configurer les journaux pour l'accès aux données via la console GCP pour en savoir plus.

Objets des stratégies IAM

Pour configurer les journaux d'audit pour l'accès aux données à l'aide de l'API, vous devez modifier la stratégie IAM associée au projet, au dossier ou à l'organisation. La configuration des journaux d'audit se trouve dans la section auditConfigs de la stratégie :

"auditConfigs": [
  {
    object(AuditConfig)
  }
]

Pour en savoir plus, reportez-vous au type de stratégie IAM.

Les sections suivantes décrivent l'objet AuditConfig plus en détail. Pour découvrir les commandes de l'API et du SDK Cloud permettant de modifier la configuration, consultez les méthodes getIamPolicy et setIamPolicy.

Objets AuditConfig

La configuration des journaux d'audit consiste en une liste d'objets AuditConfig. Chaque objet configure les journaux pour un service spécifique ou établit une configuration globale applicable à tous les services. Voici à quoi ressemblent les objets :

{
  "service": [SERVICE],
  "auditLogConfigs": [
    {
      "logType": "ADMIN_READ"
      "exemptedMembers": [ [MEMBER],]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ [MEMBER],]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ [MEMBER],]
    },
  ]
},

[SERVICE] correspond à un nom de service tel que "appengine.googleapis.com" ou à la valeur spéciale "allServices". Si une configuration ne mentionne pas un service spécifique, la configuration globale s'applique. Si aucune configuration n'est définie, les journaux pour l'accès aux données ne sont pas activés sur le service en question. Pour obtenir la liste des noms de service, consultez la section Services de journalisation et clés d'index.

La section auditLogConfigs de l'objet AuditConfig est une liste de 0 à 3 objets, qui configurent chacun un type d'information de journal d'audit. Si vous omettez l'un des types de la liste, ce type d'information n'est pas activé pour le service.

[MEMBER] correspond à un utilisateur pour lequel les journaux d'audit relatifs à l'accès aux données ne sont pas collectés. Vous pouvez spécifier des utilisateurs uniques, des groupes ou des comptes de service. Le type de liaison décrit plusieurs types de membres, mais ils ne peuvent pas tous être utilisés dans la configuration des journaux d'audit pour l'accès aux données.

Vous trouverez ci-dessous un exemple de configuration d'audit aux formats JSON et YAML. Le format YAML est le format par défaut lors de l'utilisation de commandes du SDK Cloud.

JSON

"auditConfigs": [
  {
    "auditLogConfigs": [
      {
        "logType": "ADMIN_READ"
      },
      {
        "logType": "DATA_WRITE"
      },
      {
        "logType": "DATA_READ"
      }
    ],
    "service": "allServices"
  },
  {
    "auditLogConfigs": [
      {
        "exemptedMembers": [
          "499862534253-compute@developer.gserviceaccount.com"
        ],
        "logType": "ADMIN_READ"
      }
    ],
    "service": "cloudsql.googleapis.com"
  }
],

YAML

auditConfigs:

  • auditLogConfigs:
    • logType: ADMIN_READ
    • logType: DATA_WRITE
    • logType: DATA_READ service: allServices
  • auditLogConfigs:
    • exemptedMembers:
    • 499862534253-compute@developer.gserviceaccount.com logType: ADMIN_READ service: cloudsql.googleapis.com

Configurations courantes

Vous trouverez ci-dessous quelques configurations de journaux d'audit courantes pour les projets.

Elles ne prennent pas en compte les éventuelles configurations de journaux d'audit définies pour l'organisation ou le dossier dont dépend le projet. Pour en savoir plus, consultez la section Configurations de l'organisation et du projet.

Activer tous les journaux d'accès

La section auditConfigs suivante active les journaux d'accès aux données pour tous les services et les utilisateurs :

JSON

"auditConfigs": [
      {
        "service": "allServices",
        "auditLogConfigs": [
          { "logType": "ADMIN_READ" },
          { "logType": "DATA_READ"  },
          { "logType": "DATA_WRITE" },
        ]
      },
    ]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: ADMIN_READ
  - logType: DATA_WRITE
  - logType: DATA_READ
  service: allServices

Activer un service et un type d'information

La configuration suivante active les journaux d'audit pour l'accès aux données dans Cloud SQL. Les journaux consignent uniquement les écritures de données définies par l'utilisateur :

JSON

"auditConfigs": [
  {
    "service": "cloudsql.googleapis.com",
    "auditLogConfigs": [
      { "logType": "DATA_WRITE" },
    ]
  },
]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: DATA_WRITE
  service: cloudsql.googleapis.com

Désactiver tous les journaux

Pour désactiver tous les journaux d'audit pour l'accès aux données au sein d'un projet (sauf dans BigQuery), ajoutez une section auditConfigs: vide à votre nouvelle stratégie IAM :

JSON

"auditConfigs": [],

YAML

auditConfigs:

Si vous supprimez complètement la section auditConfigs de votre nouvelle stratégie, setIamPolicy ne modifie pas la configuration existante des journaux d'audit pour l'accès aux données. Pour en savoir plus, consultez la section Masque de mise à jour de la méthode setIamPolicy.

Dans BigQuery, il n'est pas possible de désactiver les journaux d'audit pour l'accès aux données.

getIamPolicy et setIamPolicy

Vous pouvez consulter et rédiger votre stratégie IAM à l'aide des méthodes getIamPolicy et setIamPolicy de Cloud Resource Manager. Plusieurs options s'offrent à vous :

  • L'API Cloud Resource Manager propose les méthodes suivantes :

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Le SDK Cloud propose les commandes Cloud Resource Manager suivantes :

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations set-iam-policy
    

Quel que soit votre choix, suivez ces trois étapes :

  1. Consultez la stratégie actuelle à l'aide de l'une des méthodes getIamPolicy. Enregistrez-la dans un fichier temporaire.
  2. Modifiez la stratégie dans le fichier temporaire. Ne modifiez (ou n'ajoutez) que la section auditConfigs.
  3. Rédigez la stratégie modifiée dans le fichier temporaire à l'aide de l'une des méthodes setIamPolicy.

La méthode setIamPolicy échoue si Cloud Resource Manager détecte qu'un autre utilisateur a modifié la stratégie depuis votre dernier accès lors de l'étape 1. Si cela se produit, répétez les trois étapes.

Exemples

Les exemples suivants montrent comment configurer les journaux d'audit pour l'accès aux données de votre projet à l'aide de la commande gcloud et de l'API Cloud Resource Manager.

Pour configurer les journaux d'audit pour l'accès aux données de votre organisation, remplacez la version "projects" des commandes et méthodes d'API par la version "organizations".

SDK Cloud

Pour configurer vos journaux d'audit pour l'accès aux données à l'aide de la commande gcloud projects, procédez comme suit :

  1. Consultez la stratégie IAM de votre projet et stockez-la dans un fichier :

    gcloud projects get-iam-policy [PROJECT_ID] > /tmp/policy.yaml
    

    La stratégie renvoyée est présentée ci-dessous. Elle ne dispose pas encore de section auditConfigs :

    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  2. Modifiez votre stratégie dans /tmp/policy.yaml. Vous ne devez ajouter ou modifier que la configuration des journaux d'audit pour l'accès aux données.

    Vous trouverez ci-dessous un exemple de stratégie modifiée, qui active les journaux d'audit pour l'accès en écriture aux données dans Cloud SQL. Quatre lignes ont été ajoutées au début :

    auditConfigs:
    - auditLogConfigs:
      - logType: DATA_WRITE
      service: cloudsql.googleapis.com
    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  3. Rédigez votre nouvelle stratégie IAM :

    gcloud projects set-iam-policy [PROJECT_ID] /tmp/policy.yaml
    

    Si la commande précédente signale un conflit avec une autre modification, répétez ces étapes depuis le début.

JSON

Pour exploiter votre stratégie IAM au format JSON au lieu de YAML, utilisez les commandes gcloud suivantes dans l'exemple :

gcloud projects get-iam-policy [PROJECT_ID] --format=json >/tmp/policy.json
gcloud projects set-iam-policy [PROJECT_ID] /tmp/policy.json

API

Pour configurer les journaux d'audit pour l'accès aux données à l'aide de l'API Cloud Resource Manager, procédez comme suit :

  1. Consultez la stratégie IAM de votre projet en spécifiant les paramètres suivants dans la méthode d'API getIamPolicy :

    • Ressource : projects/[PROJECT_ID]
    • Corps de la requête : empty

    La méthode renvoie l'objet de la stratégie actuelle décrit ci-dessous. La stratégie de ce projet ne dispose pas encore de section auditConfigs :

    {
      "bindings": [
      {
        "members": [
          "user:colleague@example.com"
        ],
        "role": "roles/editor"
      },
      {
        "members": [
          "user:myself@example.com"
        ],
        "role": "roles/owner"
      }
    ],
    "etag": "BwUsv2gimRs=",
    "version": 1
    

    }

  2. Modifiez la stratégie actuelle :

    • Modifiez ou ajoutez la section auditConfigs.

      Si vous souhaitez désactiver les journaux d'audit pour l'accès aux données, indiquez une valeur vide dans la section auditConfigs:[].

    • Conserver la valeur du paramètre etag.

    Vous pouvez, si vous le souhaitez, supprimer toutes les autres informations du nouvel objet de stratégie, tant que vous pensez à définir updateMask à l'étape suivante. La stratégie modifiée, qui active les journaux d'audit d'écriture de données dans Cloud SQL, est décrite ci-dessous :

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "DATA_WRITE"
            }
          ],
          "service": "cloudsql.googleapis.com"
        }
      ],
      "etag": "BwVM-FDzeYM="
    }
    
  3. Rédigez la nouvelle stratégie à l'aide de la méthode d'API setIamPolicy, en spécifiant les paramètres suivants :

    • Ressource : projects/[PROJECT_ID]
    • Corps de la requête :
      • updateMask : "auditConfigs,etag"
      • policy : votre objet de stratégie modifié

Masque de mise à jour de la méthode setIamPolicy

Cette section explique l'importance du paramètre updateMask dans la méthode setIamPolicy et décrit la raison pour laquelle vous devez traiter la commande set-iam-policy du SDK avec soin pour ne pas nuire accidentellement à votre projet ou à votre organisation.

Le paramètre updateMask de la méthode d'API setIamPolicy permet de contrôler les champs de stratégie mis à jour. Par exemple, si le masque ne contient pas de section bindings, vous ne pouvez pas modifier accidentellement cette section de la stratégie. En revanche, si le masque contient une section bindings, celle-ci est systématiquement mise à jour. Ainsi, si vous n'incluez pas de valeur à jour pour bindings, la section est entièrement supprimée de la stratégie.

La commande gcloud projects set-iam-policy, qui appelle setIamPolicy, ne vous permet pas de spécifier le paramètre updateMask. À la place, la commande calcule une valeur pour updateMask de la manière suivante :

  • Le paramètre updateMask contient toujours les champs bindings et etag.
  • Si l'objet de stratégie fourni dans la commande set-iam-policy comprend d'autres champs de niveau supérieur (tels que auditConfigs), ces champs sont ajoutés à updateMask.

Compte tenu de ces règles, la commande set-iam-policy présente le comportement suivant :

  • Si vous omettez la section auditConfigs dans votre nouvelle stratégie, la valeur précédente de la section auditConfigs (le cas échéant) n'est pas modifiée, car cette section ne se trouve pas dans le masque de mise à jour. Cela n'a aucune incidence, mais ce phénomène peut porter à confusion.

  • Si vous omettez bindings dans votre nouvel objet de stratégie, la section bindings est supprimée de votre stratégie, car elle apparaît dans le masque de mise à jour. Une telle omission a de graves conséquences, car elle entraîne la révocation de l'accès au projet pour tous les utilisateurs.

  • Si vous omettez etag dans votre nouvel objet de stratégie, la vérification des modifications simultanées apportées à votre stratégie est désactivée. Cela peut entraîner l'écrasement accidentel des modifications effectuées par un autre utilisateur.

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

Envoyer des commentaires concernant…

Stackdriver Logging
Besoin d'aide ? Consultez notre page d'assistance.