Package google.iam.v1

Index

IAMPolicy

Présentation des API

Gère les stratégies de gestion de l'authentification et des accès (IAM).

Toute mise en œuvre d'une API offrant des fonctionnalités de contrôle d'accès emploie l'interface google.iam.v1.IAMPolicy.

Modèle de données

Le contrôle d'accès est appliqué lorsqu'un principal (utilisateur ou compte de service) effectue une action sur une ressource exposée par un service. Les ressources, identifiées par des noms de type URI, constituent l'unité de spécification du contrôle d'accès. Les mises en œuvre de service permettent de choisir la précision du contrôle d'accès ainsi que les autorisations acceptées pour leurs ressources. Par exemple, un service de base de données peut autoriser la spécification du contrôle d'accès seulement au niveau de la table, tandis qu'un autre peut l'autoriser également au niveau de la colonne.

Structure de la stratégie

Voir google.iam.v1.Policy

De manière intentionnelle, il ne s'agit pas d'une API de type CRUD, car les stratégies de contrôle d'accès sont créées et supprimées de manière implicite avec les ressources auxquelles elles sont associées.

GetIamPolicy

rpc GetIamPolicy ( GetIamPolicyRequest ) renvoie ( Policy )

Récupère la stratégie de contrôle d'accès d'une ressource. Renvoie une stratégie vide si la ressource existe, mais qu'elle ne dispose d'aucune stratégie.

Champs d'application des autorisations

Requiert le champ d'application OAuth suivant :

  • https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus, consultez la section Présentation de l'authentification.

SetIamPolicy

rpc SetIamPolicy ( SetIamPolicyRequest ) renvoie ( Policy )

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

Champs d'application des autorisations

Requiert le champ d'application OAuth suivant :

  • https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus, consultez la section Présentation de l'authentification.

TestIamPermissions

rpc TestIamPermissions ( TestIamPermissionsRequest ) renvoie ( TestIamPermissionsResponse )

Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. Si la ressource n'existe pas, renvoie un ensemble vide d'autorisations. Ne renvoie pas l'erreur NOT_FOUND.

Remarque : Cette opération a été conçue pour créer des interfaces utilisateur et des outils de ligne de commande qui tiennent compte des autorisations, et non pour vérifier des autorisations. Elle peut entraîner un phénomène de "fail open" (configuration ouverte) sans avertissement préalable.

Champs d'application des autorisations

Requiert le champ d'application OAuth suivant :

  • https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus, consultez la section Présentation de l'authentification.

AuditConfig

Spécifie la configuration d'audit d'un service. La configuration détermine les types d'autorisations consignés et les identités, le cas échéant, qui sont exclues de la journalisation. Une AuditConfig doit avoir une ou plusieurs AuditLogConfigs.

Si des AuditConfigs existent pour allServices et pour un service spécifique, l'union des deux AuditConfigs est utilisée pour ce service : les log_types spécifiés dans chaque AuditConfig sont activés, et les exempted_members de chaque AuditLogConfig sont exclus.

Exemple de stratégie avec plusieurs AuditConfigs :

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:foo@gmail.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:bar@gmail.com"
          ]
        }
      ]
    }
  ]
}

Pour fooservice, cette stratégie active la journalisation DATA_READ, DATA_WRITE et ADMIN_READ. Elle exclut également foo@gmail.com de la journalisation DATA_READ, et bar@gmail.com de la journalisation DATA_WRITE.

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

audit_log_configs[]

AuditLogConfig

Configuration de la journalisation de chaque type d'autorisation.

AuditLogConfig

Permet la configuration de la journalisation d'un type d'autorisation. Exemple :

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:foo@gmail.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Ce code active la journalisation DATA_READ et DATA_WRITE, tout en excluant foo@gmail.com de la journalisation DATA_READ.

Champs
log_type

LogType

Type de journal que cette configuration active.

exempted_members[]

string

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.

LogType

Liste des types d'autorisations valides pour lesquels la journalisation peut être configurée. Les écritures des administrateurs sont systématiquement consignées. Cela ne peut pas être modifié.

Enums
LOG_TYPE_UNSPECIFIED Cas par défaut. Ce type ne devrait jamais être utilisé.
ADMIN_READ L'administrateur lit des données. Exemple : CloudIAM getIamPolicy
DATA_WRITE Des données sont écrites. Exemple : CloudSQL Users create
DATA_READ Des données sont lues. Exemple : CloudSQL Users list

Binding

Associe des members à un role.

Champs
role

string

Rôle attribué aux members. Par exemple, roles/viewer, roles/editor ou roles/owner.

members[]

string

Spécifie les identités demandant l'accès à une ressource Cloud Platform. Les members peuvent 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 qui représente un compte de service. Par exemple, my-other-app@appspot.gserviceaccount.com.

  • group:{emailid} : adresse e-mail qui représente un groupe Google. Par exemple, admins@example.com.

  • domain:{domain} : nom de domaine des applications Google qui représente tous les utilisateurs de ce domaine. Par exemple, google.com ou example.com.

condition

Expr

Non mis en œuvre. 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.

GetIamPolicyRequest

Message de requête pour la méthode GetIamPolicy.

Champs
resource

string

OBLIGATOIRE : Ressource pour laquelle la stratégie est demandée. Consultez la documentation de l'opération pour connaître la valeur appropriée pour ce champ.

Policy

Définit une stratégie de gestion de l'authentification et des accès (IAM, Identity and Access Management). Elle permet de spécifier les stratégies de contrôle des accès aux ressources Cloud Platform.

Une Policy consiste en une liste de bindings. Une liaison binding associe une liste de membres members à un rôle role, où les membres peuvent être des comptes utilisateur, des groupes Google, des domaines Google et des comptes de service. Un role est une liste nommée d'autorisations définies par IAM.

Exemple JSON

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

Exemple YAML

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

Pour obtenir une description d'IAM et de ses fonctionnalités, consultez le guide du développeur d'IAM.

Champs
version
(deprecated)

int32

Obsolète.

bindings[]

Binding

Associe une liste de members à un role. Si bindings ne contient pas de membres, une erreur se produira.

audit_configs[]

AuditConfig

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

etag

bytes

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. Afin d'éviter les situations de concurrence, il est fortement suggéré que les systèmes utilisent etag dans le cycle lecture-modification-écriture pour effectuer des mises à jour de stratégies : un etag est renvoyé dans la réponse à getIamPolicy, et les systèmes doivent mettre cet élément dans la requête destinée à setIamPolicy de sorte à 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 à l'aveugle.

SetIamPolicyRequest

Message de requête pour la méthode SetIamPolicy.

Champs
resource

string

OBLIGATOIRE : Ressource pour laquelle la stratégie est spécifiée. Consultez la documentation de l'opération pour connaître la valeur appropriée pour ce champ.

policy

Policy

OBLIGATOIRE : Stratégie complète à appliquer au paramètre resource. La taille de la stratégie est limitée à quelques dizaines de Ko. Une stratégie vide est une stratégie valide, mais certains services Cloud Platform (tels que les projets) peuvent la rejeter.

update_mask

FieldMask

FACULTATIF : Chemin FieldMask spécifiant les champs de la stratégie à modifier. Seuls les champs du masque seront modifiés. Si aucun masque n'est fourni, le masque suivant est utilisé par défaut : paths: "bindings, etag". Ce champ n'est utilisé que par Cloud IAM.

TestIamPermissionsRequest

Message de requête pour la méthode TestIamPermissions.

Champs
resource

string

OBLIGATOIRE : Ressource pour laquelle vous demandez les détails de la stratégie. Consultez la documentation de l'opération pour connaître la valeur appropriée pour ce champ.

permissions[]

string

Ensemble des autorisations à vérifier pour la resource. Les autorisations comportant des caractères génériques (comme "*" ou "storage.*") ne sont pas acceptées. Pour en savoir plus, consultez la page de présentation d'IAM.

TestIamPermissionsResponse

Message de réponse à la méthode TestIamPermissions.

Champs
permissions[]

string

Sous-ensemble des autorisations TestPermissionsRequest.permissions dont dispose l'appelant.