Jerarquía de permisos de IAM en Apigee Spaces

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En esta página, se describe cómo se aplican las jerarquías de permisos de administración de identidades y accesos (IAM) a los recursos de la API de Apigee (proxies de API, flujos compartidos y productos de API) y sus elementos secundarios cuando se usan los espacios de Apigee.

Interacción de IAM con espacios de Apigee

En general, las políticas de IAM que rigen el acceso a los recursos se heredan a través de la jerarquía de recursos Google Cloud . Las políticas de IAM específicas que se aplican a un recurso determinado incluyen lo siguiente:

  • Cualquier política aplicada directamente al recurso
  • Cualquier política que el recurso herede de sus elementos superiores

Jerarquía de recursos y permisos en Apigee

En Apigee, la parte superior de la jerarquía de recursos es el recurso organización. Los recursos secundarios de una organización incluyen proxies de API, flujos compartidos y productos de API. Cuando usas Apigee sin espacios, los permisos se aplican al proyecto Google Cloud , que se correlaciona directamente con el recurso de la organización de Apigee. Como resultado, las políticas de IAM que rigen el acceso a un proxy de API, un flujo compartido o un producto de API determinado incluyen las políticas heredadas de la organización, además de las políticas aplicadas directamente al recurso específico.

Jerarquía de recursos y permisos con Spaces

Cuando usas Apigee con Spaces, el recurso de Space se agrega a la jerarquía. Considera una situación en la que una organización de Apigee tiene tres proxies de API: proxy-a, proxy-b y proxy-c. En este ejemplo, proxy-b y proxy-c están asociados con space-red y space-blue, respectivamente. Cuando asocias un recurso de API con un espacio, se establece el atributo space en el recurso.

Cuando realizas una llamada a la API para obtener los detalles de proxy-c, tu extremo de API refleja la jerarquía de recursos real, en la que el proxy de API es un elemento secundario de la organización con un atributo de espacio, como se muestra en el siguiente ejemplo:

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

Aunque la ruta de acceso a un recurso de API asociado con un espacio sigue siendo la misma, cambia la jerarquía de permisos de IAM efectiva. En nuestro ejemplo, las verificaciones de permisos de IAM se comportarán como si el recurso de la API fuera un elemento secundario del espacio. Como resultado, las políticas de IAM que se aplican al recurso de API incluyen las políticas heredadas del espacio, además de las políticas aplicadas directamente al espacio, como se muestra en la siguiente imagen:

Jerarquía de IAM para Spaces
Figura 1: La jerarquía de permisos de IAM efectiva para los recursos de la API cuando se usan Espacios

Verificación de la política de IAM para recursos de Space

Como se señaló en una sección anterior, cuando los proxies de API, los flujos compartidos y los productos de API se asocian con un espacio, se consideran recursos secundarios del espacio durante las verificaciones de políticas de IAM. Esta jerarquía de recursos efectiva se aplica a todos los subelementos secundarios de los proxies de API, los flujos compartidos y los productos de API.

Por ejemplo, los atributos de productos de API son recursos secundarios de un producto de API. Para enumerar todos los atributos del producto de API product-a en la organización de Apigee org1, que está asociada con el espacio de Apigee space-blue, la ruta de recursos real es GET organizations/org1/apiproduct/product-a/attributes. Sin embargo, la ruta de acceso que se verifica para los permisos de IAM es organizations/org1/spaces/space-blue/apiproduct/product-a/attributes.

Verificaciones de políticas de IAM para implementaciones

El recurso Environment no está asociado con los espacios. Sin embargo, se actualizaron algunas APIs existentes para permitir el acceso detallado a las implementaciones y sesiones de depuración de proxies de API y flujos compartidos.

A continuación, se describen los cambios en las verificaciones de permisos de IAM para las siguientes operaciones de implementación en recursos de un espacio:

Método Verificación de permisos de IAM de espacio
organizations.deployments.list Sin cambios
organizations.apis.deployments.list apigee.deployments.list en organizations/$ORG/spaces/$SPACE/apis/$API
organizations.apis.revisions.deployments.list apigee.deployments.list en organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV
organizations.environments.deployments.list Sin cambios
organizations.environments.deployments.get Sin cambios
organizations.environments.apis.deployments.list apigee.deployments.list en organizations/$ORG/environments/$ENV
O

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

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

O

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

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

Y

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

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

Y

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

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

Y

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

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

Y

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

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

Y

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

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

O

apigee.deployments.get en

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

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

Y

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

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

Verificaciones de permisos para sesiones de depuración

Si un proxy de API está asociado con un espacio, las verificaciones de permisos de IAM para las sesiones de depuración del proxy cambiaron, como se describe en la siguiente tabla:

Método Verificación de permisos de IAM de espacio
organizations.environments.apis.revisions.debugsessions.create apigee.tracesessions.create en organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

Y

organizations/$ORG/environments/$ENV

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

apigee.tracesessions.delete en

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

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

O

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

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

Y

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

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

Y

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