Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Diferencias entre los permisos verificados de Amazon y el lenguaje de la política de Cedar
Amazon Verified Permissions utiliza el motor de lenguaje de políticas de Cedar para realizar las tareas de autorización. Sin embargo, existen algunas diferencias entre la implementación nativa de Cedar y la implementación de Cedar en Verified Permissions. En este tema se explican esas diferencias.
Definición de espacio de nombres
La implementación de Verified Permissions de Cedar presenta las siguientes diferencias con respecto a la implementación nativa de Cedar:
-
Verified Permissions solo admite un espacio de nombres en un esquema
definido en un almacén de políticas. -
Los permisos verificados no permiten crear un espacio de nombres
que sea una cadena vacía o que incluya los siguientes valores: aws
,amazon
, o.cedar
Compatibilidad con las plantillas de política
Tanto Verified Permissions como Cedar solo permiten marcadores de posición en el ámbito para principal
y resource
. Sin embargo, Verified Permissions también requiere que ni principal
ni resource
carezcan de restricciones.
La siguiente política es válida en Cedar, pero Verified Permissions la rechaza porque la principal
no tiene restricciones.
permit(principal, action == Action::"view", resource == ?resource);
Los dos ejemplos siguientes son válidos tanto en Cedar como en Verified Permissions porque la principal
y el resource
tienen restricciones.
permit(principal == User::"alice", action == Action::"view", resource == ?resource);
permit(principal == ?principal, action == Action::"a", resource in ?resource);
Compatibilidad con esquemas
Los permisos verificados requieren que todos los nombres de las JSON claves del esquema no sean cadenas vacías. Cedar permite cadenas vacías en algunos casos, como en el caso de propiedades o espacios de nombres.
Compatibilidad con tipos de extensión
Verified Permissions admite los tipos de extensión
Los tipos de extensión incluyen los tipos de datos de punto fijo (decimal
) y dirección IP (ipaddr
).
JSONFormato Cedar para entidades
En este momento, los permisos verificados requieren que pase la lista de entidades que se van a tener en cuenta en una solicitud de autorización utilizando la estructura definida para ellos EntitiesDefinition, que es una matriz de EntityItemelementos. Actualmente, Verified Permissions no permite aprobar la lista de entidades que deben tenerse en cuenta en una solicitud de autorización en JSONformato Cedar
Definición de grupos de acción
Los métodos de autorización de Cedar requieren una lista de las entidades que se deben tener en cuenta al evaluar una solicitud de autorización con respecto a las políticas.
Puede definir las acciones y los grupos de acciones que utiliza su aplicación en el esquema. Sin embargo, Cedar no incluye el esquema como parte de una solicitud de evaluación. En su lugar, Cedar usa el esquema solo para validar las políticas y las plantillas de políticas que envíe. Dado que Cedar no hace referencia al esquema durante las solicitudes de evaluación, incluso si ha definido grupos de acción en el esquema, también debe incluir la lista de todos los grupos de acciones como parte de la lista de entidades que debe pasar a las API operaciones de autorización.
Verified Permissions lo hace por usted. Todos los grupos de acciones que defina en su esquema se anexan automáticamente a la lista de entidades que pase como parámetro de las operaciones IsAuthorized
o IsAuthorizedWithToken
.
Formato de entidades
El JSON formato de las entidades en Verified Permissions difiere del de Cedar en los siguientes aspectos:
-
En los permisos verificados, un JSON objeto debe tener todos sus pares clave-valor incluidos en un JSON objeto con el nombre de.
Record
-
Una JSON lista de permisos verificados debe estar agrupada en un par JSON clave-valor en el que el nombre de la clave sea
Set
y el valor sea la lista original JSON de Cedar. -
String
En el casoLong
de los nombresBoolean
de tipo y de tipo, cada par clave-valor de Cedar se sustituye por un JSON objeto en Verified Permissions. El nombre del objeto es el nombre de la clave original. Dentro del JSON objeto, hay un par clave-valor en el que el nombre de la clave es el nombre de tipo del valor escalar (String
,Long
, oBoolean
) y el valor es el valor de la entidad Cedar. -
El formato de la sintaxis de las entidades de Cedar y Verified Permissions difiere en los siguientes aspectos:
Formato de Cedar Formato de Verified Permissions uid
Identifier
type
EntityType
id
EntityId
attrs
Attributes
parents
Parents
ejemplo - Listas
Los siguientes ejemplos muestran cómo se expresa una lista de entidades en Cedar y Verified Permissions, respectivamente.
ejemplo - Evaluación de políticas
Los siguientes ejemplos muestran cómo se formatean las entidades para evaluar una política en una solicitud de autorización en Cedar y Verified Permissions, respectivamente.
Límites de longitud y tamaño
Verified Permissions admite el almacenamiento en forma de almacenes de políticas para almacenar esquemas, políticas y plantillas de políticas. Ese almacenamiento hace que Verified Permissions imponga algunos límites de longitud y tamaño que no son relevantes para Cedar.
Objeto | Límite de Verified Permissions (en bytes) | Límite de Cedar |
---|---|---|
Tamaño de la política¹ | 10 000 | Ninguna |
Descripción de la política insertada | 150 | No aplicable a Cedar |
Tamaño de la plantilla de política | 10 000 | Ninguna |
Tamaño del esquema | 100 000 | Ninguna |
Tipo de identidad | 200 | Ninguna |
ID de política | 64 | Ninguna |
ID de plantilla de política | 64 | Ninguna |
ID de la identidad | 200 | Ninguna |
ID del almacén de políticas | 64 | No aplicable a Cedar |
¹ Existe un límite de políticas por almacén de políticas en Verified Permissions en función del tamaño combinado de las entidades principales, las acciones y los recursos de las políticas creadas en el almacén de políticas. El tamaño total de todas las políticas pertenecientes a un único recurso no puede superar los 200 000 bytes. En el caso de las políticas vinculadas a plantillas, el tamaño de la plantilla de política se cuenta solo una vez, más el tamaño de cada conjunto de parámetros utilizado para crear una instancia de cada política vinculada a una plantilla.