View a markdown version of this page

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

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan AgentCore Gateway dengan Kebijakan di AgentCore

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

Hanya alat MCP

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

Daftar AgentCore Alat 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 diizinkan untuk mereka hubungi berdasarkan kebijakan. Karena konteks lengkap panggilan alat tidak tersedia selama daftar, ini berarti kepala sekolah 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 mengembalikan alat yang memungkinkan Anda melihat 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))

Meneruskan ID sesi kebijakan untuk kebijakan temporal

Untuk mengaktifkan evaluasi kebijakan temporal, sertakan x-amzn-bedrock-agentcore-policy-session-id header dalam permintaan Anda. Ini mengelompokkan beberapa pemanggilan ke dalam satu sesi untuk penegakan kebijakan sadar sesi.

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

Gateway tidak menghasilkan ID sesi atas nama Anda. Anda harus membuat ID sesi dan mengirimkannya pada setiap permintaan, dimulai dengan permintaan pertama Anda. Jika Anda menghilangkan header, atau mengirim nilai kosong, Gateway tidak membuat sesi. Jika mesin kebijakan terkait berisi kebijakan temporal, permintaan tanpa ID sesi gagal dengan kesalahan validasi. Kirim ID yang sama dengan setiap permintaan dalam sesi yang sama.

Tanggapan kebijakan

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