View a markdown version of this page

Utiliser une AgentCore passerelle avec une politique dans AgentCore - Amazon Bedrock AgentCore

Utiliser une AgentCore passerelle avec une politique dans AgentCore

Suivez le guide d'autorisation et d'authentification de la passerelle pour obtenir les informations d'identification nécessaires à l'accès à la passerelle.

Outils MCP uniquement

L'évaluation des politiques s'applique uniquement aux outils MCP. Quel que soit le mode d'évaluation des politiques, la passerelle autorise toujours les invites MCP (prompts/list,prompts/get) et les ressources (resources/list,resources/read,resources/templates/list).

AgentCore Répertorier les outils de passerelle contenant une politique AgentCore

La liste des outils est traitée comme une méta-action. Lorsqu'un principal répertorie les outils disponibles, le moteur de politiques n'évalue pas le contexte complet d'un appel d'outil spécifique (par exemple, les paramètres d'entrée).

Un directeur n'est autorisé à voir dans la liste que les outils qu'il serait autorisé à appeler conformément à la politique. Étant donné que le contexte complet d'un appel d'outil n'est pas disponible lors de la mise en vente, cela signifie qu'un principal est autorisé à répertorier un outil s'il existe un ensemble de circonstances dans lesquelles un appel à cet outil serait autorisé.

Par conséquent, un outil figurant dans la liste ne garantit pas qu'un appel ultérieur à cet outil sera autorisé. La décision d'autorisation pour un véritable appel d'outil est évaluée séparément en utilisant le contexte complet de la demande, y compris les paramètres d'entrée.

Sélectionnez l'une des méthodes suivantes :

Exemple
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 réponse renvoie uniquement les outils que vos politiques vous permettent de voir. Les outils refusés par les politiques n'apparaîtront pas dans la liste.

Outils de passerelle d'appels avec politique

Passez des appels d'outils à votre passerelle. L'évaluation des politiques détermine si l'appel est autorisé ou refusé.

Sélectionnez l'une des méthodes suivantes :

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

Réponses politiques

Lorsqu'une politique autorise la demande :

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

Lorsqu'une politique refuse la demande :

{ "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 } }