View a markdown version of this page

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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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 del AgentCore gateway con policy in AgentCore

L'elenco degli strumenti viene considerato una meta azione. Quando un principale elenca gli strumenti disponibili, il policy engine non valuta il contesto completo di una specifica chiamata allo strumento (ad esempio, i parametri di input).

Un responsabile può visualizzare nell'elenco solo gli strumenti che sarebbe autorizzato a richiamare in base alla politica. Poiché il contesto completo di una chiamata allo strumento non è disponibile durante la quotazione, ciò significa che un mandante 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 l'effettiva chiamata dello strumento viene valutata separatamente utilizzando il contesto completo della richiesta, inclusi i parametri di input.

Seleziona 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 negati dalle policy non verranno visualizzati nell'elenco.

Chiama gli strumenti del gateway con policy

Effettua chiamate agli strumenti verso il tuo gateway. La valutazione delle policy determina se la chiamata è consentita o negata.

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

Passaggio dell'ID di sessione della politica per le politiche temporali

Per abilitare la valutazione temporale delle politiche, includi l'x-amzn-bedrock-agentcore-policy-session-idintestazione nelle tue richieste. Questo raggruppa più invocazioni in un'unica sessione per l'applicazione delle policy in base alla sessione.

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

Il Gateway non genera un ID di sessione per conto dell'utente. È necessario generare l'ID di sessione e inviarlo per ogni richiesta, a partire dalla prima richiesta. Se si omette l'intestazione o si invia un valore vuoto, il Gateway non stabilisce una sessione. Se il motore di policy associato contiene una policy temporale, le richieste senza un ID di sessione hanno esito negativo e viene generato un errore di convalida. Invia lo stesso ID per ogni richiesta nella stessa sessione.

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