View a markdown version of this page

Verwenden Sie ein AgentCore Gateway mit eingeschalteter Richtlinie AgentCore - Amazon Grundgestein AgentCore

Verwenden Sie ein AgentCore Gateway mit eingeschalteter Richtlinie AgentCore

Folgen Sie dem Leitfaden zur Gateway-Autorisierung und Authentifizierung, um die für den Gateway-Zugriff erforderlichen Anmeldeinformationen zu erhalten.

Nur MCP-Tools

Die Bewertung von Richtlinien bezieht sich nur auf MCP-Tools. Unabhängig vom Modus der Richtlinienbewertung lässt das Gateway immer MCP-Eingabeaufforderungen (prompts/list,prompts/get) und Ressourcen (,resources/list,resources/read) zu. resources/templates/list

AgentCore Gateway-Tools auflisten, in denen die Richtlinie aktiviert ist AgentCore

Die Auflistung der Tools wird als Metaaktion behandelt. Wenn ein Principal verfügbare Tools auflistet, bewertet die Policy-Engine nicht den vollständigen Kontext eines bestimmten Tool-Aufrufs (z. B. Eingabeparameter).

Ein Principal darf in der Liste nur Tools sehen, die er laut Richtlinie aufrufen darf. Da der vollständige Kontext eines Tool-Aufrufs während der Listung nicht verfügbar ist, bedeutet dies, dass ein Principal ein Tool auflisten darf, wenn es eine Reihe von Umständen gibt, unter denen ein Aufruf dieses Tools zulässig wäre.

Das bedeutet, dass ein Tool, das in der Liste erscheint, nicht garantiert, dass ein späterer Aufruf dieses Tools autorisiert wird. Die Autorisierungsentscheidung für einen tatsächlichen Werkzeugaufruf wird anhand des vollständigen Anforderungskontextes, einschließlich der Eingabeparameter, separat bewertet.

Wählen Sie eine der folgenden Methoden aus:

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

    In der Antwort werden nur die Tools zurückgegeben, die Sie anhand Ihrer Richtlinien sehen können. Tools, die aufgrund von Richtlinien verweigert werden, werden nicht in der Liste angezeigt.

Rufen Sie Gateway-Tools mit Richtlinien auf

Rufen Sie Ihr Gateway mit Tools auf. Bei der Bewertung der Richtlinie wird bestimmt, ob der Anruf zugelassen oder abgelehnt wird.

Wählen Sie eine der folgenden Methoden aus:

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

Politische Antworten

Wenn eine Richtlinie die Anfrage zulässt:

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

Wenn eine Richtlinie die Anfrage ablehnt:

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