Hierarquia de autorizações de IAM no Apigee Spaces

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Esta página descreve como as hierarquias de autorizações da gestão de identidades e acessos (IAM) são aplicadas aos recursos da API Apigee (proxies de API, fluxos partilhados e produtos de API) e respetivos elementos subordinados quando usa os espaços do Apigee.

Interação do IAM com o Apigee Spaces

Em geral, as políticas de IAM que regem o acesso aos recursos são herdadas através da Google Cloud hierarquia de recursos. As políticas de IAM específicas que se aplicam a um determinado recurso incluem o seguinte:

  • Quaisquer políticas aplicadas diretamente ao recurso
  • Todas as políticas que o recurso herda dos respetivos antecessores

Hierarquia de recursos e autorizações no Apigee

No Apigee, a parte superior da hierarquia de recursos é o recurso de organização. Os recursos subordinados de uma organização incluem proxies de API, fluxos partilhados e produtos de API. Quando usa o Apigee sem espaços, as autorizações são aplicadas ao Google Cloud projeto, que está diretamente correlacionado com o recurso da organização do Apigee. Como resultado, as políticas IAM que regem o acesso a um determinado proxy de API, fluxo partilhado ou produto de API incluem todas as políticas herdadas da organização, além de quaisquer políticas aplicadas diretamente ao recurso específico.

Hierarquia de recursos e autorizações com os espaços

Quando usa o Apigee com os espaços, o recurso de espaço é adicionado à hierarquia. Considere um cenário em que uma organização do 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, respetivamente. Quando associa um recurso de API a um espaço, o atributo space é definido no recurso.

Quando faz uma chamada API para obter os detalhes de proxy-c, o seu ponto final da API reflete a hierarquia de recursos real, em que o proxy da API é um filho da organização com um atributo Space, conforme mostrado no exemplo seguinte:

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 da API associado a um espaço permaneça o mesmo, a hierarquia de autorizações IAM efetiva muda. No nosso cenário de exemplo, as verificações de autorizações da IAM comportam-se como se o recurso da API fosse um filho do espaço. Como resultado, as políticas IAM que se aplicam ao recurso da API incluem as políticas herdadas do espaço, além de quaisquer políticas aplicadas diretamente ao espaço, conforme mostrado na figura seguinte:

Hierarquia da IAM para os Espaços
Figura 1: a hierarquia de autorizações de IAM eficaz para recursos da API quando usa espaços

Verificações de políticas IAM para recursos de espaço

Conforme indicado numa secção anterior, quando os proxies de API, os fluxos partilhados e os produtos de API estão associados a um espaço, são tratados como recursos subordinados do espaço durante as verificações de políticas de IAM. Esta hierarquia de recursos eficaz aplica-se a todos os subelementos secundários de proxies de API, fluxos partilhados e produtos de API.

Por exemplo, os atributos do produto da API são recursos secundários de um produto da API. Para listar todos os atributos do produto API product-a na organização do Apigee org1, que está associada ao espaço do Apigee space-blue, o caminho do recurso real é GET organizations/org1/apiproduct/product-a/attributes. No entanto, o caminho verificado para autorizações de IAM é organizations/org1/spaces/space-blue/apiproduct/product-a/attributes.

Verificações de políticas IAM para implementações

O recurso Environment não está associado ao Spaces. No entanto, algumas APIs existentes foram atualizadas para permitir o acesso detalhado a implementações e sessões de depuração para proxies de API e fluxos partilhados.

As alterações às verificações de autorizações da IAM para as seguintes operações de implementação em recursos num espaço são descritas abaixo:

Método Verificação de autorização de IAM do espaço
organizations.deployments.list Sem alterações
organizations.apis.deployments.list apigee.deployments.list on 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/$ORG/spaces/$SPACE/apis/$API

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

OU

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

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

E

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

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

E

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

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

E

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

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

E

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

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

E

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

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

OU

apigee.deployments.get em

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

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

E

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

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

Verificações de autorizações para sessões de depuração

Se um proxy de API estiver associado a um espaço, as verificações de autorização da IAM para as sessões de depuração do proxy foram alteradas, conforme descrito na tabela seguinte:

Método Verificação de autorização de IAM do espaço
organizations.environments.apis.revisions.debugsessions.create apigee.tracesessions.create em organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

E

organizations/$ORG/environments/$ENV

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
E

apigee.tracesessions.delete ativado

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

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

OU

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

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

E

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

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

E

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