API7 Enterprise 3.2.14.4: Límite de Permisos para una Gestión de Permisos Refinada
August 15, 2024
API7 Enterprise v3.2.14.4 ha sido lanzada oficialmente, presentando la introducción del límite de permisos para satisfacer la necesidad de una gestión más granular de los permisos de los usuarios en las empresas.
¿Qué es un límite de permisos?
Un límite de permisos, como su nombre lo indica, es como un muro de permisos que define el alcance máximo de permisos que un usuario puede tener. Se utiliza para restringir las acciones que los usuarios o roles pueden realizar en el sistema. Su propósito principal es mejorar la seguridad del sistema y prevenir el uso indebido de los permisos. Al establecer este "muro", podemos asegurar que los usuarios solo puedan operar dentro de su ámbito de responsabilidades y no puedan acceder o modificar datos en el sistema más allá de su autoridad.
Los límites de permisos pueden reutilizar políticas de permisos existentes en el sistema o crear nuevas políticas de permisos específicamente. Cuando se asigna un límite de permisos a un usuario, este limita sus permisos pero no les otorga directamente ningún permiso.
Ejemplo
Supongamos que creamos una política de permisos que otorga permisos de operación y visualización de servicios en todos los grupos de puertas de enlace y asignamos esta política como un límite de permisos al usuario Tom.
{
"statement": [
// Permisos de visualización en todos los grupos de puertas de enlace
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>"
],
"actions": [
"<.*>Get<.*>"
]
},
// Permisos de operación de servicios en todos los grupos de puertas de enlace
{
"effect": "allow",
"resources": [
"*"
],
"actions": [
"arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
]
}
]
}
En tal caso, los permisos máximos de Tom están restringidos dentro de esta política de permisos. Aunque se haya establecido un límite de permisos, esto no significa que Tom ya tenga estos permisos. A continuación, asignamos a Tom un rol con la siguiente política de permisos:
{
"statement": [
// Permisos de visualización en todos los grupos de puertas de enlace
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>"
],
"actions": [
"<.*>Get<.*>"
]
},
// Permisos de operación de servicios en todos los grupos de puertas de enlace
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
],
"actions": [
"<.*>"
]
},
// Permisos de operación para plugins personalizados
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaysetting/*"
],
"actions": [
"gateway:<.*>CustomPlugin<.*>"
]
}
]
}
Aunque a Tom se le han otorgado permisos de operación, visualización y operación de plugins personalizados en todos los grupos de puertas de enlace, se dará cuenta de que no tiene permisos para editar plugins personalizados. Esto se debe a que hemos establecido un límite de permisos para Tom. A menos que el límite de permisos se ajuste para incluir permisos relacionados con plugins personalizados, cualquier permiso adicional más allá del límite será inválido.
¿Cómo usar la función de límite de permisos?
Crear políticas de permisos
Los límites de permisos pueden reutilizar directamente las políticas de permisos dentro del sistema. Antes de asignar un límite de permisos a un usuario, es necesario crear una política de permisos. Haga clic en "Políticas de permisos" en el menú de organización del sistema para ingresar a la página de lista.

Luego, haga clic en "Agregar política de permisos" en la esquina superior derecha de la lista para ingresar al formulario de creación.
Complete la información básica de la política de permisos en el formulario y configure las declaraciones de política correspondientes para crear la política de permisos. Teóricamente, la misma política de permisos puede estar asociada con múltiples roles y utilizarse como el límite de permisos para múltiples usuarios, pero esta práctica no es recomendable.
Para obtener más información conceptual sobre las políticas de permisos, consulte el artículo Novedades en API7 Enterprise 3.4.14: IAM para un control de acceso más granular. Para ejemplos comunes de configuración de políticas, consulte el documento Ejemplos de políticas de permisos. Para los valores que pueden tomar los recursos y acciones y las API correspondientes, consulte el documento Acciones y recursos de políticas de permisos.
Asignar límites de permisos
Después de crear las políticas de permisos, puede asignar límites de permisos. Haga clic en "Usuarios" en el menú de organización para ingresar a la página de lista de usuarios.

Podemos asignar directamente límites de permisos a nuevos usuarios al invitarlos. El formulario de invitación incluye un nuevo campo para los límites de permisos, y el usuario tendrá asignado este límite de permisos por defecto al iniciar sesión en el sistema.

Para los usuarios existentes, puede hacer clic en el ícono de edición del límite de permisos en la página de detalles del usuario para configurar su límite de permisos.

Al configurar los permisos de un usuario, puede agregar la condición permission_boundaries
a permisos de operación específicos. Por ejemplo, en las acciones iam:InviteUser
(invitar usuario) o iam:UpdateUserBoundary
(actualizar límite de permisos del usuario), puede refinar aún más el control de permisos agregando la condición permission_boundaries
.
Bajo esta condición, puede especificar el ID de la política de permisos que debe establecerse para el usuario. Por lo tanto, al realizar operaciones como invitar a un nuevo usuario o actualizar el límite de permisos de otro usuario, el sistema aplicará la asignación del límite de permisos adecuado según estas reglas preestablecidas.
Aquí hay un ejemplo que demuestra cómo lograr esto:
{
"statement": [
{
"effect": "allow",
"resources": ["arn:api7:iam:user/<.*>"],
"actions": [
"iam:InviteUser",
"iam:UpdateUserBoundary"
],
"conditions": {
"permission_boundaries": {
"type": "AllOfStrings",
"options": [
"d3698967-1d28-4e37-b5e7-ef00a93304cc",
"f863a233-f732-4af0-bb21-3fbe4013be69"
]
}
}
}
]
}
Mapeo de límites de permisos
Además de configurar directamente límites de permisos específicos dentro del sistema, API7 Enterprise también admite el Mapeo de Límites de Permisos, que asigna automáticamente los límites de permisos correspondientes según la identidad y los permisos del usuario en el IdP (Proveedor de Identidad). En la página de configuración de la organización, haga clic en "Agregar opción de inicio de sesión". Independientemente del proveedor seleccionado, se agrega un interruptor de "Mapeo de Límites de Permisos" en la parte inferior del formulario de configuración. Una vez habilitado, puede configurar el mapeo de límites de permisos.
-
Política de permisos: Este es el recurso de política de permisos definido en API7 Enterprise, utilizado para controlar el acceso y el alcance de las operaciones de los usuarios. En el mapeo de límites de permisos, podemos mapear configuraciones del IdP externo a estos límites de permisos para asignar los límites de permisos correspondientes a los usuarios al iniciar sesión.
-
Atributo de límite de permisos mapeado: El identificador de la información del límite de permisos del usuario devuelta por el IdP, utilizado para ubicar los datos del límite de permisos del usuario en la respuesta del IdP. Por ejemplo, especificar un nombre de atributo como "role" o "groups" permitirá que el sistema extraiga el valor del límite de permisos de la respuesta del IdP basado en este nombre de atributo.
-
Operación: El método utilizado para coincidir el valor del límite de permisos del atributo de límite de permisos del IdP. Se admiten varios métodos, como coincidencia exacta, coincidencia difusa, coincidencia de matriz, etc. Si el IdP devuelve una matriz de cadenas de valores de límite de permisos, podemos elegir "Coincidencia exacta en matriz" para encontrar una coincidencia.
-
Valor de límite de permisos mapeado: El valor específico que representa el límite de permisos del usuario en el IdP.
Resumen
En general, los límites de permisos son herramientas cruciales para garantizar la seguridad del sistema y prevenir el abuso de permisos. Al definir claramente el alcance de los permisos de los usuarios, podemos proteger los recursos clave del sistema de accesos no autorizados y asegurar que cada usuario solo pueda operar dentro de su rango autorizado. En entornos de sistemas complejos, el uso efectivo de los límites de permisos proporcionará una protección robusta para la seguridad de los datos de una empresa.