

# Verwenden Sie ein AgentCore Gateway mit eingeschalteter Richtlinie AgentCore
<a name="use-gateway-with-policy"></a>

Folgen Sie dem Leitfaden zur Gateway-Autorisierung und Authentifizierung, um die für den Gateway-Zugriff erforderlichen Anmeldeinformationen zu erhalten.

**Nur MCP-Tools**  
Die Bewertung von Richtlinien bezieht sich nur auf MCP-Tools. Unabhängig vom Modus der Richtlinienbewertung lässt das Gateway immer MCP-Eingabeaufforderungen (`prompts/list`,`prompts/get`) und Ressourcen (,`resources/list`,`resources/read`) zu. `resources/templates/list`

**Topics**
+ [AgentCore Gateway-Tools auflisten, in denen die Richtlinie aktiviert ist AgentCore](#list-gateway-tools)
+ [Rufen Sie Gateway-Tools mit Richtlinien auf](#call-gateway-tools)
+ [Politische Antworten](#policy-responses)

## AgentCore Gateway-Tools auflisten, in denen die Richtlinie aktiviert ist AgentCore
<a name="list-gateway-tools"></a>

Die Auflistung der Tools wird als **Metaaktion** behandelt. Wenn ein Principal verfügbare Tools auflistet, bewertet die Policy-Engine nicht den vollständigen Kontext eines bestimmten Tool-Aufrufs (z. B. Eingabeparameter).

Ein Principal darf in der Liste nur Tools sehen, die er laut Richtlinie aufrufen darf. Da der vollständige Kontext eines Tool-Aufrufs während der Listung nicht verfügbar ist, bedeutet dies, dass ein Principal ein Tool auflisten darf, **wenn es eine Reihe von Umständen gibt, unter denen ein Aufruf dieses Tools zulässig wäre**.

Das bedeutet, dass ein Tool, das in der Liste erscheint, nicht garantiert, dass ein späterer Aufruf dieses Tools autorisiert wird. Die Autorisierungsentscheidung für einen tatsächlichen Werkzeugaufruf wird anhand des vollständigen Anforderungskontextes, einschließlich der Eingabeparameter, separat bewertet.

Wählen Sie eine der folgenden Methoden aus:

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

   In der Antwort werden nur die Tools zurückgegeben, die Sie anhand Ihrer Richtlinien sehen können. Tools, die aufgrund von Richtlinien verweigert werden, werden nicht in der Liste angezeigt.

## Rufen Sie Gateway-Tools mit Richtlinien auf
<a name="call-gateway-tools"></a>

Rufen Sie Ihr Gateway mit Tools auf. Bei der Bewertung der Richtlinie wird bestimmt, ob der Anruf zugelassen oder abgelehnt wird.

Wählen Sie eine der folgenden Methoden aus:

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

## Politische Antworten
<a name="policy-responses"></a>

Wenn eine Richtlinie die Anfrage zulässt:

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

Wenn eine Richtlinie die Anfrage ablehnt:

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