Jerarquía de permisos de gestión de identidades y accesos 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 Identity and Access Management (IAM) a los recursos de la API de Apigee (proxies de API, flujos compartidos y productos de API) y a sus elementos secundarios cuando se usan espacios de Apigee.

Interacción de gestión de identidades y accesos con Apigee Spaces

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

  • Cualquier política aplicada directamente al recurso
  • Las políticas que el recurso hereda de sus antecesores

Jerarquía de recursos y permisos en Apigee

En Apigee, la parte superior de la jerarquía de recursos es el recurso de 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 corresponde directamente con el recurso de organización de Apigee. Por lo tanto, 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 espacios

Cuando usas Apigee con espacios, el recurso Space se añade a la jerarquía. Imagina 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 a space-red y space-blue, respectivamente. Cuando asocias un recurso de API a un espacio, se define el atributo space en el recurso.

Cuando haces una llamada a la API para obtener los detalles de proxy-c, el punto de conexión de la API refleja la jerarquía de recursos real, donde el proxy de la API es un elemento secundario de la organización con un atributo Space, 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 a un recurso de API asociado a un espacio sigue siendo la misma, la jerarquía de permisos de gestión de identidades y accesos efectiva cambia. En nuestro ejemplo, las comprobaciones de permisos de gestión de identidades y accesos se comportarán como si el recurso de la API fuera un elemento secundario del espacio. Por lo tanto, las políticas de gestión de identidades y accesos que se aplican al recurso de la API incluyen las políticas heredadas del espacio, además de las políticas aplicadas directamente al espacio, tal como se muestra en la siguiente figura:

Jerarquía de gestión de identidades y accesos para espacios
Imagen 1: Jerarquía de permisos de gestión de identidades y accesos efectiva para los recursos de la API al usar espacios

Comprobaciones de políticas de gestión de identidades y accesos para recursos de espacio

Como se ha indicado en una sección anterior, cuando los proxies de API, los flujos compartidos y los productos de API se asocian a un espacio, se tratan como recursos secundarios del espacio durante las comprobaciones de la política de gestión de identidades y accesos. Esta jerarquía de recursos efectiva se aplica a todos los elementos secundarios de los proxies de API, los flujos compartidos y los productos de API.

Por ejemplo, los atributos de producto de API son recursos secundarios de un producto de API. Para enumerar todos los atributos del producto de API product-a de la organización de Apigee org1, que está asociada al espacio de Apigee space-blue, la ruta de recurso real es GET organizations/org1/apiproduct/product-a/attributes. Sin embargo, la ruta que se comprueba para los permisos de gestión de identidades y accesos es organizations/org1/spaces/space-blue/apiproduct/product-a/attributes.

Comprobaciones de políticas de gestión de identidades y accesos para despliegues

El recurso Environment no está asociado a Espacios. Sin embargo, algunas APIs se han actualizado para permitir un 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 comprobaciones de permisos de IAM para las siguientes operaciones de implementación en recursos de un espacio:

Método Comprobación de permisos de gestión de identidades y accesos de espacios
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
OR

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

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

OR

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

AND

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

AND

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

AND

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

AND

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

AND

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

AND

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

Comprobaciones de permisos para sesiones de depuración

Si un proxy de API está asociado a un espacio, los controles de permisos de IAM de las sesiones de depuración del proxy han cambiado, tal como se describe en la siguiente tabla:

Método Comprobación de permisos de gestión de identidades y accesos de espacios
organizations.environments.apis.revisions.debugsessions.create apigee.tracesessions.create el organizations/$ORG/spaces/$SPACE/apis/$API/revisions/$REV

AND

organizations/$ORG/environments/$ENV

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

apigee.tracesessions.delete en

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

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

OR

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

AND

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