View a markdown version of this page

Gunakan AgentCore Gateway dengan Kebijakan di AgentCore - Batuan Dasar Amazon AgentCore

Gunakan AgentCore Gateway dengan Kebijakan di AgentCore

Ikuti panduan otorisasi dan otentikasi gateway untuk mendapatkan kredensional yang diperlukan untuk akses gateway.

Hanya alat MCP

Evaluasi kebijakan hanya berlaku untuk alat MCP. Terlepas dari mode evaluasi kebijakan, gateway selalu memungkinkan permintaan MCP (prompts/list,prompts/get) dan sumber daya (resources/list,resources/read,resources/templates/list).

Daftar Alat AgentCore Gateway dengan Kebijakan di AgentCore

Daftar alat diperlakukan sebagai tindakan meta. Ketika prinsipal mencantumkan alat yang tersedia, mesin kebijakan tidak mengevaluasi konteks lengkap dari pemanggilan alat tertentu (misalnya, parameter input).

Seorang kepala sekolah hanya diizinkan untuk melihat alat dalam daftar yang akan diizinkan untuk dihubungi oleh kebijakan. Karena konteks lengkap panggilan alat tidak tersedia selama daftar, ini berarti prinsipal diizinkan untuk membuat daftar alat jika ada serangkaian keadaan di mana panggilan ke alat itu akan diizinkan.

Akibatnya, alat yang muncul dalam daftar tidak menjamin bahwa panggilan berikutnya ke alat itu akan diotorisasi. Keputusan otorisasi untuk pemanggilan alat aktual dievaluasi secara terpisah menggunakan konteks permintaan lengkap, termasuk parameter input.

Pilih salah satu metode berikut:

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

    Respons hanya menampilkan alat yang dapat dilihat oleh kebijakan Anda. Alat yang ditolak oleh kebijakan tidak akan muncul dalam daftar.

Alat gateway panggilan dengan kebijakan

Lakukan panggilan alat ke gateway Anda. Evaluasi kebijakan menentukan apakah panggilan diizinkan atau ditolak.

Pilih salah satu metode berikut:

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

Tanggapan kebijakan

Saat kebijakan mengizinkan permintaan:

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

Ketika kebijakan menolak permintaan:

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