Apigee Spaces の IAM 権限階層

このページは ApigeeApigee ハイブリッドに適用されます。

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-aproxy-bproxy-c)があるシナリオについて考えてみましょう。この例では、proxy-bproxy-c はそれぞれ space-redspace-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 階層
図 1: Spaces を使用する場合の API リソースの有効な IAM 権限階層

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/$APIapigee.deployments.list
organizations.apis.revisions.deployments.list organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.deployments.list
organizations.environments.deployments.list 変更なし
organizations.environments.deployments.get 変更なし
organizations.environments.apis.deployments.list organizations/$ORG/environments/$ENVapigee.deployments.list
または

organizations/$ORG/spaces/$SPACE/apis/$API

organizations.environments.apis.revisions.deployments.get organizations/$ORG/environments/$ENVapigee.deployments.get

または

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.deployments.get

organizations.environments.apis.revisions.deployments.deploy organizations/$ORG/environments/$ENVapigee.deployments.create

および

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.proxyrevisions.deploy

organizations.environments.apis.revisions.deployments.generateDeployChangeReport organizations/$ORG/environments/$ENVapigee.deployments.create

および

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.proxyrevisions.deploy

organizations.environments.apis.revisions.deployments.generateUndeployChangeReport organizations/$ORG/environments/$ENVapigee.deployments.delete

および

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.proxyrevisions.undeploy

organizations.environments.apis.revisions.deployments.undeploy organizations/$ORG/environments/$ENVapigee.deployments.delete

および

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.proxyrevisions.undeploy

organizations.environments.sharedflows.deployments.list organizations/$ORG/environments/$ENVapigee.deployments.list
または
organizations/$ORG/spaces/$SPACE/sharedflows/$SF
apigee.deployments.list
organizations.environments.sharedflows.revisions.deployments.deploy organizations/$ORG/environments/$ENVapigee.deployments.create

および

organizations/$ORG/spaces/$SPACE/sharedflow/$SF/revisions/$REVapigee.sharedflowrevisions.deploy

organizations.environments.sharedflows.revisions.deployments.get organizations/$ORG/environments/$ENVapigee.deployments.get

または

以下の apigee.deployments.get

organizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV

organizations.environments.sharedflows.revisions.deployments.undeploy organizations/$ORG/environments/$ENVapigee.deployments.delete

および

organizations/$ORG/spaces/$SPACE/sharedflow/$SF/revisions/$REVapigee.sharedflowrevisions.undeploy

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/$REVapigee.tracesessions.create

および

organizations/$ORG/environments/$ENV

organizations.environments.apis.revisions.debugsessions.get organizations/$ORG/environments/$ENV
および organizations/$ORG/spaces/$SPACE/apis/$APIapigee.tracesessions.get
organizations.environments.apis.revisions.debugsessions.deleteData organizations/$ORG/environments/$ENVapigee.tracesessions.delete
および

以下の apigee.tracesessions.delete

organizations/$ORG/spaces/$SPACE/apis/$API

organizations.environments.apis.revisions.debugsessions.list organizations/$ORG/environments/$ENVapigee.tracesessions.list

または

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.tracesessions.list

organizations.environments.apis.revisions.debugsessions.data.get organizations/$ORG/environments/$ENVapigee.tracesessions.get

および

organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REVapigee.tracesessions.get

organizations.environments.apis.revisions.debugsessions.data.list organizations/$ORG/environments/$ENVapigee.tracesessions.get

および

organizations/$ORG/spaces/$SPACE/apis/$APIapigee.tracesessions.get