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á.
Fluxo de autorização
O Amazon Bedrock AgentCore Gateway avalia as políticas da 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 importantes de cada solicitação:
-
Token JWT - contém declarações de 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 de 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 cria 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" } }
Repositório de entidades - 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" } }
Contexto de sessão para políticas temporais
Quando um x-amzn-bedrock-agentcore-policy-session-id cabeçalho está presente, o Gateway inclui o contexto da sessão na solicitação de autorização passada para o mecanismo de políticas. O contexto da sessão fornece o histórico de ações acumulado para a sessão atual. As regras de política temporal avaliam as restrições ao longo do tempo usando esse histórico.
{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"PaymentTool___transfer_funds\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway\"", "context": { "input": { "amount": 500, "recipient": "account-789" } }, "sessionId": "12345678-1234-1234-1234-123456789012" }
O sessionId campo vincula a solicitação atual ao histórico da sessão. O mecanismo de políticas resolve o estado da sessão e avalia todas as regras temporais aplicáveis em relação à cadeia de ação acumulada.
Para obter detalhes sobre como fornecer o ID da sessão, o ciclo de vida da sessão e como a identidade se propaga em chamadas multi-hop, consulte Sessões de políticas e propagação de identidade.
Avaliação de políticas
Cedar avalia:
-
Cheque principal: O diretor é um OAuthUser? ✓ (partidas)
-
Verificação de 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 principal 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.