Gerarchia delle autorizzazioni IAM in Apigee Spaces

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questa pagina descrive come vengono applicate le gerarchie di autorizzazioni di Identity and Access Management (IAM) alle risorse API Apigee (proxy API, flussi condivisi e prodotti API) e ai relativi elementi secondari quando utilizzi Apigee Spaces.

Interazione di IAM con Apigee Spaces

In generale, i criteri IAM che regolano l'accesso alle risorse vengono ereditati tramite la Google Cloud gerarchia delle risorse. I criteri IAM specifici che si applicano a una determinata risorsa includono entrambi i seguenti elementi:

  • Eventuali policy applicate direttamente alla risorsa
  • Qualsiasi policy che la risorsa eredita dai suoi antenati

Gerarchia di risorse e autorizzazioni in Apigee

In Apigee, la parte superiore della gerarchia delle risorse è la risorsa organizzazione. Le risorse secondarie di un'organizzazione includono proxy API, flussi condivisi e prodotti API. Quando utilizzi Apigee senza Spazi, le autorizzazioni vengono applicate al progetto Google Cloud , che è direttamente correlato alla risorsa dell'organizzazione Apigee. Di conseguenza, i criteri IAM che regolano l'accesso a un determinato proxy API, flusso condiviso o prodotto API includono tutti i criteri ereditati dall'organizzazione, oltre a quelli applicati direttamente alla risorsa specifica.

Gerarchia di risorse e autorizzazioni con gli spazi

Quando utilizzi Apigee con Spaces, la risorsa Space viene aggiunta alla gerarchia. Considera uno scenario in cui un'organizzazione Apigee ha tre proxy API, proxy-a, proxy-b e proxy-c. In questo esempio, proxy-b e proxy-c sono associati rispettivamente a space-red e space-blue. Quando associ una risorsa API a uno spazio, l'attributo space viene impostato sulla risorsa.

Quando effettui una chiamata API per ottenere i dettagli di proxy-c, l'endpoint API riflette la gerarchia delle risorse effettiva, in cui il proxy API è un elemento secondario dell'organizzazione con un attributo Spazio, come mostrato nell'esempio seguente:

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"
}

Sebbene il percorso di una risorsa API associata a uno spazio rimanga invariato, la gerarchia delle autorizzazioni IAM effettive cambia. Nello scenario di esempio, i controlli delle autorizzazioni IAM si comportano come se la risorsa API fosse un elemento secondario dello spazio. Di conseguenza, i criteri IAM che si applicano alla risorsa API includono quelli ereditati dallo spazio, oltre a quelli applicati direttamente allo spazio, come mostrato nella figura seguente:

Gerarchia IAM per gli spazi
Figura 1: la gerarchia delle autorizzazioni IAM effettive per le risorse API quando si utilizzano gli spazi

Controlli dei criteri IAM per le risorse Spazio

Come indicato in una sezione precedente, quando i proxy API, i flussi condivisi e i prodotti API sono associati a uno spazio, vengono trattati come risorse secondarie dello spazio durante i controlli delle norme IAM. Questa gerarchia di risorse effettiva si applica a tutti i sotto-elementi secondari di proxy API, flussi condivisi e prodotti API.

Ad esempio, gli attributi del prodotto API sono risorse secondarie di un prodotto API. Per elencare tutti gli attributi del prodotto API product-a nell'organizzazione Apigee org1, associata allo spazio Apigee space-blue, il percorso della risorsa effettivo è GET organizations/org1/apiproduct/product-a/attributes. Tuttavia, il percorso per cui vengono controllate le autorizzazioni IAM è organizations/org1/spaces/space-blue/apiproduct/product-a/attributes.

Controlli dei criteri IAM per i deployment

La risorsa Environment non è associata a Spazi. Tuttavia, alcune API esistenti sono state aggiornate per consentire l'accesso granulare ai deployment e alle sessioni di debug per i proxy API e i flussi condivisi.

Di seguito sono descritte le modifiche ai controlli delle autorizzazioni IAM per le seguenti operazioni di deployment sulle risorse in uno spazio:

Metodo Controllo delle autorizzazioni IAM dello spazio
organizations.deployments.list Nessuna modifica
organizations.apis.deployments.list apigee.deployments.list on organizations/$ORG/spaces/$SPACE/apis/$API
organizations.apis.revisions.deployments.list apigee.deployments.list su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
organizations.environments.deployments.list Nessuna modifica
organizations.environments.deployments.get Nessuna modifica
organizations.environments.apis.deployments.list apigee.deployments.list su organizations/$ORG/environments/$ENV
OPPURE

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

organizations.environments.apis.revisions.deployments.get apigee.deployments.get su organizations/$ORG/environments/$ENV

OR

apigee.deployments.get su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.deployments.deploy apigee.deployments.create su organizations/$ORG/environments/$ENV

AND

apigee.proxyrevisions.deploy su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.deployments.generateDeployChangeReport apigee.deployments.create su organizations/$ORG/environments/$ENV

AND

apigee.proxyrevisions.deploy su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.deployments.generateUndeployChangeReport apigee.deployments.delete su organizations/$ORG/environments/$ENV

AND

apigee.proxyrevisions.undeploy su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.deployments.undeploy apigee.deployments.delete su organizations/$ORG/environments/$ENV

AND

apigee.proxyrevisions.undeploy su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.sharedflows.deployments.list apigee.deployments.list su organizations/$ORG/environments/$ENV
OR
apigee.deployments.list su
organizations/$ORG/spaces/$SPACE/sharedflows/$SF
organizations.environments.sharedflows.revisions.deployments.deploy apigee.deployments.create su organizations/$ORG/environments/$ENV

AND

apigee.sharedflowrevisions.deploy su organizations/$ORG/spaces/$SPACE/sharedflow/$SF/revisions/$REV

organizations.environments.sharedflows.revisions.deployments.get apigee.deployments.get su organizations/$ORG/environments/$ENV

OPPURE

apigee.deployments.get su

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

organizations.environments.sharedflows.revisions.deployments.undeploy apigee.deployments.delete su organizations/$ORG/environments/$ENV

AND

apigee.sharedflowrevisions.undeploy su organizations/$ORG/spaces/$SPACE/sharedflow/$SF/revisions/$REV

organizations.sharedflows.deployments.list apigee.deployments.list su
organizations/$ORG/spaces/$SPACE/sharedflows/$SF
organizations.sharedflows.revisions.deployments.list apigee.deployments.list su
organizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV

Controlli delle autorizzazioni per le sessioni di debug

Se un proxy API è associato a uno spazio, i controlli delle autorizzazioni IAM per le sessioni di debug del proxy sono cambiati, come descritto nella tabella seguente:

Metodo Controllo delle autorizzazioni IAM dello spazio
organizations.environments.apis.revisions.debugsessions.create apigee.tracesessions.create il giorno organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

AND

organizations/$ORG/environments/$ENV

organizations.environments.apis.revisions.debugsessions.get apigee.tracesessions.get su organizations/$ORG/environments/$ENV
AND organizations/$ORG/spaces/$SPACE/apis/$API
organizations.environments.apis.revisions.debugsessions.deleteData apigee.tracesessions.delete su organizations/$ORG/environments/$ENV
AND

apigee.tracesessions.delete su

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

organizations.environments.apis.revisions.debugsessions.list apigee.tracesessions.list su organizations/$ORG/environments/$ENV

OR

apigee.tracesessions.list su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.debugsessions.data.get apigee.tracesessions.get su organizations/$ORG/environments/$ENV

AND

apigee.tracesessions.get su organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

organizations.environments.apis.revisions.debugsessions.data.list apigee.tracesessions.get su organizations/$ORG/environments/$ENV

E

apigee.tracesessions.get su organizations/$ORG/spaces/$SPACE/apis/$API