View a markdown version of this page

Utilice una AgentCore puerta de enlace con una política en AgentCore - Amazon Bedrock AgentCore

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 el acceso a la puerta de enlace.

Solo herramientas MCP

La evaluación de políticas se aplica únicamente a las herramientas de MCP. Independientemente del modo de evaluación de políticas, la pasarela siempre admite las solicitudes (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 metaacció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).

El director solo puede ver las herramientas de la lista a las que, en virtud de una política, estaría autorizado a utilizar. Dado que el contexto completo de una llamada a una herramienta no está disponible durante el proceso de publicación, esto significa que el director puede incluir una herramienta en la lista si existe alguna serie de circunstancias en las que estaría permitida la utilización de esa herramienta.

En consecuencia, una herramienta que 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 real de una herramienta 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 devuelve solo las herramientas que sus políticas le permiten ver. Las herramientas rechazadas por las políticas no aparecerán en la lista.

Herramientas de pasarela de llamadas con política

Realice llamadas desde las 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 siguientes métodos:

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))

Respuestas 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 } }