Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d'
Apigee Edge.
Cette page décrit comment les hiérarchies d'autorisations Identity and Access Management (IAM) sont appliquées aux ressources d'API Apigee (proxys d'API, flux partagés et produits d'API) et à leurs enfants lorsque vous utilisez Apigee Spaces.
Interaction d'IAM avec Apigee Spaces
En général, les stratégies IAM régissant l'accès aux ressources sont héritées via la hiérarchie des ressources Google Cloud . Les stratégies IAM spécifiques qui s'appliquent à une ressource donnée incluent les éléments suivants :
- Toutes les règles directement appliquées à la ressource
- Toutes les règles que la ressource hérite de ses ancêtres
Hiérarchie des ressources et des autorisations dans Apigee
Dans Apigee, le sommet de la hiérarchie des ressources est la ressource organization. Les ressources enfants d'une organisation incluent les proxys d'API, les flux partagés et les produits d'API. Lorsque vous utilisez Apigee sans Spaces, les autorisations sont appliquées au projet Google Cloud , qui correspond directement à la ressource d'organisation Apigee. Par conséquent, les règles IAM régissant l'accès à un proxy d'API, un flux partagé ou un produit d'API donnés incluent toutes les règles héritées de l'organisation, en plus de celles directement appliquées à la ressource spécifique.
Hiérarchie des ressources et des autorisations avec les espaces
Lorsque vous utilisez Apigee avec Spaces, la ressource "Space" est ajoutée à la hiérarchie.
Prenons l'exemple d'une organisation Apigee comportant trois proxys d'API : proxy-a
, proxy-b
et proxy-c
.
Dans cet exemple, proxy-b
et proxy-c
sont respectivement associés à space-red
et space-blue
. Lorsque vous associez une ressource d'API à un espace, l'attribut space
est défini sur la ressource.
Lorsque vous effectuez un appel d'API pour obtenir les détails de proxy-c
, votre point de terminaison d'API reflète la hiérarchie des ressources réelles, où le proxy d'API est un enfant de l'organisation avec un attribut "Space", comme illustré dans l'exemple suivant :
curl -X GET -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/org1/apis/proxy-c" { "metaData": { "createdAt": "1725665197737", "lastModifiedAt": "1725665462105", "subType": "Proxy" }, "name": "proxy-c", "revision": [ "1" ], "apiProxyType": "PROGRAMMABLE", "space": "space-blue" }
Bien que le chemin d'accès à une ressource d'API associée à un espace reste le même, la hiérarchie des autorisations IAM effectives change. Dans notre scénario d'exemple, les vérifications des autorisations IAM se comportent comme si la ressource d'API était un enfant de l'espace. Par conséquent, les stratégies IAM qui s'appliquent à la ressource API incluent celles héritées de l'espace, en plus de celles directement appliquées à l'espace, comme illustré dans la figure suivante :

Vérifications des stratégies IAM pour les ressources Space
Comme indiqué dans une section précédente, lorsque des proxys d'API, des flux partagés et des produits d'API sont associés à un espace, ils sont traités comme des ressources enfants de l'espace lors des vérifications des règles IAM. Cette hiérarchie de ressources effective s'applique à tous les sous-enfants des proxys d'API, des flux partagés et des produits d'API.
Par exemple, les attributs de produit d'API sont des ressources enfants d'un produit d'API. Pour lister tous les attributs du produit d'API product-a
dans l'organisation Apigee org1
, qui est associée à l'espace Apigee space-blue
, le chemin d'accès à la ressource est GET organizations/org1/apiproduct/product-a/attributes
. Toutefois, le chemin d'accès pour lequel les autorisations IAM sont vérifiées est organizations/org1/spaces/space-blue/apiproduct/product-a/attributes
.
Vérifications des stratégies IAM pour les déploiements
La ressource Environment n'est pas associée aux espaces. Toutefois, certaines API existantes ont été mises à jour pour permettre un accès précis aux déploiements et aux sessions de débogage pour les proxys d'API et les flux partagés.
Les modifications apportées aux vérifications des autorisations IAM pour les opérations de déploiement suivantes sur les ressources d'un espace sont décrites ci-dessous :
Méthode | Vérification des autorisations IAM pour les espaces |
---|---|
organizations.deployments.list | Aucune modification |
organizations.apis.deployments.list | apigee.deployments.list sur organizations/$ORG/spaces/$SPACE/apis/$API
|
organizations.apis.revisions.deployments.list | apigee.deployments.list sur organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
|
organizations.environments.deployments.list | Aucune modification |
organizations.environments.deployments.get | Aucune modification |
organizations.environments.apis.deployments.list | apigee.deployments.list sur organizations/$ORG/environments/$ENV OU
|
organizations.environments.apis.revisions.deployments.get | apigee.deployments.get sur organizations/$ORG/environments/$ENV
OR
apigee.deployments.get sur |
organizations.environments.apis.revisions.deployments.deploy | apigee.deployments.create sur organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy sur |
organizations.environments.apis.revisions.deployments.generateDeployChangeReport | apigee.deployments.create sur organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy sur |
organizations.environments.apis.revisions.deployments.generateUndeployChangeReport | apigee.deployments.delete sur organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy sur |
organizations.environments.apis.revisions.deployments.undeploy | apigee.deployments.delete sur organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy sur |
organizations.environments.sharedflows.deployments.list | apigee.deployments.list sur organizations/$ORG/environments/$ENV OU apigee.deployments.list sur organizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
organizations.environments.sharedflows.revisions.deployments.deploy | apigee.deployments.create sur organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.deploy sur |
organizations.environments.sharedflows.revisions.deployments.get | apigee.deployments.get sur organizations/$ORG/environments/$ENV
OU apigee.deployments.get sur
|
organizations.environments.sharedflows.revisions.deployments.undeploy | apigee.deployments.delete sur organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.undeploy sur |
organizations.sharedflows.deployments.list | apigee.deployments.list surorganizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
organizations.sharedflows.revisions.deployments.list | apigee.deployments.list surorganizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV
|
Vérification des autorisations pour les sessions de débogage
Si un proxy d'API est associé à un espace, les vérifications des autorisations IAM pour les sessions de débogage du proxy ont changé, comme décrit dans le tableau suivant :
Méthode | Vérification des autorisations IAM pour les espaces |
---|---|
organizations.environments.apis.revisions.debugsessions.create | apigee.tracesessions.create sur organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
AND
|
organizations.environments.apis.revisions.debugsessions.get | apigee.tracesessions.get sur organizations/$ORG/environments/$ENV AND organizations/$ORG/spaces/$SPACE/apis/$API
|
organizations.environments.apis.revisions.debugsessions.deleteData | apigee.tracesessions.delete sur organizations/$ORG/environments/$ENV ET apigee.tracesessions.delete sur
|
organizations.environments.apis.revisions.debugsessions.list | apigee.tracesessions.list sur organizations/$ORG/environments/$ENV
OR
apigee.tracesessions.list sur |
organizations.environments.apis.revisions.debugsessions.data.get | apigee.tracesessions.get sur organizations/$ORG/environments/$ENV
AND
apigee.tracesessions.get sur |
organizations.environments.apis.revisions.debugsessions.data.list | apigee.tracesessions.get sur organizations/$ORG/environments/$ENV
ET
apigee.tracesessions.get sur |