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:
-
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" } -
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:
-
Cheque principal: O diretor é um OAuthUser? ✓ (partidas)
-
Verificação da ação: a ação é RefundTool ___process_refund? ✓ (partidas)
-
Verificação de recursos: o recurso é o gateway de reembolso? ✓ (partidas)
-
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.