View a markdown version of this page

Use um AgentCore gateway com política em AgentCore - Amazon Bedrock AgentCore

Use um AgentCore gateway com política em AgentCore

Siga o guia de autorização e autenticação do gateway para obter as credenciais necessárias para o acesso ao gateway.

Somente ferramentas MCP

A avaliação de políticas se aplica somente às ferramentas MCP. Independentemente do modo de avaliação da política, o gateway sempre permite solicitações (prompts/list,prompts/get) e recursos do MCP (resources/list,resources/read,resources/templates/list).

Listar ferramentas de AgentCore gateway com política em AgentCore

A listagem de ferramentas é tratada como uma meta ação. Quando um principal lista as ferramentas disponíveis, o mecanismo de política não avalia o contexto completo de uma invocação de ferramenta específica (por exemplo, parâmetros de entrada).

O diretor só pode ver ferramentas na listagem para as quais ele teria permissão para ligar de acordo com a política. Como o contexto completo de uma chamada de ferramenta não está disponível durante a listagem, isso significa que o principal pode listar uma ferramenta se existir algum conjunto de circunstâncias sob as quais uma chamada para essa ferramenta seria permitida.

Como resultado, uma ferramenta que aparece na lista não garante que uma chamada subsequente para essa ferramenta seja autorizada. A decisão de autorização para uma invocação real da ferramenta é avaliada separadamente usando o contexto completo da solicitação, incluindo parâmetros de entrada.

Selecione um dos seguintes métodos:

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

    A resposta retorna somente as ferramentas que suas políticas permitem que você veja. As ferramentas que são negadas pelas políticas não aparecerão na lista.

Ferramentas de gateway de chamadas com política

Faça chamadas de ferramentas para seu gateway. A avaliação da política determina se a chamada é permitida ou negada.

Selecione um dos seguintes métodos:

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

Respostas políticas

Quando uma política permite a solicitação:

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

Quando uma política nega a solicitação:

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