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

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce guide explique comment activer ou désactiver tout ou partie des journaux d'audit pour l'accès aux données dans vos projets, comptes de facturation, dossiers et organisations Cloud à l'aide de Google Cloud Console 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 pour l'accès aux données sont désactivés par défaut (sauf dans BigQuery). 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.

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

Présentation de la configuration

Vous pouvez activer et configurer certains aspects des journaux d'audit pour l'accès aux données pour vos ressources et services Google Cloud:

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

  • Dossiers: vous pouvez activer et configurer les journaux d'audit pour l'accès aux données dans un dossier, ce qui s'applique à tous les projets Cloud 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 pour l'accès aux données pour un projet Cloud 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 Google Cloud CLI. Pour en savoir plus sur l'utilisation de la CLI gcloud avec les journaux d'audit pour l'accès aux données et les comptes de facturation, consultez la documentation de référence sur gcloud beta billing accounts set-iam-policy.

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

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

  • Types de journaux: vous pouvez configurer les types d'opérations enregistrés dans les journaux d'audit pour l'accès aux données. Il existe trois types de journaux d'audit pour l'accès aux données:

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

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

    Par exemple, Cloud DNS écrit les trois types de journaux d'accès aux données, mais vous pouvez configurer vos journaux d'audit pour l'accès aux données de sorte qu'ils n'enregistrent que les opérations DATA_WRITE.

  • Comptes principaux exemptés: vous pouvez empêcher l'enregistrement de l'accès aux données de comptes principaux spécifiques. Par exemple, vous pouvez empêcher l'enregistrement des opérations Cloud Debugger pour vos comptes de test internes. 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 les journaux d'audit pour l'accès aux données via la console de journaux d'audit IAM ou l'API. Ces méthodes sont décrites dans les sections ci-dessous.

Configurations spécifiques aux services

S'il existe à la fois une configuration pour tous les services Google Cloud (allServices) et une configuration pour un service Google Cloud spécifique, la configuration pour le service correspond à l'union des deux configurations. Autrement dit :

  • Vous pouvez activer les journaux d'audit pour l'accès aux données pour des services Google Cloud spécifiques, mais vous ne pouvez pas les désactiver pour les services Google Cloud activés 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 Google Cloud, mais vous ne pouvez pas supprimer les types d'informations spécifiés dans la configuration globale.

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

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

Configurations de ressources Google Cloud

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

  • Vous pouvez activer les journaux pour un service Google Cloud, mais vous ne pouvez pas les désactiver pour un service Google Cloud activé 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 à des listes d'exemptions, mais vous ne pouvez pas les supprimer des listes d'exemptions d'une organisation ou d'un dossier parent.

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

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 la page Gérer l'accès aux projets cloud, dossiers et organisations.

  • 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 pour l'accès aux données, consultez la page Contrôle des accès avec IAM.

Configurer les journaux d'audit pour l'accès aux données avec Google Cloud Console

Cette section explique comment configurer les journaux d'audit pour l'accès aux données à l'aide de Google Cloud Console.

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

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

  1. Dans la console Google Cloud, sélectionnez IAM & Admin > Audit Logs (Journaux d'audit) :

    Accéder aux journaux d'audit

  2. Sélectionnez un projet, une organisation ou un dossier Cloud existant.

Activer les journaux d'audit

Pour activer les journaux d'audit pour l'accès aux données:

  1. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez un ou plusieurs services Google Cloud dans la colonne Service.

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

  3. Cliquez sur Save (Enregistrer).

Lorsque les journaux d'audit ont bien été activés, la table inclut une coche .

Dans l'exemple suivant, le type de journal d'audit Lecture de 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 Google Cloud qui génèrent des journaux d'audit d'accès aux données. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez tous les services Google Cloud.

Notez que cette méthode de configuration groupée ne s'applique qu'aux services Google Cloud actuellement disponibles pour votre ressource. Si un nouveau service Google Cloud 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 pour l'accès aux données, procédez comme suit:

  1. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez un ou plusieurs services Google Cloud.

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

  3. Cliquez sur Save (Enregistrer).

Si vous avez réussi à désactiver les journaux d'audit pour l'accès aux données, un tiret s'affiche dans le tableau. Tous les journaux d'audit pour l'accès aux données activés sont signalés par une coche .

Définir des exceptions

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

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

  1. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez un service Google Cloud dans la colonne Service.

  2. Sélectionnez l'onglet Exemptés de comptes principaux dans le panneau d'informations.

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

    Vous pouvez ajouter plusieurs comptes principaux en cliquant sur le bouton Ajouter des comptes principaux exemptés 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 pour l'accès aux données que vous souhaitez désactiver.

  5. Cliquez sur Save (Enregistrer).

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

Pour supprimer un compte principal de votre liste d'exceptions:

  1. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez un service Google Cloud dans la colonne Service.

  2. Sélectionnez l'onglet Exemptés de comptes principaux dans le panneau d'informations.

  3. Pointez sur un nom de compte principal, puis sélectionnez l'icône de suppression qui s'affiche.

  4. Une fois que le nom du compte principal apparaît dans le texte barré, cliquez sur Enregistrer.

Pour modifier les informations d'un compte principal exempté:

  1. Dans le tableau Configuration des journaux d'audit pour l'accès aux données, sélectionnez un service Google Cloud dans la colonne Service.

  2. Sélectionnez l'onglet Exemptés de comptes principaux dans le panneau d'informations.

  3. Développez le nom du compte principal.

  4. Sélectionnez ou désélectionnez les types de journaux d'audit pour l'accès aux données en fonction du compte principal.

  5. Cliquez sur Save (Enregistrer).

Définir la configuration par défaut

Vous pouvez définir une configuration qui sera appliquée à tous les services Google Cloud nouveaux et existants de votre projet cloud, dossier ou organisation. Cette configuration par défaut s'applique si un nouveau service Google Cloud devient disponible et que les comptes principaux de votre organisation commencent à l'utiliser: le service hérite de la règle de journalisation d'audit que vous avez déjà définie pour les autres services Google Cloud, ce qui garantit la capture des journaux d'audit pour l'accès aux données.

Pour définir ou modifier la configuration par défaut:

  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 pour l'accès aux données que vous souhaitez activer ou désactiver.

  3. Cliquez sur Save (Enregistrer).

  4. Sélectionnez l'onglet Exemptés de comptes principaux dans le panneau d'informations.

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

    Vous pouvez ajouter plusieurs comptes principaux en cliquant sur le bouton Ajouter des comptes principaux exemptés 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 pour l'accès aux données que vous souhaitez désactiver.

  7. Cliquez sur Save (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 gcloud CLI pour configurer les journaux d'audit des accès aux données de manière automatisée.

Un grand nombre de ces tâches peuvent également être effectuées à l'aide de Google Cloud Console. Pour obtenir des instructions, consultez Configurer les journaux d'audit pour l'accès aux données avec Google Cloud Console sur cette page.

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 cloud, 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 de gcloud utilisées pour modifier la configuration, consultez les méthodes 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,
  "auditLogConfigs": [
    {
      "logType": "ADMIN_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ PRINCIPAL,]
    },
  ]
},

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 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 des utilisateurs et des groupes, mais ils ne peuvent pas tous être utilisés pour configurer les 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 utilisé par défaut lorsque vous utilisez Google Cloud CLI.

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

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

La section auditConfigs suivante active les journaux d'audit pour l'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 pour l'accès aux données dans un projet Cloud (sauf dans BigQuery), 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 page Masque de mise à jour de la méthode setIamPolicy.

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

getIamPolicy et setIamPolicy

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

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

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Google Cloud CLI propose les 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.

Examples

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 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 présentée ci-dessous. Elle ne comporte 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 pouvez 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 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 la stratégie actuelle décrit ci-dessous. La stratégie de ce projet ne comporte 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.

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

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

Masque de mise à jour setIamPolicy

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

La méthode setIamPolicy API method 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. C'est très dangereux, et tous les comptes principaux perdent l'accès à votre projet Cloud.

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