Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da
Apigee Edge.
Esta página descreve como as hierarquias de permissões do Identity and Access Management (IAM) são aplicadas aos recursos de API da Apigee (proxies de API, fluxos compartilhados e produtos de API) e aos filhos deles ao usar o Apigee Spaces.
Interação do IAM com o Apigee Spaces
Em geral, as políticas do IAM que regem o acesso aos recursos são herdadas pela Google Cloud hierarquia de recursos. As políticas específicas do IAM que se aplicam a um determinado recurso incluem o seguinte:
- Todas as políticas aplicadas diretamente ao recurso
- Todas as políticas que o recurso herda dos ancestrais
Hierarquia de recursos e permissões na Apigee
Na Apigee, o topo da hierarquia de recursos é o recurso organização. Os recursos filhos de uma organização incluem proxies de API, fluxos compartilhados e produtos de API. Quando você usa o Apigee sem o Spaces, as permissões são aplicadas ao projeto Google Cloud , que se correlaciona diretamente com o recurso da organização do Apigee. Como resultado, as políticas do IAM que regem o acesso a um determinado proxy de API, fluxo compartilhado ou produto de API incluem todas as políticas herdadas da organização, além das políticas aplicadas diretamente ao recurso específico.
Hierarquia de recursos e permissões com os espaços
Quando você usa o Apigee com o Spaces, o recurso "Space" é adicionado à hierarquia.
Considere um cenário em que uma organização da Apigee tem três proxies de API: proxy-a
, proxy-b
e proxy-c
.
Neste exemplo, proxy-b
e proxy-c
estão associados a space-red
e space-blue
, respectivamente. Quando você associa um recurso de API a um Space, o atributo space
é definido no recurso.
Quando você faz uma chamada de API para receber os detalhes de proxy-c
, o endpoint de API reflete a hierarquia real de recursos, em que o proxy de API é filho da organização com um atributo de espaço, conforme mostrado no exemplo a seguir:
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" }
Embora o caminho para um recurso de API associado a um espaço permaneça o mesmo, a hierarquia de permissões do IAM efetiva muda. No nosso cenário de exemplo, as verificações de permissão do IAM vão se comportar como se o recurso da API fosse um filho do espaço. Como resultado, as políticas do IAM aplicadas ao recurso de API incluem as políticas herdadas do espaço, além de todas as políticas aplicadas diretamente ao espaço, conforme mostrado na figura a seguir:

Verificações de políticas do IAM para recursos do espaço
Como observado em uma seção anterior, quando proxies de API, fluxos compartilhados e produtos de API são associados a um espaço, eles são tratados como recursos filhos do espaço durante as verificações de política do IAM. Essa hierarquia de recursos efetiva se aplica a todos os subelementos de proxies de API, fluxos compartilhados e produtos de API.
Por exemplo, os atributos do produto da API são
recursos filhos de um produto da API. Para listar todos os atributos do produto da API product-a
na organização da Apigee org1
, que está associada ao espaço da Apigee space-blue
, o caminho real do recurso é GET organizations/org1/apiproduct/product-a/attributes
. No entanto, o caminho verificado para permissões do IAM é organizations/org1/spaces/space-blue/apiproduct/product-a/attributes
.
Verificações de política do IAM para implantações
O recurso Environment não está associado aos Spaces. No entanto, algumas APIs atuais foram atualizadas para permitir acesso refinado a implantações e sessões de depuração para proxies de API e fluxos compartilhados.
As mudanças nas verificações de permissão do IAM para as seguintes operações de implantação em recursos de um espaço estão descritas abaixo:
Método | Verificação de permissão do IAM do espaço |
---|---|
organizations.deployments.list | Sem alterações |
organizations.apis.deployments.list | apigee.deployments.list em organizations/$ORG/spaces/$SPACE/apis/$API
|
organizations.apis.revisions.deployments.list | apigee.deployments.list em organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
|
organizations.environments.deployments.list | Sem alterações |
organizations.environments.deployments.get | Sem alterações |
organizations.environments.apis.deployments.list | apigee.deployments.list em organizations/$ORG/environments/$ENV OR
|
organizations.environments.apis.revisions.deployments.get | apigee.deployments.get em organizations/$ORG/environments/$ENV
OU
apigee.deployments.get em |
organizations.environments.apis.revisions.deployments.deploy | apigee.deployments.create em organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy em |
organizations.environments.apis.revisions.deployments.generateDeployChangeReport | apigee.deployments.create em organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.deploy em |
organizations.environments.apis.revisions.deployments.generateUndeployChangeReport | apigee.deployments.delete em organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy em |
organizations.environments.apis.revisions.deployments.undeploy | apigee.deployments.delete em organizations/$ORG/environments/$ENV
AND
apigee.proxyrevisions.undeploy em |
organizations.environments.sharedflows.deployments.list | apigee.deployments.list em organizations/$ORG/environments/$ENV OR apigee.deployments.list em organizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
organizations.environments.sharedflows.revisions.deployments.deploy | apigee.deployments.create em organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.deploy em |
organizations.environments.sharedflows.revisions.deployments.get | apigee.deployments.get em organizations/$ORG/environments/$ENV
OU apigee.deployments.get em
|
organizations.environments.sharedflows.revisions.deployments.undeploy | apigee.deployments.delete em organizations/$ORG/environments/$ENV
AND
apigee.sharedflowrevisions.undeploy em |
organizations.sharedflows.deployments.list | apigee.deployments.list emorganizations/$ORG/spaces/$SPACE/sharedflows/$SF
|
organizations.sharedflows.revisions.deployments.list | apigee.deployments.list emorganizations/$ORG/spaces/$SPACE/sharedflows/$SF/revisions/$REV
|
Verificações de permissão para sessões de depuração
Se um proxy de API estiver associado a um Space, as verificações de permissão do IAM para as sessões de depuração do proxy serão alteradas, conforme descrito na tabela a seguir:
Método | Verificação de permissão do IAM do espaço |
---|---|
organizations.environments.apis.revisions.debugsessions.create | apigee.tracesessions.create em organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
AND
|
organizations.environments.apis.revisions.debugsessions.get | apigee.tracesessions.get em organizations/$ORG/environments/$ENV AND organizations/$ORG/spaces/$SPACE/apis/$API
|
organizations.environments.apis.revisions.debugsessions.deleteData | apigee.tracesessions.delete em organizations/$ORG/environments/$ENV AND apigee.tracesessions.delete em
|
organizations.environments.apis.revisions.debugsessions.list | apigee.tracesessions.list em organizations/$ORG/environments/$ENV
OU
apigee.tracesessions.list em |
organizations.environments.apis.revisions.debugsessions.data.get | apigee.tracesessions.get em organizations/$ORG/environments/$ENV
AND
apigee.tracesessions.get em |
organizations.environments.apis.revisions.debugsessions.data.list | apigee.tracesessions.get em organizations/$ORG/environments/$ENV
E
apigee.tracesessions.get em |