View a markdown version of this page

Flux d'autorisation - Amazon Bedrock AgentCore

Flux d'autorisation

Amazon Bedrock AgentCore Gateway évalue les politiques de Cedar par rapport aux demandes entrantes. Cette section explique comment les informations d'autorisation sont transmises de la demande à l'évaluation des politiques.

Traitement des demandes

Amazon Bedrock AgentCore Gateway traite deux informations clés pour chaque demande :

  1. JWT Token - Contient des allégations OAuth concernant l'utilisateur :

    { "sub": "12345678-1234-1234-1234-123456789012", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "username": "refund-agent", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" }
  2. Demande d'appel à l'outil MCP - L'invocation réelle de l'outil :

    { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "RefundTool___process_refund", "arguments": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

Demande d'autorisation de Cedar

La passerelle extrait les informations des deux sources et élabore une demande d'autorisation Cedar.

Demande d'autorisation complète :

{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"RefundTool___process_refund\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway\"", "context": { "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

Composants :

Principal

Créé à partir de la sous-réclamation du jeton JWT :

AgentCore::OAuthUser::"12345678-1234-1234-1234-123456789012"
Action

Extrait du nom de l'outil :

AgentCore::Action::"RefundTool___process_refund"
Ressource

L'instance Gateway :

AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
Contexte

Contient les arguments de l'outil :

{ "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } }

Entity Store - Les réclamations JWT sont stockées sous forme de balises sur l' OAuthUser entité :

{ "uid": { "type": "AgentCore::OAuthUser", "id": "12345678-1234-1234-1234-123456789012" }, "attrs": { "id": "12345678-1234-1234-1234-123456789012" }, "tags": { "username": "refund-agent", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" } }

Évaluation des politiques

Cedar évalue :

  1. Contrôle principal : Le directeur OAuthUser est-il un ? ✓ (allumettes)

  2. Contrôle de l'action : l'action est-elle RefundTool ___process_refund ? ✓ (allumettes)

  3. Vérification des ressources : la ressource est-elle la passerelle de remboursement ? ✓ (allumettes)

  4. Contrôles d'état :

    • Le principal a-t-il une étiquette de nom d'utilisateur ? ✓ (oui, de JWT)

    • Est-ce que username = « refund-agent » ? ✓ (oui)

    • Est-ce que context.input.amount est inférieur à 500 ? ✓ (450 < 500)

Résultat : AUTORISER - Tous les chèques passent, le remboursement est autorisé.