Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Auf dieser Seite wird beschrieben, wie Identity and Access Management (IAM)-Berechtigungshierarchien auf Apigee API-Ressourcen (API-Proxys, freigegebene Abläufe und API-Produkte) und deren untergeordnete Elemente angewendet werden, wenn Sie Apigee Spaces verwenden.
IAM-Interaktion mit Apigee Spaces
Im Allgemeinen werden IAM-Richtlinien, die den Zugriff auf Ressourcen regeln, über die Google Cloud Ressourcenhierarchie vererbt. Die spezifischen IAM-Richtlinien, die für eine bestimmte Ressource gelten, umfassen Folgendes:
- Alle Richtlinien, die direkt auf die Ressource angewendet werden
- Alle Richtlinien, die die Ressource von ihren Ancestors übernimmt
Ressourcen- und Berechtigungshierarchie in Apigee
In Apigee ist die Organisationsressource die oberste Ebene der Ressourcenhierarchie. Untergeordnete Ressourcen einer Organisation sind API-Proxys, freigegebene Abläufe und API-Produkte. Wenn Sie Apigee ohne Spaces verwenden, werden Berechtigungen auf das Google Cloud -Projekt angewendet, das direkt mit der Apigee-Organisationsressource korreliert. Daher enthalten die IAM-Richtlinien, die den Zugriff auf einen bestimmten API-Proxy, einen freigegebenen Ablauf oder ein API-Produkt regeln, alle Richtlinien, die von der Organisation übernommen wurden, sowie alle Richtlinien, die direkt auf die jeweilige Ressource angewendet werden.
Ressourcen- und Berechtigungshierarchie mit Arbeitsbereichen
Wenn Sie Apigee mit Spaces verwenden, wird die Space-Ressource der Hierarchie hinzugefügt.
Angenommen, eine Apigee-Organisation hat drei API-Proxys: proxy-a, proxy-b und proxy-c.
In diesem Beispiel sind proxy-b und proxy-c mit space-red bzw. space-blue verknüpft. Wenn Sie eine API-Ressource einem Space zuordnen, wird das Attribut space für die Ressource festgelegt.
Wenn Sie einen API-Aufruf ausführen, um die Details von proxy-c abzurufen, spiegelt Ihr API-Endpunkt die tatsächliche Ressourcenhierarchie wider. Der API-Proxy ist ein untergeordnetes Element der Organisation mit einem Space-Attribut, wie im folgenden Beispiel dargestellt:
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"
}Obwohl der Pfad zu einer API-Ressource, die mit einem Space verknüpft ist, gleich bleibt, ändert sich die effektive IAM-Berechtigungshierarchie. In unserem Beispielszenario verhalten sich die IAM-Berechtigungsprüfungen so, als wäre die API-Ressource ein untergeordnetes Element des Space. Die IAM-Richtlinien, die für die API-Ressource gelten, umfassen daher die Richtlinien, die vom Space übernommen wurden, sowie alle Richtlinien, die direkt auf den Space angewendet wurden, wie in der folgenden Abbildung dargestellt:
IAM-Richtlinienprüfungen für Space-Ressourcen
Wie bereits erwähnt, werden API-Proxys, freigegebene Abläufe und API-Produkte, die einem Space zugeordnet sind, bei IAM-Richtlinienprüfungen als untergeordnete Ressourcen des Space behandelt. Diese effektive Ressourcenhierarchie gilt für alle untergeordneten Elemente von API-Proxys, freigegebenen Abläufen und API-Produkten.
API-Produktattribute sind beispielsweise untergeordnete Ressourcen eines API-Produkts. Wenn Sie alle Attribute des API-Produkts product-a in der Apigee-Organisation org1 auflisten möchten, die mit dem Apigee-Space space-blue verknüpft ist, lautet der tatsächliche Ressourcenpfad GET organizations/org1/apiproduct/product-a/attributes. Der Pfad, der auf IAM-Berechtigungen geprüft wird, ist jedoch organizations/org1/spaces/space-blue/apiproduct/product-a/attributes.
IAM-Richtlinienprüfungen für Deployments
Die Environment-Ressource ist nicht mit Spaces verknüpft. Einige vorhandene APIs wurden jedoch aktualisiert, um einen detaillierten Zugriff auf Bereitstellungen und Debugging-Sitzungen für API-Proxys und freigegebene Abläufe zu ermöglichen.
Änderungen an IAM-Berechtigungsprüfungen für die folgenden Bereitstellungsvorgänge für Ressourcen in einem Space werden unten beschrieben:
| Methode | IAM-Berechtigungsprüfung für Arbeitsbereiche |
|---|---|
| organizations.deployments.list | Keine Änderungen |
| organizations.apis.deployments.list | apigee.deployments.list auf organizations/$ORG/spaces/$SPACE/apis/$API
|
| organizations.apis.revisions.deployments.list | apigee.deployments.list auf organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
|
| organizations.environments.deployments.list | Keine Änderungen |
| organizations.environments.deployments.get | Keine Änderungen |
| organizations.environments.apis.deployments.list | apigee.deployments.list für organizations/$ORG/environments/$ENVODER
|
| organizations.environments.apis.revisions.deployments.get | apigee.deployments.get für organizations/$ORG/environments/$ENV
OR
apigee.deployments.get für |
| organizations.environments.apis.revisions.deployments.deploy | apigee.deployments.create für organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy für |
| organizations.environments.apis.revisions.deployments.generateDeployChangeReport | apigee.deployments.create für organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy für |
| organizations.environments.apis.revisions.deployments.generateUndeployChangeReport | apigee.deployments.delete für organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy für |
| organizations.environments.apis.revisions.deployments.undeploy | apigee.deployments.delete für organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy für |
| organizations.environments.sharedflows.deployments.list | apigee.deployments.list auf organizations/$ORG/environments/$ENV ODER apigee.deployments.list auf organizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
| organizations.environments.sharedflows.revisions.deployments.deploy | apigee.deployments.create für organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.deploy für |
| organizations.environments.sharedflows.revisions.deployments.get | apigee.deployments.get für organizations/$ORG/environments/$ENV
ODER apigee.deployments.get für
|
| organizations.environments.sharedflows.revisions.deployments.undeploy | apigee.deployments.delete für organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.undeploy für |
| organizations.sharedflows.deployments.list | apigee.deployments.list auforganizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
| organizations.sharedflows.revisions.deployments.list | apigee.deployments.list auforganizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV
|
Berechtigungsprüfungen für Debugging-Sitzungen
Wenn ein API-Proxy mit einem Space verknüpft ist, haben sich die IAM-Berechtigungsprüfungen für die Debugging-Sitzungen des Proxys geändert, wie in der folgenden Tabelle beschrieben:
| Methode | IAM-Berechtigungsprüfung für Arbeitsbereiche |
|---|---|
| organizations.environments.apis.revisions.debugsessions.create | apigee.tracesessions.create für organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
AND
|
| organizations.environments.apis.revisions.debugsessions.get | apigee.tracesessions.get für organizations/$ORG/environments/$ENV UND organizations/$ORG/spaces/$SPACE/apis/$API
|
| organizations.environments.apis.revisions.debugsessions.deleteData | apigee.tracesessions.delete für organizations/$ORG/environments/$ENVUND apigee.tracesessions.delete für
|
| organizations.environments.apis.revisions.debugsessions.list | apigee.tracesessions.list auf organizations/$ORG/environments/$ENV
OR
apigee.tracesessions.list auf |
| organizations.environments.apis.revisions.debugsessions.data.get | apigee.tracesessions.get für organizations/$ORG/environments/$ENV
AND
apigee.tracesessions.get für |
| organizations.environments.apis.revisions.debugsessions.data.list | apigee.tracesessions.get für organizations/$ORG/environments/$ENV
UND
apigee.tracesessions.get für |