Entender las políticas de Cedar
Policy AgentCore utiliza las políticas de Cedar para controlar el acceso a las herramientas de AgentCore Gateway. En esta sección se explica la estructura de las políticas de Cedar, la semántica de la evaluación y los conceptos clave.
Temas
Ejemplo de política de
Considere una herramienta de procesamiento de reembolsos con los siguientes requisitos:
-
Solo el usuario «John» puede procesar los reembolsos
-
Los reembolsos están limitados a 500$ o menos
La política de Cedar que exige estos requisitos:
permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:your-region:your-account-id:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "John" && context.input.amount < 500 };
Esta política permite procesar el reembolso solo cuando el usuario es «John» y el importe del reembolso es inferior a 500$.
Estructura de la política
Las políticas de Cedar constan de tres componentes principales:
-
Efecto: determina si se permite o deniega el acceso (
permitoforbid) -
Alcance: especifica el principal, la acción y el recurso a los que se aplica la política
-
Condición: define una lógica adicional que debe cumplirse (
whenounless) y puede hacer referencia a los parámetros de la herramienta (a través del contexto) y al token de OAuth (a través de las etiquetas)
Efectos de las políticas
Las políticas de Cedar utilizan dos efectos para controlar el acceso:
-
permit- Permite continuar con la acción -
forbid- Niega la acción
Denegación predeterminada
Todas las acciones se deniegan por defecto. Si ninguna política coincide con la solicitud, Cedar devuelve DENY. Debe escribir explícitamente las políticas de permisos para permitir las acciones.
Evaluación de autorizaciones
Cedar utiliza un modelo de evaluación de permisos cuya anulación está prohibida:
-
Cedar evalúa todas las políticas que se aplican a la solicitud
-
Si alguna política de prohibición coincide, el resultado es DENEGAR
-
Si al menos una política de permisos coincide y ninguna política de prohibición coincide, el resultado es ALLOW
-
Si ninguna política coincide, el resultado es DENEGAR (denegación predeterminada)
Independencia de las políticas
Cada política de Cedar se evalúa de forma independiente. La evaluación de una política depende únicamente de:
-
El alcance (principal, acción, recurso)
-
El contexto y las etiquetas
Las políticas no hacen referencia a otras políticas ni dependen de ellas.
Algoritmo de evaluación de políticas
Cuando se evalúa una solicitud, el motor de políticas determina la decisión de autorización mediante el siguiente algoritmo:
-
Si alguna
forbidpolítica coincide con la solicitud, la decisión es DENEGAR. -
Si ninguna
forbidpolítica coincide con la solicitud y al menos unapermitde ellas coincide, la decisión es PERMITIR. -
Si ninguna de
forbidlaspermitpolíticas coincide con la solicitud, la decisión es DENEGAR.
Este modelo de evaluación aplica una postura de denegación predeterminada.
Una forbid política nunca puede dar lugar a una decisión de ALLOW. La unless cláusula de una forbid política especifica las condiciones en las que esa forbid política no se aplica; no concede permisos ni anula una permit política coincidente.