API-Ressourcen in Apigee Spaces verschieben

Apigee Edge-Dokumentation aufrufen

In diesem Thema wird beschrieben, wie Sie API-Ressourcen (API-Proxys, freigegebene Abläufe und API-Produkte) zwischen Apigee Spaces in einer Apigee-Organisation verschieben. Nutzer können Ressourcen zwischen Organisations- und Space-Ebene oder zwischen Spaces verschieben. Um API-Ressourcen in einer Organisation oder einem Space zu verschieben, zu verwalten oder aufzurufen, muss der Nutzer die entsprechenden Berechtigungen für die entsprechende Organisation oder den entsprechenden Space haben.

API-Ressourcen von einer Organisation in einen Space verschieben

In einer Apigee-Organisation erstellte API-Ressourcen können von der Organisationsebene in einen Space oder umgekehrt verschoben werden. Eine API-Ressource, die in einen Space verschoben wird, übernimmt die IAM-Richtlinie von diesem Space. Damit der Nutzer die API-Ressource von der Organisationsebene in einen Space verschieben kann, benötigt er die folgenden Berechtigungen:

  • apigee.RESOURCE_TYPE.move für den Quellbereich (die Organisation oder den Space, in dem sich die Ressource derzeit befindet)

    Zulässige Werte für RESOURCE_TYPE sind proxies, sharedflows oder apiproducts, je nach Art der zu verschiebenden API-Ressource.

  • apigee.RESOURCE_TYPE.create für den Zielbereich (die Organisation oder den Space, in den die Ressource verschoben werden soll)

    Zulässige Werte für RESOURCE_TYPE sind proxies, sharedflows oder apiproducts, je nach Art der zu verschiebenden API-Ressource.

Verwenden Sie den folgenden Befehl, um eine API-Ressource auf Organisationsebene in einen Space zu verschieben:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \
  -X POST -H "Authorization: Bearer $TOKEN"

Wobei:

  • ORG_NAME ist der Name Ihrer Apigee-Organisation.
  • RESOURCE_TYPE ist der Typ der Ressource, die Sie auflisten. Gültige Werte sind:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID ist der Name des API-Proxys, des freigegebenen Ablaufs oder des API-Produkts, das Sie verschieben möchten.
  • SPACE_NAME ist der Name des Space, in den Sie die Ressource verschieben.

Mit dem folgenden Befehl verschiebt ein Nutzer mit der Rolle Apigee Organization Admin für die Organisation acme beispielsweise einen API-Proxy mit dem Namen demo von der Organisationsebene in den Space rot:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \
  -X POST -H "Authorization: Bearer $TOKEN"

Die Antwort sollte in etwa so aussehen:

{
  "basepaths": ["/demo"],
  "revision": 1,
  "apiProxyId": "demo",
  "space_id": "red", 
  "createTime": ...,
  "updateTime": ...
}

Sobald der API-Proxy demo in den Space rot verschoben wurde, können Mitglieder des Spaces rot auf den Proxy zugreifen, auch wenn sie keine Berechtigung zum Zugriff auf Ressourcen auf Organisationsebene haben. Mitglieder anderer Spaces, die nicht zum roten Space gehören, können den Proxy demo nicht aufrufen oder ansehen.

Wenn Sie versuchen, ohne die richtigen Berechtigungen auf Organisations- oder Space-Eebene auf den Demo-Proxy zuzugreifen, wird der folgende Fehler ausgegeben:

  {
    "error": {
      "code": 403,
      "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).",
      "status": "PERMISSION_DENIED"
    }
  }

Verwenden Sie den folgenden Befehl, um eine API-Ressource von einem Space auf die Organisationsebene zu verschieben. Dabei wird der Abfrageparameter space weggelassen:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \
  -X POST -H "Authorization: Bearer $TOKEN"

Wobei:

  • ORG_NAME ist der Name Ihrer Apigee-Organisation.
  • RESOURCE_TYPE ist der Typ der Ressource, die Sie auflisten. Gültige Werte sind:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID ist der Name des API-Proxys, des freigegebenen Ablaufs oder des API-Produkts, das Sie verschieben möchten.

API-Ressourcen zwischen Spaces verschieben

API-Ressourcen können innerhalb einer Apigee-Organisation zwischen Spaces verschoben werden. Eine API-Ressource, die in einen Space verschoben wird, übernimmt die IAM-Richtlinie von diesem Space. Damit der Nutzer die API-Ressource zwischen Spaces in einer Apigee-Organisation verschieben kann, benötigt er die folgenden Berechtigungen:

  • apigee.RESOURCE_TYPE.move für den Space, in dem sich die API-Ressource derzeit befindet.

    Zulässige Werte für RESOURCE_TYPE sind proxies, sharedflows oder apiproducts, je nach Art der zu verschiebenden API-Ressource.

  • apigee.RESOURCE_TYPE.create für den Space, in den die API-Ressource verschoben werden soll.

    Zulässige Werte für RESOURCE_TYPE sind proxies, sharedflows oder apiproducts, je nach Art der zu verschiebenden API-Ressource.

Ein Nutzer, dem die Rolle apigee.apiAdminV2 für beide Spaces zugewiesen ist, hat die erforderlichen Berechtigungen.

Verwenden Sie den folgenden Befehl, um eine API-Ressource zwischen Spaces in einer Apigee-Organisation zu verschieben:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \
  -X POST -H "Authorization: Bearer $TOKEN"

Wobei:

  • ORG_NAME ist der Name Ihrer Apigee-Organisation.
  • RESOURCE_TYPE ist der Typ der Ressource, die Sie auflisten. Gültige Werte sind:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID ist der Name des API-Proxys, des freigegebenen Ablaufs oder des API-Produkts, das Sie verschieben möchten.
  • SPACE_NAME ist der Name des neuen Space.

Ein Nutzer mit der Berechtigung apigee.proxies.move für den roten Space und der Berechtigung apigee.proxies.create für den blauen Space kann beispielsweise mit dem folgenden Befehl den API-Proxy demo aus dem roten Space in den blauen Space verschieben:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \
  -X POST -H "Authorization: Bearer $TOKEN"

Die Antwort sollte in etwa so aussehen:

{
  "basepaths": ["/demo"],
  "revision": 1,
  "apiProxyId": "demo",
  "space_id": "blue",
  "createTime": ...,
  "updateTime": ...
}

In diesem Beispiel benötigt der Nutzer keine Berechtigungen auf Organisationsebene, sondern nur die erforderlichen Berechtigungen, die durch die setIamPolicy-Bindungen der einzelnen Spaces festgelegt sind.

Wenn Sie versuchen, den API-Proxy demo ohne die richtigen Berechtigungen für beide Spaces zu verschieben, wird der folgende Fehler ausgegeben:

  {
    "error": {
      "code": 403,
      "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).",
      "status": "PERMISSION_DENIED"
    }
  }