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ão do gerenciamento de identidade e acesso (IAM) são aplicadas aos recursos da 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 a recursos são herdadas pela hierarquia de recursos Google Cloud . As políticas específicas do IAM que se aplicam a um determinado recurso incluem:
- 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 a Apigee sem o Spaces, as permissões são aplicadas ao projeto Google Cloud , que se correlaciona diretamente com o recurso da organização da 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 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 o Spaces
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 de recursos real, em que o
proxy de API é filho da organização com um atributo Space, 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 muda. No nosso cenário de exemplo, as verificações de permissão do IAM vão funcionar como se o recurso da API fosse filho do espaço. Como resultado, as políticas do IAM que se aplicam ao recurso da API incluem as políticas herdadas do espaço, além de qualquer política aplicada diretamente ao espaço, conforme mostrado na figura a seguir:

Verificações da política do IAM para recursos do espaço
Como observado em uma seção anterior, quando os proxies, os fluxos compartilhados e os 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 eficaz se aplica a todos os sub-subordinados 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 é associado ao espaço da Apigee space-blue
, o caminho do recurso real é 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 da política do IAM para implantações
O recurso Ambiente não está associado ao Spaces. No entanto, algumas APIs foram atualizadas para permitir o acesso refinado a implantações e sessões de depuração de 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 em um Espaço estão descritas abaixo:
Método | Verificação de permissões 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 OU
|
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 OU 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 vão mudar, conforme descrito na tabela a seguir:
Método | Verificação de permissões 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 E 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 |