View a markdown version of this page

Usa un AgentCore gateway con policy in AgentCore - Amazon Bedrock AgentCore

Usa un AgentCore gateway con policy in AgentCore

Segui la guida all'autorizzazione e all'autenticazione del gateway per ottenere le credenziali necessarie per l'accesso al gateway.

Solo strumenti MCP

La valutazione delle politiche si applica solo agli strumenti MCP. Indipendentemente dalla modalità di valutazione delle politiche, il gateway consente sempre i prompt MCP (prompts/list,prompts/get) e le risorse (resources/list,,). resources/read resources/templates/list

Elenca gli strumenti AgentCore Gateway con Policy in AgentCore

L'elenco degli strumenti viene considerato come una metaazione. Quando un principale elenca gli strumenti disponibili, il motore delle politiche non valuta il contesto completo della chiamata di uno strumento specifico (ad esempio, i parametri di input).

Un preside può visualizzare nell'elenco solo gli strumenti che sarebbe autorizzato a chiamare in base alla politica. Poiché il contesto completo di una chiamata allo strumento non è disponibile durante l'inserimento nell'elenco, ciò significa che un committente può elencare uno strumento se esiste una serie di circostanze in cui una chiamata a tale strumento sarebbe consentita.

Di conseguenza, uno strumento che compare nell'elenco non garantisce l'autorizzazione di una successiva chiamata a tale strumento. La decisione di autorizzazione per una chiamata effettiva dello strumento viene valutata separatamente utilizzando il contesto completo della richiesta, inclusi i parametri di input.

Selezionate uno dei seguenti metodi:

Esempio
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 risposta restituisce solo gli strumenti che le tue politiche ti consentono di visualizzare. Gli strumenti che sono negati dalle politiche non verranno visualizzati nell'elenco.

Chiama gli strumenti del gateway con policy

Effettua chiamate strumentali verso il tuo gateway. La valutazione delle politiche determina se la chiamata è consentita o rifiutata.

Seleziona uno dei seguenti metodi:

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

Risposte politiche

Quando una politica consente la richiesta:

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

Quando una politica rifiuta la richiesta:

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