

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
<a name="use-gateway-with-policy"></a>

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`).

**Topics**
+ [Listar ferramentas de AgentCore gateway com política em AgentCore](#list-gateway-tools)
+ [Ferramentas de gateway de chamadas com política](#call-gateway-tools)
+ [Passando o ID da sessão de política para políticas temporais](#use-gateway-policy-session-id)
+ [Respostas políticas](#policy-responses)

## Listar ferramentas de AgentCore gateway com política em AgentCore
<a name="list-gateway-tools"></a>

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:

**Example**  

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

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
<a name="call-gateway-tools"></a>

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:

**Example**  

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

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
<a name="use-gateway-policy-session-id"></a>

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
<a name="policy-responses"></a>

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