このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示する。
このトピックでは、Apigee 組織内の Apigee Space 間で API リソース(API プロキシ、共有フロー、API プロダクト)を移動する方法について説明します。ユーザーは、組織レベルと Space レベルの間でリソースを移動したり、Space 間でリソースを移動したりできます。ユーザーが組織または Space 内の API リソースを移動、管理、表示するには、関連する組織または Space に対する適切な権限が必要です。
API リソースを組織から Space に移動する
Apigee 組織で作成された API リソースは、組織レベルから Space に(またはその逆に)移動できます。Space に移動された API リソースは、その Space の IAM ポリシーを継承します。ユーザーが API リソースを組織レベルから Space に移動するには、次の権限が必要です。
- ソーススコープ(リソースが現在存在する組織または Space)に対する
apigee.RESOURCE_TYPE.move
。RESOURCE_TYPE の有効な値は、移動する API リソースのタイプに応じて
proxies
、sharedflows
、またはapiproducts
となります。 - ターゲット スコープ(リソースの移動先の組織または Space)に対する
apigee.RESOURCE_TYPE.create
。RESOURCE_TYPE の有効な値は、移動する API リソースのタイプに応じて
proxies
、sharedflows
、またはapiproducts
となります。
組織レベルの API リソースを Space に移動するには、次のコマンドを使用します。
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
ここで
- ORG_NAME は Apigee 組織の名前です。
- RESOURCE_TYPE は、一覧表示するリソースの種類です。有効な値は次のとおりです。
apis
sharedflows
apiproducts
- RESOURCE_ID は、移動する API プロキシ、共有フロー、API プロダクトの名前です。
- SPACE_NAME は、リソースの移動先の Space の名前です。
たとえば、acme 組織の Apigee 組織管理者ロールを持つユーザーが、demo という名前の API プロキシを組織レベルから red Space に移動する場合は、次のコマンドを実行します。
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \ -X POST -H "Authorization: Bearer $TOKEN"
レスポンスは次のようになります。
{ "metaData": { "createdAt": "1739489725993", "lastModifiedAt": "1741724822852", "subType": "Proxy" }, "name": "demo", "revision": [ "1", "2" ], "apiProxyType": "PROGRAMMABLE", "space": "red" }
demo API プロキシが red Space に移動されると、red Space のメンバーは、組織レベルのリソースにアクセスする権限がなくても、プロキシにアクセスできるようになります。red Space のメンバーではない他の Space のメンバーは、demo プロキシを表示できず、アクセスすることもできません。
適切な組織レベルまたは Space レベルの権限を持たずに demo プロキシにアクセスしようとすると、次のエラーが発生します。
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
API リソースを Space から組織レベルに移動するには、次のコマンドを使用します。space
クエリ パラメータは省略します。
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \ -X POST -H "Authorization: Bearer $TOKEN"
ここで
- ORG_NAME は Apigee 組織の名前です。
- RESOURCE_TYPE は、一覧表示するリソースの種類です。有効な値は次のとおりです。
apis
sharedflows
apiproducts
- RESOURCE_ID は、移動する API プロキシ、共有フロー、API プロダクトの名前です。
API リソースを Space 間で移動する
API リソースは、Apigee 組織内の Space 間で移動できます。Space に移動された API リソースは、その Space の IAM ポリシーを継承します。ユーザーが Apigee 組織内の Space 間で API リソースを移動するには、次の権限が必要です。
- API リソースが現在存在する Space に対する
apigee.RESOURCE_TYPE.move
。RESOURCE_TYPE の有効な値は、移動する API リソースのタイプに応じて
proxies
、sharedflows
、またはapiproducts
となります。 - API リソースの移動先の Space に対する
apigee.RESOURCE_TYPE.create
。RESOURCE_TYPE の有効な値は、移動する API リソースのタイプに応じて
proxies
、sharedflows
、またはapiproducts
となります。
両方の Space で apigee.spaceContentEditor
ロールが割り当てられているユーザーには、必要な権限が付与されます。
Apigee 組織内の Space 間で API リソースを移動するには、次のコマンドを使用します。
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
ここで
- ORG_NAME は Apigee 組織の名前です。
- RESOURCE_TYPE は、一覧表示するリソースの種類です。有効な値は次のとおりです。
apis
sharedflows
apiproducts
- RESOURCE_ID は、移動する API プロキシ、共有フロー、API プロダクトの名前です。
- SPACE_NAME は、新しい Space の名前です。
たとえば、red Space に対する apigee.proxies.move
権限と blue Space に対する apigee.proxies.create
権限を持つユーザーは、次のコマンドを使用して demo API プロキシを red Space から blue Space に移動できます。
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \ -X POST -H "Authorization: Bearer $TOKEN"
レスポンスは次のようになります。
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "blue", "createTime": ..., "updateTime": ... }
この例では、ユーザーに組織レベルの権限は必要ありません。各 Space の setIamPolicy
バインディングで設定された権限のみが必要です。
両方の Space に対する適切な権限がない状態で demo API プロキシを移動しようとすると、次のエラーが発生します。
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }