View a markdown version of this page

Use um AgentCore gateway com política em AgentCore - Base da Amazônia AgentCore

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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 de MCP (prompts/list,prompts/get) e recursos (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 diretor lista as ferramentas disponíveis, o mecanismo de política não avalia o contexto completo da invocação de uma ferramenta específica (por exemplo, parâmetros de entrada).

O diretor só pode ver na lista as ferramentas para as quais ele poderia 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 diretor pode listar uma ferramenta se houver algum conjunto de circunstâncias em que uma chamada para essa ferramenta seja 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 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))

Passando o ID da sessão de política para políticas temporais

Para ativar a avaliação da política temporal, inclua o x-amzn-bedrock-agentcore-policy-session-id cabeçalho em suas solicitações. Isso agrupa várias invocações em uma única sessão para a aplicação de políticas com reconhecimento de sessão.

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

O Gateway não gera um ID de sessão em seu nome. Você deve gerar o ID da sessão e enviá-lo em cada solicitação, começando com sua primeira solicitação. Se você omitir o cabeçalho ou enviar um valor vazio, o Gateway não estabelecerá uma sessão. Se o mecanismo de política associado contiver uma política temporal, as solicitações sem um ID de sessão falharão com um erro de validação. Envie o mesmo ID com todas as solicitações na mesma sessão.

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