View a markdown version of this page

Utilice una AgentCore puerta de enlace con una 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.

Utilice una AgentCore puerta de enlace con una política en AgentCore

Siga la guía de autorización y autenticación de la puerta de enlace para obtener las credenciales necesarias para acceder a la puerta de enlace.

Solo herramientas MCP

La evaluación de políticas se aplica solo a las herramientas de MCP. Independientemente del modo de evaluación de políticas, la pasarela siempre admite las instrucciones (prompts/list,prompts/get) y los recursos (resources/list,,) del MCP. resources/read resources/templates/list

Enumere las herramientas AgentCore de Gateway con la política en AgentCore

La lista de herramientas se trata como una meta acción. Cuando un director enumera las herramientas disponibles, el motor de políticas no evalúa el contexto completo de la invocación de una herramienta específica (por ejemplo, los parámetros de entrada).

Un director solo puede ver en la lista las herramientas a las que una política le permitiría utilizar. Como el contexto completo de una llamada a una herramienta no está disponible durante la publicación de la lista, esto significa que una persona principal puede incluir una herramienta en la lista si existen circunstancias en las que se permitiría hacer uso de esa herramienta.

En consecuencia, el hecho de que una herramienta aparezca en la lista no garantiza que se autorice una llamada posterior a esa herramienta. La decisión de autorización para la invocación de una herramienta real se evalúa por separado utilizando el contexto completo de la solicitud, incluidos los parámetros de entrada.

Seleccione uno de los siguientes métodos:

ejemplo
curl
  1. curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "jsonrpc": "2.0", "id": "list-tools-request", "method": "tools/list" }'
Python requests package
  1. import requests import json def list_tools(gateway_url, access_token): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}" } payload = { "jsonrpc": "2.0", "id": "list-tools-request", "method": "tools/list" } response = requests.post(gateway_url, headers=headers, json=payload) return response.json() # Example usage gateway_url = "https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp" access_token = "YOUR_ACCESS_TOKEN" tools = list_tools(gateway_url, access_token) print(json.dumps(tools, indent=2))

    La respuesta muestra solo las herramientas que tus políticas te permiten ver. Las herramientas que las políticas denieguen no aparecerán en la lista.

Herramientas de pasarela de llamadas con política

Realice llamadas desde herramientas a su puerta de enlace. La evaluación de la política determina si la llamada está permitida o denegada.

Seleccione uno de los métodos siguientes:

ejemplo
curl
  1. # Call a tool to test policy enforcement curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "jsonrpc": "2.0", "id": "test-policy", "method": "tools/call", "params": { "name": "tool_name", "arguments": {arguments} } }'
Python requests package
  1. import requests import json def call_gateway_tool(gateway_url, access_token, tool_name, arguments): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}" } payload = { "jsonrpc": "2.0", "id": "test-policy", "method": "tools/call", "params": { "name": tool_name, "arguments": arguments } } response = requests.post(gateway_url, headers=headers, json=payload) return response.json() # Example usage gateway_url = "https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp" access_token = "YOUR_ACCESS_TOKEN" result = call_gateway_tool( gateway_url, access_token, "RefundTool___process_refund", { "orderId": "12345", "amount": 450, "reason": "Defective product" } ) print(json.dumps(result, indent=2))

Pasar el identificador de sesión de políticas para las políticas temporales

Para habilitar la evaluación temporal de políticas, incluya el x-amzn-bedrock-agentcore-policy-session-id encabezado en las solicitudes. Esto agrupa varias invocaciones en una sola sesión para aplicar las políticas en función de la sesión.

curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "x-amzn-bedrock-agentcore-policy-session-id: YOUR_SESSION_ID" \ -d '{ "jsonrpc": "2.0", "id": "test-temporal-policy", "method": "tools/call", "params": { "name": "tool_name", "arguments": {arguments} } }'

The Gateway no genera un identificador de sesión en su nombre. Debe generar el ID de sesión y enviarlo en cada solicitud, empezando por la primera. Si omite el encabezado o envía un valor vacío, la puerta de enlace no establece una sesión. Si el motor de políticas asociado contiene una política temporal, las solicitudes sin un identificador de sesión fallan y se produce un error de validación. Envía el mismo ID en todas las solicitudes de la misma sesión.

Respuestas en materia de políticas

Cuando una política permite la solicitud:

{ "jsonrpc": "2.0", "id": 2, "result": { "isError": false, "content": [ { "type": "text", "text": "ToolResult" } ] } }

Cuando una política deniega la solicitud:

{ "jsonrpc": "2.0", "id": 2, "result": { "content": [ { "type": "text", "text": "AuthorizeActionException - Tool Execution Denied: Tool call not allowed due to policy enforcement [No policy applies to the request (denied by default).]" } ], "isError": true } }