ResourceInfo

Contient des informations sur les ressources IAM.

Représentation JSON
{
  "policyType": string,
  "policyName": string,
  "policyRegion": string,
  "resourceContainer": string,
  "resource": {
    object (Resource)
  },
  "monitoredResource": {
    object (MonitoredResource)
  },
  "permissions": [
    string
  ],
  "nextExpectedResourceState": {
    "@type": string,
    field1: ...,
    ...
  },
  "federatedResourceHierarchy": {
    object (FederatedResourceHierarchy)
  },
  "targetResourceLocations": [
    string
  ]
}
Champs
policyType

string

FACULTATIF : type de règle de la ressource. Les valeurs valides pour policyType peuvent être "compute_instances", "storage_buckets", "resourcemanager_projects", etc.

policyName

string

FACULTATIF : nom de la règle de la ressource. Les valeurs valides pour policyName peuvent être "/myproject/myinstance", "/myproject/mybucket", "/myproject", etc.

policyRegion

string

FACULTATIF : emplacement de la règle.

resourceContainer

string

FACULTATIF : nom du conteneur de ressources. Il peut s'agir de l'un des formats suivants : "projects/", "folders/" ou "organizations/".

resource

object (Resource)

FACULTATIF : Attributs principaux d'une ressource.

monitoredResource

object (MonitoredResource)

FACULTATIF : ressource surveillée pour l'audit cloud.

permissions[]

string

FACULTATIF : liste des noms d'autorisations IAM à vérifier, au format {serviceName}/{plural}.{verb} ou au format hérité {serviceName}.{plural}.{verb}.

  • {serviceName} fait référence au service propriétaire de la ressource.
  • {plural} fait référence au champ plural de cette ressource. Elle doit être en lower camel case.

Exemple : ["library.googleapis.com/shelves.get", "library.googleapis.com/shelves.update", "library.shelves.get", "library.shelves.update"]

nextExpectedResourceState

object

Facultatif. Vue attendue de la ressource après l'exécution d'une mutation.

Exemple : un CreateBookRequest peut se présenter comme suit : { parent: "projects/project-123" book { author: "Someone Famous" title: "This is a Title" read: false } book_id: "book-123" }

nextExpectedResourceState peut être : { name: "projects/project-123/books/book-123" author: "Someone Famous" title: "This is a Title" }

Objet contenant des champs d'un type arbitraire. Un champ supplémentaire "@type" contient un URI identifiant le type. Exemple : { "id": 1234, "@type": "types.example.com/standard/id" }.

federatedResourceHierarchy

object (FederatedResourceHierarchy)

FACULTATIF : Hiérarchie des ressources fédérées pour la fédération de stratégies IAM.

targetResourceLocations[]

string

FACULTATIF : Emplacements de la ressource cible. Le propriétaire de l'opération peut spécifier les emplacements cibles sous la forme d'un tableau dédupliqué de noms de régions Google Cloud ou ["global"]. Remarque : Les noms multirégionaux ne sont pas acceptés.

Ressource

Ce message définit les attributs de base d'une ressource. Une ressource est une entité adressable (nommée) fournie par le service de destination. Par exemple, un fichier stocké sur un service de stockage réseau.

Représentation JSON
{
  "service": string,
  "name": string,
  "type": string,
  "labels": {
    string: string,
    ...
  },
  "uid": string,
  "annotations": {
    string: string,
    ...
  },
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "etag": string,
  "location": string
}
Champs
service

string

Nom du service auquel appartient cette ressource, par exemple pubsub.googleapis.com. Le service peut être différent du nom d'hôte DNS qui traite réellement la requête.

name

string

Identifiant stable (nom) d'une ressource sur service. Une ressource peut être identifiée de manière logique comme "//{resource.service}/{resource.name}". Voici les différences entre un nom de ressource et un URI :

  • Le nom de ressource est un identifiant logique, indépendant du protocole réseau et de la version de l'API. Par exemple, //pubsub.googleapis.com/projects/123/topics/news-feed.
  • L'URI inclut souvent des informations sur le protocole et la version, ce qui permet aux applications de l'utiliser directement. Par exemple, https://pubsub.googleapis.com/v1/projects/123/topics/news-feed.

Pour en savoir plus, consultez https://cloud.google.com/apis/design/resource_names.

type

string

Type de ressource. La syntaxe est spécifique à la plate-forme, car les différentes plates-formes définissent leurs ressources différemment.

Pour les API Google, le format du type doit être "{service}/{kind}", par exemple "pubsub.googleapis.com/Topic".

labels

map (key: string, value: string)

Libellés ou tags de la ressource, tels que les tags de ressources AWS et les libellés de ressources Kubernetes.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

uid

string

Identifiant unique de la ressource. L'UID est unique dans le temps et l'espace pour cette ressource dans le cadre du service. Il est habituellement généré par le serveur lors de la création réussie d'une ressource et ne doit pas être modifié. L'UID permet d'identifier de manière unique les ressources avec réutilisation du nom. Il doit être un UUID4.

annotations

map (key: string, value: string)

Les annotations sont un mappage clé-valeur non structuré stocké avec une ressource. Elles peuvent être définies par des outils externes pour stocker et récupérer des métadonnées arbitraires. Elles ne peuvent pas faire l'objet de requêtes et doivent être conservées lors de la modification d'objets.

Pour en savoir plus, consultez https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

displayName

string

Non immuable. Nom à afficher défini par les clients. Ne doit pas dépasser 63 caractères.

createTime

string (Timestamp format)

Uniquement en sortie. Code temporel de la création de la ressource. Il peut s'agir de la date à laquelle la création a été lancée ou de celle à laquelle elle a été terminée.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Uniquement en sortie. Code temporel de la dernière mise à jour de la ressource. Toute modification de la ressource par les utilisateurs doit actualiser cette valeur. Les modifications d'une ressource par le service doivent actualiser cette valeur.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

deleteTime

string (Timestamp format)

Uniquement en sortie. Code temporel de la suppression de la ressource. Si la ressource n'est pas supprimée, ce champ doit être vide.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

etag

string

Uniquement en sortie. Valeur opaque qui identifie de manière unique la version ou la génération d'une ressource. Cet identifiant permet de confirmer que le client et le serveur sont d'accord sur l'ordre d'écriture d'une ressource.

location

string

Immuable. Emplacement de la ressource. Le codage de l'emplacement est propre au fournisseur de services, et un nouveau codage peut être introduit à mesure que le service évolue.

Pour les produits Google Cloud, l'encodage est celui utilisé par les API Google Cloud, telles que us-east1, aws-us-east-1 et azure-eastus2. La sémantique de location est identique à l'étiquette cloud.googleapis.com/location utilisée par certaines API Google Cloud.

FederatedResourceHierarchy

Représentation JSON
{
  "version": integer,
  "federatedHierarchy": [
    {
      object (FederatedResource)
    }
  ],
  "nonFederatedParent": {
    object (PolicyName)
  }
}
Champs
version

integer

Spécifie le format de cette hiérarchie fédérée. Les valeurs valides sont 0 ou 1. Les requêtes spécifiant une valeur non valide sont rejetées.

Ce champ indique les attributs fédérés dont le client a connaissance. Tous les attributs dont le client a connaissance doivent avoir une valeur non définie par défaut. Tous les attributs dont le client n'a pas connaissance sont considérés comme NOT_FEDERATED. Pour une version donnée, le client doit connaître tous les attributs de cette version et des versions antérieures.

             +----------+----------------------+
             | Version  | Supported Attributes |
             +----------+----------------------+
             | 0        | grant policies, tags |
             +----------+----------------------+
             | 1        | grant policies, tags |
             +----------+----------------------+

Remarque : Il n'y a aucune différence entre les versions 0 et 1. Préférez utiliser 1.

federatedHierarchy[]

object (FederatedResource)

Dans l'ordre, en commençant par le nœud feuille, les attributs des ressources de cette requête qui contiennent des informations fédérées. Le nom de la règle du nom du nœud feuille doit correspondre au nom de règle de base de la ressource dans la requête (CheckPolicyRequest.name, BulkCheckPolicyRequest.requests.name, etc.). Cette liste peut comporter au maximum 15 entrées.

nonFederatedParent

object (PolicyName)

Nom de la règle de la ressource ancêtre la plus proche qui possède des attributs et une règle stockés de manière centralisée.

FederatedResource

Représentation JSON
{
  "policyName": {
    object (PolicyName)
  },
  "resourceName": string,

  // Union field grant_policy can be only one of the following:
  "grantPolicyStatus": enum (FederatedAttributeStatus),
  "federatedGrantPolicy": {
    object (FederatedGrantPolicy)
  }
  // End of list of possible types for union field grant_policy.

  // Union field tags can be only one of the following:
  "tagsStatus": enum (FederatedAttributeStatus),
  "federatedTags": {
    object (FederatedTags)
  }
  // End of list of possible types for union field tags.
}
Champs
policyName

object (PolicyName)

resourceName

string

Nom de ressource relatif, sans le préfixe / (par exemple, "projects/project-id"). Consultez https://cloud.google.com/apis/design/resource_names#relative_resource_name.

Ce champ est utilisé pour les limites d'accès aux identifiants (CAB) afin de faire correspondre la valeur "availableResource" de la règle CAB. Consultez https://cloud.google.com/iam/docs/downscoping-short-lived-credentials.

Champ d'union grant_policy.

grant_policy ne peut être qu'un des éléments suivants :

grantPolicyStatus

enum (FederatedAttributeStatus)

federatedGrantPolicy

object (FederatedGrantPolicy)

Champ d'union tags.

tags ne peut être qu'un des éléments suivants :

tagsStatus

enum (FederatedAttributeStatus)

federatedTags

object (FederatedTags)

PolicyName

Nom interne d'une stratégie IAM, basé sur la ressource à laquelle la stratégie s'applique. À ne pas confondre avec le nom complet externe d'une ressource. Pour en savoir plus sur cette distinction,

Représentation JSON
{
  "type": string,
  "id": string,
  "region": string
}
Champs
type

string

Type de ressource. Les types sont définis dans les fichiers .service d'IAM. Les valeurs valides pour le type peuvent être "storage_buckets", "compute_instances", "resourcemanager_customers", "billing_accounts", etc.

id

string

Identifie une instance du type. Le format de l'ID varie selon le type. Le format de l'ID est défini dans le fichier .service IAM qui définit le type, soit dans path_mapping, soit dans un commentaire.

region

string

Pour Cloud IAM : emplacement de la stratégie. Doit être vide ou "global" pour les stratégies appartenant à IAM mondial. Vous devez nommer une région à partir de prodspec/cloud-iam-cloudspec pour les règles IAM régionales.

Pour Local IAM : ce champ doit être défini sur "local".

FederatedGrantPolicy

Règle d'autorisation fédérée fournie par l'appelant. Ces valeurs seront utilisées à la place des règles stockées lors de l'évaluation CheckPolicy. La taille est garantie à 257 Kio maximum. Pour augmenter cette limite, les services intégrés à la fédération IAM doivent l'examiner.

Représentation JSON
{
  "version": integer,
  "policyData": {
    "@type": string,
    field1: ...,
    ...
  },
  "visibleReferences": {
    object (VisibleReferences)
  },
  "sha256": string
}
Champs
version

integer

Version du schéma de cet objet de stratégie. Toute modification incompatible apportée au schéma de la règle fédérée entraînera l'incrémentation du numéro de version. Les numéros de version valides sont les suivants : 1 : version initiale Toute autre valeur entraînera une erreur d'argument non valide.

policyData

object

Données spécifiques à IAM stockant le contenu de la stratégie. Les équipes fédérées ne doivent pas faire d'hypothèses sur le contenu ou la taille des données de la stratégie sans l'approbation d'IAM. Les données de la stratégie ne doivent pas être lues ni modifiées en dehors du code appartenant à IAM.

Objet contenant des champs d'un type arbitraire. Un champ supplémentaire "@type" contient un URI identifiant le type. Exemple : { "id": 1234, "@type": "types.example.com/standard/id" }.

visibleReferences

object (VisibleReferences)

sha256

string (bytes format)

Hachage des données de règle pour la mise en cache. La même règle appliquée à différentes ressources doit avoir le même hachage.

Chaîne encodée en base64.

VisibleReferences

Les comptes principaux ou autres entités référencés dans la stratégie. Si l'une de ces entités est supprimée, la stratégie doit être envoyée à IAM pour être nettoyée. Les entrées de chaque champ ne sont pas répétées, mais peuvent ne pas être triées.

Représentation JSON
{
  "gaiaIds": [
    string
  ],
  "customRoles": [
    string
  ],
  "cpis": [
    string
  ],
  "projectNumbers": [
    string
  ]
}
Champs
gaiaIds[]

string (int64 format)

customRoles[]

string

Nom du rôle personnalisé tel qu'il est utilisé dans la règle. Par exemple : organizations/1234/roles/myRole.

cpis[]

string

projectNumbers[]

string (int64 format)

Numéro de projet de projectOwner, projectEditor et projectViewer

FederatedTags

Wrapper pour une carte de paires clé/valeur de tag, car les cartes ne peuvent pas être un champ dans un "oneof". Pas encore compatible avec l'utilisation des services Google Cloud.

Représentation JSON
{
  "tags": {
    string: string,
    ...
  }
}
Champs
tags

map (key: string, value: string)

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.