このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する。
このページでは、Apigee Spaces を使用するときに、Identity and Access Management(IAM)の権限階層が Apigee API リソース(API プロキシ、共有フロー、API プロダクト)とその子にどのように適用されるかについて説明します。
IAM と Apigee Spaces の連携
一般に、リソースへのアクセスを管理する IAM ポリシーは、 Google Cloud リソース階層を介して継承されます。特定のリソースに適用される IAM ポリシーには、次の両方が含まれます。
- リソースに直接適用されているポリシー
- リソースが祖先から継承したポリシー
Apigee のリソースと権限の階層
Apigee では、リソース階層の最上位リソースは組織リソースです。組織の子リソースには、API プロキシ、共有フロー、API プロダクトなどがあります。Spaces を使用せずに Apigee を使用する場合、権限は Apigee 組織リソースに直接関連する Google Cloud プロジェクトに適用されます。そのため、特定の API プロキシ、共有フロー、API プロダクトへのアクセスを管理する IAM ポリシーには、特定のリソースに直接適用されているポリシーに加えて、組織から継承されたポリシーが含まれます。
Spaces を使用したリソースと権限の階層
Spaces で Apigee を使用すると、Space リソースが階層に追加されます。Apigee 組織に 3 つの API プロキシ(proxy-a
、proxy-b
、proxy-c
)があるシナリオについて考えてみましょう。この例では、proxy-b
と proxy-c
はそれぞれ space-red
と space-blue
に関連付けられています。API リソースを Space に関連付けると、space
属性がリソースに設定されます。
API 呼び出しを実行して proxy-c
の詳細を取得すると、API エンドポイントに実際のリソース階層が反映されます。次の例に示すように、API プロキシは Space 属性を持つ組織の子になります。
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" }
Space に関連付けられた API リソースへのパスは変わりませんが、有効な IAM 権限階層は変更されます。このシナリオの例では、IAM 権限チェックは、API リソースを Space の子として扱いします。そのため、API リソースに適用される IAM ポリシーには、Space に直接適用されているポリシーに加えて、Space から継承されたポリシーも含まれます(次の図を参照)。

Space リソースの IAM ポリシー チェック
前のセクションで説明したように、API プロキシ、共有フロー、API プロダクトが Space に関連付けられている場合、それらは IAM ポリシー チェック中に Space の子リソースとして扱われます。この有効なリソース階層は、API プロキシ、共有フロー、API プロダクトのすべての子の下位リソースに適用されます。
たとえば、API Product 属性は API プロダクトの子リソースです。Apigee Space space-blue
に関連付けられている Apigee 組織 org1
の API プロダクト product-a
の属性をすべて一覧表示する場合、実際のリソースパスは GET organizations/org1/apiproduct/product-a/attributes
です。ただし、IAM 権限がチェックされるパスは organizations/org1/spaces/space-blue/apiproduct/product-a/attributes
になります。
デプロイメントの IAM ポリシー チェック
Environment リソースは Space に関連付けられていません。ただし、一部の既存の API は更新され、API プロキシと共有フローのデプロイとデバッグ セッションへのきめ細かいアクセス制御が可能になっています。
Space 内のリソースに対する次のデプロイ オペレーションの IAM 権限チェックは、以下のように変更されています。
メソッド | Space IAM 権限チェック |
---|---|
organizations.deployments.list | 変更なし |
organizations.apis.deployments.list | organizations/$ORG/spaces/$SPACE/apis/$API の apigee.deployments.list
|
organizations.apis.revisions.deployments.list | organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV の apigee.deployments.list |
organizations.environments.deployments.list | 変更なし |
organizations.environments.deployments.get | 変更なし |
organizations.environments.apis.deployments.list | organizations/$ORG/environments/$ENV の apigee.deployments.listまたは
|
organizations.environments.apis.revisions.deployments.get | organizations/$ORG/environments/$ENV の apigee.deployments.get
または
|
organizations.environments.apis.revisions.deployments.deploy | organizations/$ORG/environments/$ENV の apigee.deployments.create
および
|
organizations.environments.apis.revisions.deployments.generateDeployChangeReport | organizations/$ORG/environments/$ENV の apigee.deployments.create
および
|
organizations.environments.apis.revisions.deployments.generateUndeployChangeReport | organizations/$ORG/environments/$ENV の apigee.deployments.delete
および
|
organizations.environments.apis.revisions.deployments.undeploy | organizations/$ORG/environments/$ENV の apigee.deployments.delete
および
|
organizations.environments.sharedflows.deployments.list | organizations/$ORG/environments/$ENV の apigee.deployments.listまたは organizations/$ORG/spaces/$SPACE/sharedflows/$SF のapigee.deployments.list |
organizations.environments.sharedflows.revisions.deployments.deploy | organizations/$ORG/environments/$ENV の apigee.deployments.create
および
|
organizations.environments.sharedflows.revisions.deployments.get | organizations/$ORG/environments/$ENV の apigee.deployments.get
または 以下の apigee.deployments.get
|
organizations.environments.sharedflows.revisions.deployments.undeploy | organizations/$ORG/environments/$ENV の apigee.deployments.delete
および
|
organizations.sharedflows.deployments.list | organizations/$ORG/spaces/$SPACE/sharedflows/$SF のapigee.deployments.list |
organizations.sharedflows.revisions.deployments.list | organizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV のapigee.deployments.list |
デバッグ セッションの権限チェック
API プロキシが Space に関連付けられている場合、プロキシのデバッグ セッションの IAM 権限チェックは次の表に示すように変更されています。
メソッド | Space IAM 権限チェック |
---|---|
organizations.environments.apis.revisions.debugsessions.create | organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV の apigee.tracesessions.create
および
|
organizations.environments.apis.revisions.debugsessions.get | organizations/$ORG/environments/$ENV および organizations/$ORG/spaces/$SPACE/apis/$API の apigee.tracesessions.get
|
organizations.environments.apis.revisions.debugsessions.deleteData | organizations/$ORG/environments/$ENV の apigee.tracesessions.deleteおよび 以下の apigee.tracesessions.delete
|
organizations.environments.apis.revisions.debugsessions.list | organizations/$ORG/environments/$ENV の apigee.tracesessions.list
または
|
organizations.environments.apis.revisions.debugsessions.data.get | organizations/$ORG/environments/$ENV の apigee.tracesessions.get
および
|
organizations.environments.apis.revisions.debugsessions.data.list | organizations/$ORG/environments/$ENV の apigee.tracesessions.get
および
|