Activer les journaux d'audit des accès aux données

Les journaux d'audit des accès aux données vous permettent d'enregistrer les appels d'API qui lisent les configurations ou les métadonnées des ressources, ainsi que les appels d'API pilotés par l'utilisateur qui créent, modifient ou lisent les données de ressources fournies par l'utilisateur. Comme ces journaux sont désactivés par défaut pour la plupart des services, vous pouvez les activer, les configurer ou les désactiver explicitement pour vos projets, comptes de facturation, dossiers et organisations Cloud de Confiance à l'aide de la console Cloud de Confiance ou de l'API.

Avant de commencer

Avant de continuer à configurer les journaux d'audit pour l'accès aux données, prenez en compte les informations suivantes:

  • Les journaux d'audit des accès aux données sont désactivés par défaut pour tous les services, à l'exception de certains services BigQuery. Si vous souhaitez que les journaux d'audit des accès aux données soient écrits pour les services où ces journaux sont désactivés par défaut, vous devez les activer explicitement dans la console Cloud de Confiance ou à l'aide de l'API.

  • Les journaux d'audit des accès aux données sont stockés dans le bucket _Default, sauf si vous les avez acheminés ailleurs. Pour en savoir plus, consultez Stocker et acheminer les journaux d'audit.

  • Les journaux d'audit pour l'accès aux données aident l'assistance Google à résoudre les problèmes liés à votre compte. Par conséquent, nous vous recommandons d'activer les journaux d'audit d'accès aux données lorsque cela est possible.

  • Pour obtenir les autorisations nécessaires pour accéder à tous les journaux des buckets _Required et _Default, y compris les journaux d'accès aux données, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de journaux privés (roles/logging.privateLogViewer) sur votre projet.

    Le rôle Lecteur de journaux privés ((roles/logging.privateLogViewer)) inclut les autorisations contenues dans le rôle Lecteur de journaux (roles/logging.viewer) et celles nécessaires pour lire les journaux d'audit d'accès aux données dans le bucket _Default.

    Le rôle Éditeur (roles/editor) n'inclut pas les autorisations requises pour afficher les journaux d'accès aux données.

    Pour en savoir plus sur les autorisations et les rôles IAM qui s'appliquent aux données des journaux d'audit, consultez la page Contrôle des accès avec IAM.

Présentation de la configuration

Vous pouvez configurer l'activation des journaux d'audit des accès aux données pour vos ressources et servicesCloud de Confiance  :

  • Organisations : vous pouvez activer et configurer les journaux d'audit des accès aux données dans une organisation, ce qui s'applique à tous les projets et dossiersCloud de Confiance existants et nouveaux de l'organisation.

  • Dossiers : vous pouvez activer et configurer les journaux d'audit des accès aux données dans un dossier, ce qui s'applique à tous les projets Cloud de Confiance existants et nouveaux du dossier. Vous ne pouvez pas désactiver un journal d'audit des accès aux données qui a été activé dans l'organisation parente du projet.

  • Projets : vous pouvez configurer les journaux d'audit des accès aux données pour un projetCloud de Confiance individuel. Vous ne pouvez pas désactiver un journal d'audit des accès aux données qui a été activé dans une organisation ou un dossier parent.

  • Comptes de facturation : pour configurer les journaux d'audit des accès aux données pour les comptes de facturation, utilisez la Google Cloud CLI. Pour en savoir plus sur l'utilisation de la gcloud CLI avec les journaux d'audit des accès aux données et les comptes de facturation, consultez la documentation gcloud beta billing accounts set-iam-policy.

  • Configurations par défaut : vous pouvez spécifier une configuration par défaut des journaux d'audit des accès aux données dans une organisation, un dossier ou un projet Cloud de Confiance qui s'applique aux futurs services Cloud de Confiance qui commencent à produire des journaux d'audit des accès aux données. Pour obtenir des instructions, consultez Définir la configuration par défaut.

  • Types d'autorisation : vous pouvez spécifier que les API Cloud de Confiance qui ne vérifient qu'un certain type d'autorisation émettent un journal d'audit. Pour en savoir plus, consultez la section Types d'autorisations de cette page.

  • Comptes principaux exemptés : vous pouvez empêcher l'enregistrement des accès aux données de comptes principaux spécifiques. Vous pouvez par exemple demander à ce que les opérations Cloud Monitoring effectuées par vos comptes de test internes ne soient pas consignées. Pour obtenir la liste des comptes principaux valides, y compris les utilisateurs et les groupes, consultez la documentation de référence sur le type Binding.

Vous pouvez configurer vos journaux d'audit des accès aux données via la page Journaux d'audit IAM de la console Cloud de Confiance ou à l'aide de l'API. Ces méthodes sont expliquées dans les sections suivantes.

Types d'autorisations

Les méthodes d'API vérifient les autorisations IAM. Chaque autorisation IAM possède un type d'autorisation, qui est défini par la propriété type. Les types d'autorisation sont classés en deux catégories : les types d'autorisation d'accès aux données et les types d'autorisation d'activité d'administration.

  • Types d'autorisations d'accès aux données :

    • ADMIN_READ : les autorisations IAM de ce type sont vérifiées pour les méthodes d'APICloud de Confiance qui lisent les métadonnées ou les informations de configuration. En règle générale, les journaux d'audit ADMIN_READ sont désactivés par défaut et doivent être activés.

    • DATA_READ : les autorisations IAM de ce type sont vérifiées pour les méthodes d'APICloud de Confiance qui lisent les données fournies par l'utilisateur. En règle générale, les journaux d'audit DATA_READ sont désactivés par défaut et doivent être activés.

    • DATA_WRITE : les autorisations IAM de ce type sont vérifiées pour les méthodes d'APICloud de Confiance qui écrivent des données fournies par l'utilisateur. En règle générale, les journaux d'audit DATA_WRITE sont désactivés par défaut et doivent être activés.

  • Type d'autorisation "Activité d'administration" :

    • ADMIN_WRITE : les autorisations IAM de ce type sont vérifiées pour les méthodes d'APICloud de Confiance qui écrivent des métadonnées ou des informations de configuration. Les journaux d'audit associés à ce type, les journaux d'audit des activités d'administration, sont activés par défaut et ne peuvent pas être désactivés.

Vous pouvez activer ou désactiver des types d'autorisations pour les services à l'aide de la consoleCloud de Confiance ou en appelant l'API.

La plupart des API Cloud de Confiance vérifient uniquement si l'appelant dispose d'une seule autorisation IAM. Si le type d'autorisation associé à cette autorisation est activé pour le service dont l'API est appelée, l'API génère un journal d'audit.

Les sections suivantes décrivent de manière générale d'autres façons dont les méthodes de l'API Cloud de Confiancevérifient les autorisations IAM. Pour obtenir des informations spécifiques au service sur les méthodes vérifiées pour chaque type d'autorisation, consultez la documentation sur la journalisation d'audit du service.

Vérification des autorisations IAM pour les types d'autorisation d'accès aux données

Certaines méthodes de l'API Cloud de Confiance vérifient si l'appelant dispose de plusieurs autorisations IAM avec différents types d'autorisations d'accès aux données. Un journal d'audit est écrit lorsque l'un de ces types d'autorisation d'accès aux données est activé sur le projet.

Par exemple, une méthode d'API peut vérifier que le compte principal qui émet une requête API dispose des autorisations example.resource.get (DATA_READ) et example.resource.write (DATA_WRITE). Le projet n'a besoin que de l'activation de DATA_WRITE ou de DATA_READ pour que le service émette le journal d'audit lors de l'émission de l'appel.

Types d'autorisations IAM d'activité d'administration et d'accès aux données vérifiés

Certaines méthodes de l'API Cloud de Confiance vérifient à la fois une autorisation IAM de type ADMIN_WRITE et une ou plusieurs autorisations de type "Accès aux données".

Ces types d'appels d'API émettent des journaux d'audit des activités d'administration, qui sont activés par défaut et ne peuvent pas être désactivés.

La méthode API vérifie les autorisations IAM qui n'appartiennent pas au service

Certains services Cloud de Confiance disposent de méthodes d'API qui ne génèrent un journal d'audit que lorsqu'un type d'autorisation spécifique est activé pour un autre service.

Par exemple, Cloud Billing dispose d'une méthode API qui vérifie un type d'autorisation ADMIN_READ appartenant à Resource Manager. ADMIN_READ doit être activé pour le service cloudresourcemanager.googleapis.com afin d'activer le journal d'audit associé à l'API Cloud Billing.

La même méthode d'API vérifie différentes autorisations IAM

Pour certaines API Cloud de Confiance , la façon dont la méthode est appelée détermine le ou les types d'autorisations IAM qui doivent être activés sur le projet pour qu'un journal d'audit soit généré.

Par exemple, Spanner dispose d'une méthode d'API qui vérifie parfois une autorisation IAM de type DATA_WRITE et parfois une autorisation IAM de type DATA_READ, selon la façon dont la méthode est appelée. Dans ce cas, l'activation de DATA_WRITE pour Spanner sur le projet de l'appel d'API n'active le journal d'audit associé à l'API que lorsque l'autorisation IAM avec le type DATA_WRITE est cochée.

Configurations spécifiques aux services

S'il existe à la fois une configuration à l'échelle du service (allServices) et une configuration pour un service Cloud de Confiance spécifique, la configuration résultante pour le service est l'union des deux configurations. Cloud de Confiance Autrement dit :

  • Vous pouvez activer les journaux d'audit des accès aux données pour des services Cloud de Confiancespécifiques, mais vous ne pouvez pas les désactiver pour les servicesCloud de Confiance activés dans la configuration plus large.

  • Vous pouvez ajouter d'autres types d'informations au journal d'audit des accès aux données d'un service Cloud de Confiance, mais vous ne pouvez pas supprimer les types d'informations spécifiés dans la configuration plus large.

  • Vous pouvez ajouter des comptes principaux aux listes d'exceptions, mais vous ne pouvez pas les supprimer des listes d'exceptions dans la configuration plus large.

  • Pour le service de transfert de données BigQuery, la configuration des journaux d'audit des accès aux données est héritée de votre configuration de journaux d'audit par défaut.

Les serveurs MCP Google Cloud écrivent des journaux d'audit d'accès aux données spécifiques au service et utilisent le format SERVICE_NAME.googleapis.com/mcp. Vous pouvez activer ces journaux d'accès aux données en activant la journalisation d'audit pour mcp.googleapis.com dans l'objet IAM AuditConfig. Pour en savoir plus sur la journalisation d'audit pour les serveurs MCP Google Cloud, consultez Journaux d'audit des serveurs MCP Google Cloud.

Cloud de Confiance  configuration de ressources

Vous pouvez configurer les journaux d'audit des accès aux données pour les projets, les comptes de facturation, les dossiers et les organisations Cloud de Confiance . S'il existe une configuration pour un serviceCloud de Confiance dans la hiérarchie, la configuration obtenue est l'union des configurations. En d'autres termes, au niveau du projetCloud de Confiance  :

  • Vous pouvez activer les journaux pour un service Cloud de Confiance , mais vous ne pouvez pas désactiver les journaux pour un service Cloud de Confiance s'ils sont activés dans une organisation ou un dossier parent.

  • Vous pouvez activer des types d'informations, mais vous ne pouvez pas désactiver ceux qui sont activés dans une organisation ou un dossier parent.

  • Vous pouvez ajouter des comptes principaux aux listes d'exceptions, mais vous ne pouvez pas les supprimer des listes d'exceptions d'une organisation ou d'un dossier parent.

  • Au niveau d'une organisation ou d'un dossier parent, vous pouvez activer les journaux d'audit des accès aux données pour un projet Cloud de Confiance au sein de cette organisation ou de ce dossier, même si les journaux d'audit des accès aux données n'ont pas été configurés dans le projetCloud de Confiance .

Contrôle des accès

Les rôles et autorisations Identity and Access Management régissent l'accès aux données de Logging, y compris l'affichage et la gestion des stratégies IAM sous-jacentes aux configurations des journaux d'audit pour l'accès aux données.

Pour afficher ou définir les stratégies associées à la configuration de l'accès aux données, vous devez disposer d'un rôle doté d'autorisations au niveau des ressources approprié. Pour savoir comment attribuer ces rôles au niveau des ressources, consultez Gérer l'accès aux projets, aux dossiers et aux organisations Cloud de Confiance .

  • Pour définir des stratégies IAM, vous devez disposer d'un rôle doté de l'autorisation resourcemanager.RESOURCE_TYPE.setIamPolicy.

  • Pour afficher les stratégies IAM, vous devez disposer d'un rôle doté de l'autorisation resourcemanager.RESOURCE_TYPE.getIamPolicy.

Pour obtenir la liste des autorisations et des rôles dont vous avez besoin pour afficher les journaux d'audit des accès aux données, consultez Contrôle des accès avec IAM.

Configurer les journaux d'audit des accès aux données avec la console Cloud de Confiance

Cette section explique comment utiliser la console Cloud de Confiance pour configurer les journaux d'audit des accès aux données.

Vous pouvez également utiliser l'API ou la Google Cloud CLI pour effectuer ces tâches de manière programmatique. Pour en savoir plus, consultez Configurer les journaux d'audit des accès aux données avec l'API.

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

  1. Dans la console Cloud de Confiance , accédez à la page Journaux d'audit :

    Accéder aux journaux d'audit

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

  2. Sélectionnez un projet, un dossier ou une organisation Cloud de Confiance existants.

Activer les journaux d'audit

Pour activer les journaux d'audit des accès aux données, procédez comme suit :

  1. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez un ou plusieurs servicesCloud de Confiance dans la colonne Service.

  2. Dans l'onglet Types d'autorisations, sélectionnez les types de journaux d'audit des accès aux données que vous souhaitez activer pour les services sélectionnés.

  3. Cliquez sur Enregistrer.

Si vous avez activé les journaux d'audit, le tableau inclut une icône Coche.

Dans l'exemple suivant, vous pouvez voir que le type de journal d'audit Lecture des données est activé pour le service Access Approval :

Configuration des journaux d'audit

Vous pouvez également activer les journaux d'audit pour tous les services Cloud de Confiance qui génèrent des journaux d'audit des accès aux données. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez tous les services Cloud de Confiance .

Notez que cette méthode de configuration groupée ne s'applique qu'aux services Cloud de Confiancedisponibles pour votre ressource. Si un nouveau serviceCloud de Confiance est ajouté, il hérite de votre configuration d'audit par défaut.

Désactiver les journaux d'audit pour l'accès aux données

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

  1. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez un ou plusieurs servicesCloud de Confiance .

  2. Dans l'onglet Types de journaux du panneau d'informations, sélectionnez les types de journaux d'audit des accès aux données que vous souhaitez désactiver pour les services sélectionnés.

  3. Cliquez sur Enregistrer.

Si vous avez désactivé les journaux d'audit des accès aux données, la table l'indique par un tiret. Les journaux d'audit des accès aux données activés sont indiqués par une icône Coche.

Définir des exemptions

Vous pouvez définir des exceptions pour contrôler quels comptes principaux génèrent des journaux d'audit des accès aux données pour des services particuliers. Lorsque vous ajoutez un compte principal exempté, aucun journal d'audit n'est créé pour lui pour les types de journaux sélectionnés.

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

  1. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez un serviceCloud de Confiance dans la colonne Service.

  2. Sélectionnez l'onglet Comptes principaux exemptés dans le panneau d'informations.

  3. Dans Ajouter un compte principal exempté, saisissez le compte principal que vous souhaitez exempter de la génération de journaux d'audit des accès aux données pour le service sélectionné.

    Vous pouvez ajouter plusieurs comptes principaux en cliquant sur le bouton Ajouter un compte principal exempté autant de fois que nécessaire.

    Pour obtenir la liste des comptes principaux valides, y compris les utilisateurs et les groupes, consultez la documentation de référence sur le type Binding.

  4. Dans Types de journaux désactivés, sélectionnez les types de journaux d'audit des accès aux données que vous souhaitez désactiver.

  5. Cliquez sur Enregistrer.

Si vous avez ajouté des comptes principaux exemptés à un service, le tableau Configuration des journaux d'audit des accès aux données l'indique par un nombre dans la colonne Comptes principaux exemptés.

Pour supprimer un principal de votre liste d'exemptions, procédez comme suit :

  1. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez un serviceCloud de Confiance dans la colonne Service.

  2. Sélectionnez l'onglet Comptes principaux exemptés dans le panneau d'informations.

  3. Pointez sur le nom d'un compte principal, puis sélectionnez Supprimer.

  4. Une fois que le nom du compte principal est barré, cliquez sur Enregistrer.

Pour modifier les informations d'un principal exempté, procédez comme suit :

  1. Dans le tableau Configuration des journaux d'audit des accès aux données, sélectionnez un serviceCloud de Confiance dans la colonne Service.

  2. Sélectionnez l'onglet Comptes principaux exemptés dans le panneau d'informations.

  3. Recherchez le compte principal, puis sélectionnez Développer  Afficher plus.

  4. Sélectionnez ou désélectionnez les types de journaux d'audit des accès aux données, selon les besoins du compte principal.

  5. Cliquez sur Enregistrer.

Définir la configuration par défaut

Vous pouvez définir une configuration dont hériteront tous les services Cloud de Confiancenouveaux et existants de votre projet, dossier ou organisation Cloud de Confiance . La définition de cette configuration par défaut s'applique si un nouveau service Cloud de Confiance devient disponible et que les comptes principaux de votre organisation commencent à l'utiliser : le service hérite de la stratégie de journalisation d'audit que vous avez déjà définie pour d'autres servicesCloud de Confiance , ce qui garantit la capture des journaux d'audit des accès aux données.

Pour définir ou modifier la configuration par défaut, procédez comme suit :

  1. Cliquez sur Définir la configuration par défaut.

  2. Dans l'onglet Types de journaux du panneau d'informations, sélectionnez les types de journaux d'audit des accès aux données que vous souhaitez activer ou désactiver.

  3. Cliquez sur Enregistrer.

  4. Sélectionnez l'onglet Comptes principaux exemptés dans le panneau d'informations.

  5. Dans Ajouter un compte principal exempté, saisissez le compte principal que vous souhaitez exempter de la génération de journaux d'audit des accès aux données pour le service sélectionné.

    Vous pouvez ajouter plusieurs comptes principaux en cliquant sur le bouton Ajouter un compte principal exempté autant de fois que nécessaire.

    Pour obtenir la liste des comptes principaux valides, y compris les utilisateurs et les groupes, consultez la documentation de référence sur le type Binding.

  6. Dans Types de journaux désactivés, sélectionnez les types de journaux d'audit des accès aux données que vous souhaitez désactiver.

  7. Cliquez sur Enregistrer.

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

Cette section explique comment utiliser l'API et la gcloud CLI pour configurer les journaux d'audit des accès aux données de manière programmatique.

La plupart de ces tâches peuvent également être effectuées à l'aide de la console Cloud de Confiance . Pour obtenir des instructions, consultez la section Configurer les journaux d'audit des accès aux données à l'aide de la console Cloud de Confiance sur cette page.

Certains services BigQuery, comme l'API BigQuery Reservation, nécessitent l'activation explicite des journaux d'audit des accès aux données. Pour activer les journaux d'audit des accès aux données pour l'API BigQuery Reservation, vous devez modifier votre configuration afin d'activer les journaux d'audit ADMIN_READ pour bigquery.googleapis.com.

Objets des stratégies IAM

Pour configurer les journaux d'audit des accès aux données à l'aide de l'API, vous devez modifier la stratégie IAM associée à votre projet, dossier ou organisation Cloud de Confiance . La configuration du journal 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 connaître les commandes de l'API et de la gcloud CLI permettant de modifier la configuration, consultez la section getIamPolicy et setIamPolicy.

AuditConfig objets

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_NAME,
  "auditLogConfigs": [
    {
      "logType": "ADMIN_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ PRINCIPAL,]
    },
  ]
},

SERVICE_NAME a une valeur telle que "appengine.googleapis.com", ou il s'agit de 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 d'audit 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.

La section auditLogConfigs de l'objet AuditConfig est une liste de 0 à 3 objets, chacun d'entre eux configurant un type 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.

PRINCIPAL est un utilisateur pour lequel les journaux d'audit pour l'accès aux données ne sont pas collectés. Le type Binding décrit différents types de comptes principaux, y compris les utilisateurs et les groupes, mais ils ne peuvent pas tous être utilisés pour configurer les journaux d'audit des accès aux données.

Vous trouverez ci-dessous un exemple de configuration d'audit aux formats JSON et YAML. Le format YAML est utilisé par défaut lorsque vous utilisez la Google Cloud CLI.

JSON

"auditConfigs": [
  {
    "auditLogConfigs": [
      {
        "logType": "ADMIN_READ"
      },
      {
        "logType": "DATA_WRITE"
      },
      {
        "logType": "DATA_READ"
      }
    ],
    "service": "allServices"
  },
  {
    "auditLogConfigs": [
      {
        "exemptedMembers": [
          "499862534253-compute@developer.s3ns-system.iam.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.s3ns-system.iam.gserviceaccount.com
    logType: ADMIN_READ
  service: cloudsql.googleapis.com

Configurations courantes

Voici quelques configurations de journaux d'audit courantes pour les projets Cloud de Confiance .

Activer tous les journaux d'audit pour l'accès aux données

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

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 des accès aux données DATA_WRITE pour Cloud SQL :

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 d'audit pour l'accès aux données

Pour désactiver tous les journaux d'audit des accès aux données (à l'exception de certains journaux BigQuery) dans un projet Cloud de Confiance , incluez une section auditConfigs: vide dans votre nouvelle stratégie IAM :

JSON

"auditConfigs": [],

YAML

auditConfigs:

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

Les journaux d'audit pour l'accès aux données BigQuery ne peuvent pas être désactivés.

getIamPolicy et setIamPolicy

Vous utilisez les méthodes getIamPolicy et setIamPolicy de l'API Cloud Resource Manager pour lire et écrire votre stratégie IAM. Plusieurs options s'offrent à vous :

  • L'API Cloud Resource Manager dispose des méthodes suivantes :

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • La Google Cloud CLI dispose des commandes Resource Manager suivantes :

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud resource-manager folders get-iam-policy
    gcloud resource-manager folders set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations set-iam-policy
    gcloud beta billing accounts get-iam-policy
    gcloud beta billing accounts set-iam-policy
    

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

  1. Consultez la stratégie actuelle en utilisant 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 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 des 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".

gcloud

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 la suivante. Cette stratégie ne comporte pas 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 pouvez ajouter ou modifier que la configuration des journaux d'audit des accès aux données.

    Voici un exemple de stratégie modifiée, qui active les journaux d'audit des accès aux données pour l'écriture de données Cloud SQL :

    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
    

    Comme le montre l'exemple précédent, quatre lignes ont été ajoutées au début de la stratégie.

  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 vos journaux d'audit des 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 :

    • resource : projects/PROJECT_ID
    • Corps de la requête : empty

    La méthode renvoie l'objet de stratégie actuel :

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

    L'exemple précédent montre que la stratégie du projet ne comporte pas de section auditConfigs.

  2. Modifiez la stratégie actuelle :

    • Modifiez ou ajoutez la section auditConfigs.

      Pour désactiver vos journaux d'audit pour l'accès aux données, indiquez une valeur vide pour la section : auditConfigs:[].

    • Conservez la valeur de etag.

    Vous pouvez également supprimer toutes les autres informations du nouvel objet de stratégie, à condition de définir updateMask à l'étape suivante. Voici la stratégie modifiée, qui active les journaux d'audit DATA_WRITE de Cloud SQL :

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

    • resource : projects/PROJECT_ID
    • Corps de la requête : incluez la stratégie modifiée.

Masque de mise à jour setIamPolicy

Cette section explique l'importance du paramètre updateMask dans la méthode setIamPolicy et pourquoi vous devez faire attention à la commande gcloud CLI set-iam-policy afin de ne pas endommager accidentellement votre projet ou votre organisation Cloud de Confiance .

La méthode d'API setIamPolicy utilise un paramètre updateMask pour 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. Si vous n'incluez pas de valeur à jour pour bindings, cette 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 façon suivante :

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

Compte tenu de ces règles, la commande set-iam-policy présente les comportements suivants :

  • 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 cela 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. Cette opération est très dangereuse et entraîne la perte de l'accès à votre projet Cloud de Confiance pour tous les comptes principaux.

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