View a markdown version of this page

Cómo empezar a usar la política en AgentCore - 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.

Cómo empezar a usar la política en AgentCore

En este tutorial, aprenderá a configurar la política AgentCore e integrarla en un Amazon Bedrock AgentCore Gateway mediante la AgentCore CLI. Creará una herramienta de procesamiento de reembolsos con políticas de Cedar que hagan cumplir las normas empresariales sobre los montos de los reembolsos.

Requisitos previos

Antes de empezar, asegúrate de disponer de lo siguiente:

  • AWS Cuenta con credenciales configuradas. Para configurar las credenciales, puede instalar y usar la interfaz de línea de AWS comandos siguiendo los pasos que se indican en Primeros pasos con la AWS CLI.

  • Node.js Más de 20 instalados

  • Permisos de IAM para crear roles, funciones de Lambda, motores de políticas y usar Amazon Bedrock AgentCore

  • Función de Lambda que procesa las solicitudes de reembolso. Puedes usar una función existente o crear una para este tutorial. Anote la función ARN para usarla en el paso 2.

La AgentCore CLI comprueba la pila de arranque del CDK durante la implementación. Si se requiere el arranque, la implementación interactiva solicita una confirmación. agentcore deploy --yesUtilícelo para autorizarlo automáticamente.

Paso 1: Configurar e instalar

Instale la AgentCore CLI:

npm install -g @aws/agentcore

Cree un AgentCore proyecto nuevo:

ejemplo
AgentCore CLI
  1. agentcore create --name PolicyDemo --language Python --framework Strands \ --model-provider Bedrock --memory none cd PolicyDemo

    Estas opciones crean un agente de Python Strands que utiliza Amazon Bedrock y no tiene memoria. El cd comando pasa al directorio del proyecto, donde se deben ejecutar los comandos subsiguientes.

Interactive
  1. También puede ejecutar agentcore create sin marcas para utilizar el asistente interactivo. El asistente lo guía para seleccionar el nombre del proyecto, el marco del agente, el proveedor de modelos y otras opciones. Tras la creación del proyecto, cámbiese al directorio del proyecto con cd PolicyDemo.

Paso 2: Agregue una puerta de enlace con un motor de políticas

Use la AgentCore CLI para agregar una puerta de enlace, un objetivo de función de Lambda y un motor de políticas a su proyecto.

Agregue una puerta de enlace

Crea una puerta de enlace sin autorización de entrada (para simplificar este tutorial) y adjunta a ella a tu agente:

ejemplo
AgentCore CLI
  1. agentcore add gateway --name PolicyGateway --authorizer-type NONE --runtimes PolicyDemo
Interactive
  1. Ejecute agentcore para abrir la TUI y, a continuación, seleccione agregar y elija Gateway:

  2. Introduzca el nombre de la puerta de enlace:

    Asistente de puerta de enlace: introduzca el nombre
  3. Seleccione el tipo de autorizador. Para este tutorial, elige NINGUNO:

    Asistente de puerta de enlace: seleccione NONE (autorizador)
  4. Configure las opciones avanzadas o acepte las predeterminadas:

    Asistente de puerta de enlace: configuración avanzada
  5. Revise la configuración y pulse Entrar para confirmar:

    Asistente de puerta de enlace: revise la configuración

Agregue un objetivo de función de Lambda con una herramienta de reembolso

Registra tu función Lambda como objetivo de pasarela con un esquema de herramientas que defina una herramienta de procesamiento de reembolsos. Cree un refund_tools.json archivo en el directorio de su proyecto con el siguiente contenido:

[ { "name": "process_refund", "description": "Process a customer refund request for a given dollar amount", "inputSchema": { "type": "object", "description": "Input for processing a refund", "properties": { "amount": { "type": "integer", "description": "The refund amount in dollars" } }, "required": ["amount"] } } ]
ejemplo
AgentCore CLI
  1. agentcore add gateway-target --name RefundTarget --type lambda-function-arn \ --lambda-arn ++<YOUR_LAMBDA_ARN>++ \ --tool-schema-file refund_tools.json \ --gateway PolicyGateway

    <YOUR_LAMBDA_ARN>Sustitúyalo por el ARN de la función de Lambda. El refund_tools.json archivo define el esquema de herramientas para la herramienta de reembolsos.

Interactive
  1. Ejecute agentcore para abrir la TUI y, a continuación, seleccione agregar y elija Gateway Target:

  2. Introduzca el nombre del objetivo.

  3. Seleccione la función Lambda como tipo de objetivo:

    Asistente de objetivos de Gateway: seleccione la función Lambda
  4. Introduzca el ARN de Lambda y la ruta del archivo del esquema de la herramienta y, a continuación, confirme.

Agregue un motor de políticas

Cree un motor de políticas y adjúntelo a la puerta de enlace en modo ENFORCE:

ejemplo
AgentCore CLI
  1. agentcore add policy-engine --name RefundPolicyEngine \ --attach-to-gateways PolicyGateway \ --attach-mode ENFORCE
Interactive
  1. Ejecute agentcore para abrir la TUI y, a continuación, seleccione agregar y elija Policy Engine:

  2. Introduzca el nombre del motor de políticas:

    Asistente del motor de políticas: introduzca el nombre
  3. Seleccione las puertas de enlace a las que desea conectar el motor de políticas:

    Asistente del motor de políticas: adjunte las puertas de enlace
  4. Elija el modo de aplicación. Selecciona ENFORCE:

    Asistente del motor de políticas: seleccione el modo de aplicación

Crea una política de Cedar

Proporcione un archivo de política de Cedar directamente. Cedar no permite incluir recursos comodín en las declaraciones de política. Esto requiere una implementación en dos fases: primero, despliéguela sin la política para crear la puerta de enlace y, a continuación, recupere el ARN de la puerta de enlace. A continuación, agregue la política y vuelva a implementarla.

  1. Implemente primero la puerta de enlace (consulte el paso 3: Implementar) y, a continuación, ejecute agentcore status para obtener el ARN de la puerta de enlace.

  2. Cree un refund_policy.cedar archivo en el directorio de su proyecto y sustituya el ARN de la puerta de enlace del paso anterior:

    permit(principal, action == AgentCore::Action::"RefundTarget___process_refund", resource == AgentCore::Gateway::"<gateway-arn>") when { context.input.amount < 1000 };
  3. Agregue la política y vuelva a implementar:

    agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --source refund_policy.cedar agentcore deploy

Como alternativa, después de implementar sus recursos en el paso 3, puede generar una política de Cedar a partir de una descripción en lenguaje natural:

agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --generate "Only allow refunds under 1000 dollars" \ --gateway PolicyGateway

La --generate bandera requiere que primero se implemente la puerta de enlace, ya que llama a una AWS API que necesita el ARN de la puerta de enlace para convertir el lenguaje natural en Cedar. Este enfoque resuelve automáticamente los ARN de la puerta de enlace, lo que lo convierte en la ruta más sencilla para crear políticas.

Comprender la configuración

Los comandos de la CLI anteriores configuran varios recursos de su AgentCore proyecto. Esta es una explicación detallada de cada componente.

Crea una puerta de enlace

El comando agentcore add gateway crea una puerta de enlace que actúa como punto final del servidor MCP. La configuración --authorizer-type NONE desactiva la autorización entrante para simplificar este tutorial. En producción, usa la autorización de IAM o JWT para proteger tu puerta de enlace.

Agregue un objetivo Lambda

El comando agentcore add gateway-target registra una función Lambda como destino en la puerta de enlace. El archivo de esquema de la herramienta define las entradas que los agentes pueden transferir a la función, como el importe de un reembolso.

Cree un motor de políticas

El comando agentcore add policy-engine crea un motor de políticas, un conjunto de políticas de Cedar que evalúa y autoriza las llamadas a las herramientas de los agentes. El motor de políticas intercepta todas las solicitudes en el límite de la puerta de enlace y determina si se permite o deniega cada acción en función de las políticas definidas. Esto proporciona una autorización determinista fuera del código del agente, lo que garantiza una aplicación de seguridad coherente independientemente de cómo se implemente el agente.

Cree una política de cedro

Cedar es un lenguaje de políticas de código abierto desarrollado AWS para redactar políticas de autorización. El comando agentcore add policy crea una política de Cedar que rige las llamadas a las herramientas a través de la pasarela. Puede generar una política a partir de una descripción en lenguaje natural usando --generate o proporcionar un archivo de política de Cedar directamente usando. --source

El siguiente es un ejemplo de una política de Cedar que permite reembolsos inferiores a 1000 USD:

permit(principal, action == AgentCore::Action::"RefundTarget___process_refund", resource == AgentCore::Gateway::"<gateway-arn>") when { context.input.amount < 1000 };

La política utiliza:

  • permit— Permite la acción (Cedar también forbid permite denegar acciones)

  • principal— La entidad que realiza la solicitud

  • action— La herramienta específica a la que se llama (RefundTarget___process_refund)

  • resource— La instancia de pasarela en la que se aplica la política

  • whencondición: requisitos adicionales (el importe debe ser inferior a 1000 USD)

Adjunte la política a Gateway

Los --attach-mode ENFORCE indicadores --attach-to-gateways y del comando agentcore add policy-engine conectan el motor de políticas a la puerta de enlace en modo ENFORCE. En este modo:

  • Cada llamada a la herramienta se intercepta y se evalúa en relación con todas las políticas

  • De forma predeterminada, se deniegan todas las acciones a menos que se permitan de forma explícita

  • Si alguna forbid política coincide, se deniega el acceso (semántica de prohibir-gana)

  • Las decisiones políticas se registran CloudWatch para su supervisión y cumplimiento

Esto garantiza que todas las operaciones de los agentes a través de la puerta de enlace se rijan por sus políticas de seguridad.

Paso 3: Implementar

Despliegue todos los recursos para AWS:

agentcore deploy

La AgentCore CLI crea la puerta de enlace, registra el objetivo de Lambda y aprovisiona el motor de políticas. Si proporcionó un archivo de políticas de ARN-based Cedar, agréguelo después de esta implementación y vuelva a ejecutar agentcore deploy para adjuntarlo. Este proceso tarda aproximadamente de 2 a 3 minutos por implementación.

Una vez completada la implementación, puede verificar el estado de sus recursos:

agentcore status

Paso 4: Probar la política

Pruebe la política enviando solicitudes a la puerta de enlace. Como la puerta de enlace usa--authorizer-type NONE, puedes enviar solicitudes directamente con curl.

La URL de la puerta de enlace que se muestra en la salida del estado de agentcore es el punto final base. Las solicitudes de MCP van a la /mcp ruta de ese punto final, así que agréguelas /mcp a la URL antes de enviar las solicitudes.

Prueba 1: reembolso de 500 USD (debería estar permitido)

El importe del reembolso de 500 USD está por debajo del límite de 1000 USD, por lo que el motor de políticas permite la solicitud:

curl -X POST ++<GATEWAY_URL>++/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":500}}}'

Prueba 2: reembolso de 2000 USD (debería denegarse)

El importe del reembolso de 2000 USD supera el límite de 1000 USD, por lo que el motor de políticas rechaza la solicitud:

curl -X POST ++<GATEWAY_URL>++/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":2000}}}'
nota

<GATEWAY_URL>Sustitúyala por la URL de la puerta de enlace que aparece en el resultado del estado de agentcore y, a continuación, añádela. /mcp

Lo que has creado

A través de este tutorial, has creado:

  • MCP Server (Gateway): un punto final administrado para herramientas

  • Lambda target: una herramienta de procesamiento de reembolsos registrada en la pasarela

  • Motor de políticas: sistema Cedar-based de evaluación de políticas

  • Política Cedar: norma de gobernanza que permite reembolsos inferiores a 1000 USD

Resolución de problemas

Si tiene problemas durante la configuración o las pruebas, consulte los siguientes problemas y soluciones comunes:

Problema Solución

"AccessDeniedException"

Compruebe los permisos de IAM para bedrock-agentcore: *

Gateway no responde

Espere entre 30 y 60 segundos después de la implementación para que se propague el DNS

La implementación falla

Ejecute agentcore status para comprobar el estado de los recursos y revisar los mensajes de error

La política no se aplica

Compruebe que el motor de políticas esté conectado en modo ENFORCE ejecutando agentcore status

Error de validación de Cedar durante la implementación

Las políticas de Cedar deben usar ARN de recursos específicos; los recursos comodín (por ejemplo,permit(principal, action, resource);) se rechazan. Usa el ARN de gateway del estado de agentcore en el campo de tu póliza de Cedar. resource

La llamada a la herramienta se rechazó inesperadamente

El motor de políticas está en vigor y la política de Cedar ha denegado la solicitud. Verifique que la política action y los resource campos coincidan con la llamada a la herramienta que se está realizando.

La implementación falla debido a un error de validación de la política

El modo de validación predeterminado FAIL_ON_ANY_FINDINGS ejecuta tanto las comprobaciones del esquema como la validación semántica, y rechaza la política si alguna de ellas arroja resultados. Puedes configurar el modo de validación IGNORE_ALL_FINDINGS para que solo ejecute comprobaciones de esquema si no necesitas la validación semántica. Para la producción, corrija la política de Cedar para pasar tanto las comprobaciones de esquema como la validación semántica.

Limpieza

Para eliminar los recursos creados en este tutorial, elimine tanto la puerta de enlace como el motor de políticas y, a continuación, vuelva a implementar:

agentcore remove gateway --name PolicyGateway agentcore remove policy-engine --name RefundPolicyEngine agentcore deploy

La eliminación de una puerta de enlace no elimina automáticamente su motor de políticas adjunto. Debe eliminar el motor de políticas por separado medianteagentcore remove policy-engine.