View a markdown version of this page

Ejemplos de políticas para la memoria - Base amazónica AgentCore

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.

Ejemplos de políticas para la memoria

En esta página se muestran los patrones de política de Cedar que son específicos de Amazon Bedrock AgentCore Memory, es decir, aislar a la persona que llama según su propio actor, su propio espacio de nombres y un conjunto de operaciones de memoria elegido. Para ver los context.input campos e identificadores de acciones de memoria a los que hacen referencia estas políticas, consulte Acciones de memoria y atributos de solicitud. Para ver el modelo genérico de Cedar y una biblioteca más amplia de patrones (comprobaciones del alcance y las funciones de OAuth, la comparación de los principales de IAM, la validación de entradas y la validación de las entradas)unless, consulte Comprender las políticas de Cedar y las políticas de ejemplo. forbid

Añades cada política de Cedar al motor de políticas de tu gateway junto con la CreatePolicy operación, pasando la declaración de Cedar como política. definition Para ver la secuencia de configuración, consulte Configurar un control de acceso detallado para la memoria.

En cada ejemplo de Cedar, sustitúyalo <target-name> por el nombre de destino del conector y <gw-arn> por el ARN de la puerta de enlace.

Per-user aislamiento: el actOrID debe ser igual al sujeto de JWT

Permite que un usuario de OAuth acceda a una sesión solo cuando la solicitud sea igual a su solicitud de actorId JWT. sub Este es el patrón principal de aislamiento de Memory por usuario: cada usuario solo puede acceder a los datos de su propio actor.

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("sub") && context has input && context.input has actorId && context.input.actorId == principal.getTag("sub") };

Aislamiento del espacio de nombres: la persona que llama solo puede recuperar registros en su propio espacio de nombres

Esta política permite que una persona que llama con OAuth recupere registros de memoria solo cuando la solicitud namespacePath coincide con la ruta del espacio de nombres de la persona que llama, incluida en una reclamación de token.

Cedar no admite la concatenación de cadenas; el + operador solo se aplica a los operandos enteros y los patrones comodín deben ser cadenas literales. like Por lo tanto, no puedes crear un valor de espacio de nombres a partir de una afirmación incluida en la política (por ejemplo, si Cedar no es válida). ("/actors/" + principal.getTag("sub") + "/") En su lugar, pide a tu proveedor de identidad que emita una reclamación que contenga la ruta completa del espacio de nombres de la persona que llama, la asigne a una etiqueta principal y namespacePath compárala con esa etiqueta. En este ejemplo, el token proporciona una namespace afirmación que contiene la ruta del espacio de nombres de la persona que llama (por ejemplo). /actors/<sub>/

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("namespace") && context has input && context.input has namespacePath && context.input.namespacePath == principal.getTag("namespace") };

Alcance de la acción: permite solo un conjunto de operaciones de memoria

Conceda una lista fija de operaciones de memoria; por ejemplo, permita enumerar eventos y recuperar registros, pero nada más. Agrupe varias acciones de memoria conaction in […​]; no se admiten los caracteres comodín de tipo action-id.

permit( principal, action in [ AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve" ], resource == AgentCore::Gateway::"<gw-arn>" );

Para garantizar que solo se pueda acceder a la memoria a través de la puerta de enlace, y no mediante un director que llame directamente al plano de datos de la memoria, consulte Restringir el acceso directo a la memoria.