View a markdown version of this page

Fluxo de autorização - Amazon Bedrock AgentCore

Fluxo de autorização

O Amazon Bedrock AgentCore Gateway avalia as políticas do Cedar em relação às solicitações recebidas. Esta seção explica como as informações de autorização fluem da solicitação para a avaliação da política.

Processamento de solicitações

O Amazon Bedrock AgentCore Gateway processa duas informações principais de cada solicitação:

  1. Token JWT - Contém declarações OAuth sobre o usuário:

    { "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. Solicitação de chamada da ferramenta MCP - A invocação real da ferramenta:

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

Solicitação de autorização de cedro

O Gateway extrai informações de ambas as fontes e constrói uma solicitação de autorização do Cedar.

Solicitação de autorização completa:

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

Componentes:

Entidade principal

Criado a partir da subreivindicação do token JWT:

AgentCore::OAuthUser::"12345678-1234-1234-1234-123456789012"
Ação

Extraído do nome da ferramenta:

AgentCore::Action::"RefundTool___process_refund"
Recurso

A instância do Gateway:

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

Contém os argumentos da ferramenta:

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

Entity Store - As declarações do JWT são armazenadas como tags na OAuthUser entidade:

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

Avaliação de políticas

Cedar avalia:

  1. Cheque principal: O diretor é um OAuthUser? ✓ (partidas)

  2. Verificação da ação: a ação é RefundTool ___process_refund? ✓ (partidas)

  3. Verificação de recursos: o recurso é o gateway de reembolso? ✓ (partidas)

  4. Verificações de condição:

    • O diretor tem tag de nome de usuário? ✓ (sim, da JWT)

    • O nome de usuário é = “agente de reembolso”? ✓ (sim)

    • O context.input.amount é < 500? ✓ (450 < 500)

Resultado: PERMITIR - Todos os cheques são aprovados, o reembolso é autorizado.