Deployments: setIamPolicy

Autorisation requise

Définit la stratégie de contrôle d'accès de la ressource spécifiée. Remplace toute stratégie existante. Essayer maintenant

Requête

Requête HTTP

POST https://www.googleapis.com/deploymentmanager/v2/projects/project/global/deployments/resource/setIamPolicy

Paramètres

Nom du paramètre Valeur Description
Paramètres de chemin d'accès
project string ID du projet pour cette demande.
resource string Nom ou ID de la ressource pour cette requête.

Autorisation

Une autorisation est requise pour cette requête. Celle-ci doit inclure au moins l'un des champs d'application suivants. En savoir plus sur le processus d'authentification et d'autorisation

Champ d'application
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/ndev.cloudman

Corps de la requête

Dans le corps de la requête, indiquez des données en utilisant la structure suivante:

{
  "policy": {
    "version": integer,
    "bindings": [
      {
        "role": string,
        "members": [
          string
        ],
        "condition": {
          "expression": string,
          "title": string,
          "description": string,
          "location": string
        }
      }
    ],
    "auditConfigs": [
      {
        "service": string,
        "exemptedMembers": [
          string
        ],
        "auditLogConfigs": [
          {
            "logType": string,
            "exemptedMembers": [
              string
            ]
          }
        ]
      }
    ],
    "rules": [
      {
        "description": string,
        "permissions": [
          string
        ],
        "action": string,
        "ins": [
          string
        ],
        "notIns": [
          string
        ],
        "conditions": [
          {
            "iam": string,
            "sys": string,
            "svc": string,
            "op": string,
            "values": [
              string
            ]
          }
        ],
        "logConfigs": [
          {
            "counter": {
              "metric": string,
              "field": string
            },
            "dataAccess": {
              "logMode": string
            },
            "cloudAudit": {
              "logName": string,
              "authorizationLoggingOptions": {
                "permissionType": string
              }
            }
          }
        ]
      }
    ],
    "etag": bytes,
    "iamOwned": boolean
  },
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "etag": bytes
}
Nom de propriété Valeur Description Remarques
bindings[] list Règle de mise à plat pour créer un format de fil rétrocompatible. Obsolète. Utilisez "policy" pour spécifier des liaisons.
bindings[].role string Rôle attribué aux "membres". Par exemple, "roles/viewer", "roles/editor" ou "roles/owner".
bindings[].members[] list Spécifie les identités demandant l'accès à une ressource Cloud Platform. "members" peut prendre les valeurs suivantes:

* "allUsers" : identifiant spécial qui représente toute personne ayant accès à Internet et possédant ou non un compte Google.

* "allAuthenticatedUsers" : identifiant spécial qui représente toute personne authentifiée avec un compte Google ou un compte de service.

 * "user:{emailid}" : adresse e-mail qui représente un compte Google spécifique. Par exemple, "alice@gmail.com".



* "serviceAccount:{emailid}" : adresse e-mail représentant un compte de service. Par exemple, "mon-autre-application@appspot.gserviceaccount.com".

* "group:{emailid}" : adresse e-mail représentant un groupe Google. Par exemple, "admins@example.com".



* "domain:{domain}" : domaine G Suite (principal) qui représente tous les utilisateurs de ce domaine. Par exemple, "google.com" ou "example.com".







etag bytes Règle de mise à plat pour créer un format de fil rétrocompatible. Obsolète. Utilisez "policy" pour spécifier l'etag.
bindings[].condition nested object Condition associée à cette liaison. REMARQUE : Une condition non remplie empêchera l'accès de l'utilisateur via la liaison actuelle. Les différentes liaisons, y compris leurs conditions, sont examinées indépendamment.
bindings[].condition.expression string Représentation textuelle d'une expression à l'aide de la syntaxe CEL (Common Expression Language).

Le contexte d'application du message contenant l'expression détermine quel ensemble de caractéristiques connues de CEL est disponible.
bindings[].condition.title string Titre facultatif de l'expression qui correspond à une courte chaîne décrivant sa finalité. Il peut par exemple être utilisé dans les interfaces utilisateur qui permettent de saisir l'expression.
bindings[].condition.description string Description facultative de l'expression. Il s'agit d'un texte plus long décrivant l'expression (par exemple, lorsque l'utilisateur passe la souris sur celle-ci dans une interface utilisateur).
bindings[].condition.location string Chaîne facultative indiquant l'emplacement de l'expression pour la création de rapports d'erreurs (par exemple, un nom de fichier et une position dans le fichier).
policy nested object OBLIGATOIRE: Stratégie complète à appliquer à la "ressource". La taille de la stratégie est limitée à quelques dizaines de Ko. Une stratégie vide est généralement une stratégie valide, mais certains services (comme Projects) peuvent la rejeter.
policy.version integer Obsolète.

policy.bindings[] list Associe une liste de "members" à un "role". Si "bindings" ne contient pas de membres, une erreur se produira.
policy.bindings[].role string Rôle attribué aux "membres". Par exemple, "roles/viewer", "roles/editor" ou "roles/owner".
policy.bindings[].members[] list Spécifie les identités demandant l'accès à une ressource Cloud Platform. "members" peut prendre les valeurs suivantes:

* "allUsers" : identifiant spécial qui représente toute personne ayant accès à Internet et possédant ou non un compte Google.

* "allAuthenticatedUsers" : identifiant spécial qui représente toute personne authentifiée avec un compte Google ou un compte de service.

 * "user:{emailid}" : adresse e-mail qui représente un compte Google spécifique. Par exemple, "alice@gmail.com".



* "serviceAccount:{emailid}" : adresse e-mail représentant un compte de service. Par exemple, "mon-autre-application@appspot.gserviceaccount.com".

* "group:{emailid}" : adresse e-mail représentant un groupe Google. Par exemple, "admins@example.com".



* "domain:{domain}" : domaine G Suite (principal) qui représente tous les utilisateurs de ce domaine. Par exemple, "google.com" ou "example.com".







policy.bindings[].condition nested object Condition associée à cette liaison. REMARQUE : Une condition non remplie empêchera l'accès de l'utilisateur via la liaison actuelle. Les différentes liaisons, y compris leurs conditions, sont examinées indépendamment.
policy.bindings[].condition.expression string Représentation textuelle d'une expression à l'aide de la syntaxe CEL (Common Expression Language).

Le contexte d'application du message contenant l'expression détermine quel ensemble de caractéristiques connues de CEL est disponible.
policy.bindings[].condition.title string Titre facultatif de l'expression qui correspond à une courte chaîne décrivant sa finalité. Il peut par exemple être utilisé dans les interfaces utilisateur qui permettent de saisir l'expression.
policy.bindings[].condition.description string Description facultative de l'expression. Il s'agit d'un texte plus long décrivant l'expression (par exemple, lorsque l'utilisateur passe la souris sur celle-ci dans une interface utilisateur).
policy.bindings[].condition.location string Chaîne facultative indiquant l'emplacement de l'expression pour la création de rapports d'erreurs (par exemple, un nom de fichier et une position dans le fichier).
policy.auditConfigs[] list Spécifie la configuration de journalisation d'audit du cloud pour cette stratégie.

policy.auditConfigs[].service string Spécifie un service qui sera activé pour la journalisation d'audit. Par exemple, "storage.googleapis.com", "cloudsql.googleapis.com". "allServices" est une valeur spéciale qui couvre tous les services.
policy.auditConfigs[].exemptedMembers[] list

policy.auditConfigs[].auditLogConfigs[] list Configuration de la journalisation de chaque type d'autorisation.
policy.auditConfigs[].auditLogConfigs[].logType string Type de journal que cette configuration active.
policy.auditConfigs[].auditLogConfigs[].exemptedMembers[] list Spécifie les identités qui ne génèrent pas de journalisation pour ce type d'autorisation. Ce champ utilise le même format que [Binding.members][].
policy.rules[] list Si plusieurs règles sont spécifiées, elles sont appliquées de la manière suivante: - Toutes les règles LOG correspondantes sont toujours appliquées. - Si une règle DENY/DENY_WITH_LOG correspond, l'autorisation est refusée. La journalisation est appliquée si une ou plusieurs règles correspondantes nécessitent la journalisation. - Sinon, si une règle ALLOW/ALLOW_WITH_LOG correspond, l'autorisation est accordée. La journalisation est appliquée si une ou plusieurs règles correspondantes nécessitent la journalisation. - Sinon, si aucune règle ne s'applique, l'autorisation est refusée.
policy.rules[].description string Description lisible de la règle.
policy.rules[].permissions[] list Une autorisation est une chaîne au format ..(par exemple, "storage.buckets.list"). Une valeur de "*" correspond à toutes les autorisations, et une partie verbale de "*" (par exemple, "storage.buckets.*" correspond à tous les verbes.

policy.rules[].action string Obligatoire
policy.rules[].ins[] list Si une ou plusieurs clauses "in" sont spécifiées, la règle correspond si PRINCIPAL/AUTHORITY_SELECTOR figure dans au moins l'une de ces entrées.
policy.rules[].notIns[] list Si une ou plusieurs clauses "not_in" sont spécifiées, la règle correspond si PRINCIPAL/AUTHORITY_SELECTOR ne figure dans aucune des entrées.
policy.rules[].conditions[] list Restrictions supplémentaires à respecter Toutes les conditions doivent être remplies pour que la règle s'applique.
policy.rules[].conditions[].iam string Attributs approuvés fournis par le système IAM.
policy.rules[].conditions[].sys string Attributs approuvés fournis par tout service propriétaire de ressources et qui utilise le système IAM pour le contrôle des accès.
policy.rules[].conditions[].svc string Attributs approuvés exécutés par le service.
policy.rules[].conditions[].op string Opérateur à utiliser pour appliquer le sujet.
policy.rules[].conditions[].values[] list Objets de la condition.
policy.rules[].logConfigs[] list La configuration renvoyée aux appelants de tech.iam.IAM.CheckPolicy pour toutes les entrées correspondant à l'action LOG.
policy.rules[].logConfigs[].counter nested object Options du compteur.
policy.rules[].logConfigs[].counter.metric string Métrique à mettre à jour.
policy.rules[].logConfigs[].counter.field string Valeur du champ à attribuer.
policy.rules[].logConfigs[].dataAccess nested object Options d'accès aux données.
policy.rules[].logConfigs[].dataAccess.logMode string Indique si la journalisation Gin doit être effectuée de manière fail-closed auprès de l'appelant. Pour le moment, cela n'est pertinent que dans l'implémentation de LocalIAM.

REMARQUE: La journalisation dans Gin de manière fail-closed n'est actuellement pas prise en charge, car des efforts sont déployés pour répondre aux exigences de go/345. Actuellement, le paramètre LOG_FAIL_CLOSED n'a aucun effet, mais il existe toujours, car des efforts sont actuellement déployés pour le prendre en charge (b/115874152).
policy.rules[].logConfigs[].cloudAudit nested object Options d'audit dans le cloud.
policy.rules[].logConfigs[].cloudAudit.logName string Nom de journal à renseigner dans l'enregistrement d'audit Cloud.

policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Informations utilisées par le pipeline Cloud Audit Logging.
policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string Type de l'autorisation vérifiée.
policy.etag bytes L'élément "etag" permet d'effectuer un contrôle de simultanéité positive, pour éviter que les mises à jour simultanées d'une stratégie ne s'écrasent les unes les autres. Nous vous recommandons vivement d'utiliser l'attribut "etag" dans le cycle de lecture-modification-écriture pour effectuer des mises à jour de stratégie afin d'éviter les conditions de concurrence: un "etag" est renvoyé dans la réponse à "getIamPolicy", et les systèmes doivent placer cet "etag" dans la requête à "setIamPolicy" pour s'assurer que leur modification sera appliquée à la même version de la stratégie.

Si aucun "etag" n'est fourni dans l'appel de "setIamPolicy", la stratégie existante est écrasée de manière aveugle.
policy.iamOwned boolean

Réponse

Si la requête aboutit, cette méthode renvoie un corps de réponse présentant la structure suivante :

{
  "version": integer,
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "auditConfigs": [
    {
      "service": string,
      "exemptedMembers": [
        string
      ],
      "auditLogConfigs": [
        {
          "logType": string,
          "exemptedMembers": [
            string
          ]
        }
      ]
    }
  ],
  "rules": [
    {
      "description": string,
      "permissions": [
        string
      ],
      "action": string,
      "ins": [
        string
      ],
      "notIns": [
        string
      ],
      "conditions": [
        {
          "iam": string,
          "sys": string,
          "svc": string,
          "op": string,
          "values": [
            string
          ]
        }
      ],
      "logConfigs": [
        {
          "counter": {
            "metric": string,
            "field": string
          },
          "dataAccess": {
            "logMode": string
          },
          "cloudAudit": {
            "logName": string,
            "authorizationLoggingOptions": {
              "permissionType": string
            }
          }
        }
      ]
    }
  ],
  "etag": bytes,
  "iamOwned": boolean
}
Nom de propriété Valeur Description Remarques
version integer Obsolète.

bindings[] list Associe une liste de "members" à un "role". Si "bindings" ne contient pas de membres, une erreur se produira.
bindings[].role string Rôle attribué aux "membres". Par exemple, "roles/viewer", "roles/editor" ou "roles/owner".
bindings[].members[] list Spécifie les identités demandant l'accès à une ressource Cloud Platform. "members" peut prendre les valeurs suivantes:

* "allUsers" : identifiant spécial qui représente toute personne ayant accès à Internet et possédant ou non un compte Google.

* "allAuthenticatedUsers" : identifiant spécial qui représente toute personne authentifiée avec un compte Google ou un compte de service.

 * "user:{emailid}" : adresse e-mail qui représente un compte Google spécifique. Par exemple, "alice@gmail.com".



* "serviceAccount:{emailid}" : adresse e-mail représentant un compte de service. Par exemple, "mon-autre-application@appspot.gserviceaccount.com".

* "group:{emailid}" : adresse e-mail représentant un groupe Google. Par exemple, "admins@example.com".



* "domain:{domain}" : domaine G Suite (principal) qui représente tous les utilisateurs de ce domaine. Par exemple, "google.com" ou "example.com".







auditConfigs[] list Spécifie la configuration de journalisation d'audit du cloud pour cette stratégie.

auditConfigs[].service string Spécifie un service qui sera activé pour la journalisation d'audit. Par exemple, "storage.googleapis.com", "cloudsql.googleapis.com". "allServices" est une valeur spéciale qui couvre tous les services.
auditConfigs[].exemptedMembers[] list

auditConfigs[].auditLogConfigs[] list Configuration de la journalisation de chaque type d'autorisation.
auditConfigs[].auditLogConfigs[].logType string Type de journal que cette configuration active.
auditConfigs[].auditLogConfigs[].exemptedMembers[] list Spécifie les identités qui ne génèrent pas de journalisation pour ce type d'autorisation. Ce champ utilise le même format que [Binding.members][].
rules[] list Si plusieurs règles sont spécifiées, elles sont appliquées de la manière suivante: - Toutes les règles LOG correspondantes sont toujours appliquées. - Si une règle DENY/DENY_WITH_LOG correspond, l'autorisation est refusée. La journalisation est appliquée si une ou plusieurs règles correspondantes nécessitent la journalisation. - Sinon, si une règle ALLOW/ALLOW_WITH_LOG correspond, l'autorisation est accordée. La journalisation est appliquée si une ou plusieurs règles correspondantes nécessitent la journalisation. - Sinon, si aucune règle ne s'applique, l'autorisation est refusée.
rules[].description string Description lisible de la règle.
rules[].permissions[] list Une autorisation est une chaîne au format ..(par exemple, "storage.buckets.list"). Une valeur de "*" correspond à toutes les autorisations, et une partie verbale de "*" (par exemple, "storage.buckets.*" correspond à tous les verbes.

rules[].action string Obligatoire
rules[].ins[] list Si une ou plusieurs clauses "in" sont spécifiées, la règle correspond si PRINCIPAL/AUTHORITY_SELECTOR figure dans au moins l'une de ces entrées.
rules[].notIns[] list Si une ou plusieurs clauses "not_in" sont spécifiées, la règle correspond si PRINCIPAL/AUTHORITY_SELECTOR ne figure dans aucune des entrées.
rules[].conditions[] list Restrictions supplémentaires à respecter Toutes les conditions doivent être remplies pour que la règle s'applique.
rules[].conditions[].iam string Attributs approuvés fournis par le système IAM.
rules[].conditions[].sys string Attributs approuvés fournis par tout service propriétaire de ressources et qui utilise le système IAM pour le contrôle des accès.
rules[].conditions[].svc string Attributs approuvés exécutés par le service.
rules[].conditions[].op string Opérateur à utiliser pour appliquer le sujet.
rules[].conditions[].values[] list Objets de la condition.
rules[].logConfigs[] list La configuration renvoyée aux appelants de tech.iam.IAM.CheckPolicy pour toutes les entrées correspondant à l'action LOG.
rules[].logConfigs[].counter nested object Options du compteur.
rules[].logConfigs[].counter.metric string Métrique à mettre à jour.
rules[].logConfigs[].counter.field string Valeur du champ à attribuer.
etag bytes L'élément "etag" permet d'effectuer un contrôle de simultanéité positive, pour éviter que les mises à jour simultanées d'une stratégie ne s'écrasent les unes les autres. Nous vous recommandons vivement d'utiliser l'attribut "etag" dans le cycle de lecture-modification-écriture pour effectuer des mises à jour de stratégie afin d'éviter les conditions de concurrence: un "etag" est renvoyé dans la réponse à "getIamPolicy", et les systèmes doivent placer cet "etag" dans la requête à "setIamPolicy" pour s'assurer que leur modification sera appliquée à la même version de la stratégie.

Si aucun "etag" n'est fourni dans l'appel de "setIamPolicy", la stratégie existante est écrasée de manière aveugle.
iamOwned boolean

bindings[].condition nested object Condition associée à cette liaison. REMARQUE : Une condition non remplie empêchera l'accès de l'utilisateur via la liaison actuelle. Les différentes liaisons, y compris leurs conditions, sont examinées indépendamment.
bindings[].condition.expression string Représentation textuelle d'une expression à l'aide de la syntaxe CEL (Common Expression Language).

Le contexte d'application du message contenant l'expression détermine quel ensemble de caractéristiques connues de CEL est disponible.
bindings[].condition.title string Titre facultatif de l'expression qui correspond à une courte chaîne décrivant sa finalité. Il peut par exemple être utilisé dans les interfaces utilisateur qui permettent de saisir l'expression.
bindings[].condition.description string Description facultative de l'expression. Il s'agit d'un texte plus long décrivant l'expression (par exemple, lorsque l'utilisateur passe la souris sur celle-ci dans une interface utilisateur).
bindings[].condition.location string Chaîne facultative indiquant l'emplacement de l'expression pour la création de rapports d'erreurs (par exemple, un nom de fichier et une position dans le fichier).
rules[].logConfigs[].dataAccess nested object Options d'accès aux données.
rules[].logConfigs[].dataAccess.logMode string Indique si la journalisation Gin doit être effectuée de manière fail-closed auprès de l'appelant. Pour le moment, cela n'est pertinent que dans l'implémentation de LocalIAM.

REMARQUE: La journalisation dans Gin de manière fail-closed n'est actuellement pas prise en charge, car des efforts sont déployés pour répondre aux exigences de go/345. Actuellement, le paramètre LOG_FAIL_CLOSED n'a aucun effet, mais il existe toujours, car des efforts sont actuellement déployés pour le prendre en charge (b/115874152).
rules[].logConfigs[].cloudAudit nested object Options d'audit dans le cloud.
rules[].logConfigs[].cloudAudit.logName string Nom de journal à renseigner dans l'enregistrement d'audit Cloud.

rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Informations utilisées par le pipeline Cloud Audit Logging.
rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string Type de l'autorisation vérifiée.

Essayer

Utilisez l'explorateur d'API ci-dessous pour appeler cette méthode sur des données en direct, puis observez la réponse. Vous pouvez également essayer l'explorateur autonome.