Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Flujo de autorización
Amazon Bedrock AgentCore Gateway evalúa las políticas de Cedar en función de las solicitudes entrantes. En esta sección se explica cómo fluye la información de autorización desde la solicitud hasta la evaluación de la política.
Procesamiento de solicitudes
Amazon Bedrock AgentCore Gateway procesa dos datos clave de cada solicitud:
-
Token JWT: contiene afirmaciones de OAuth sobre el usuario:
{ "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" } -
Solicitud de llamada a la herramienta MCP: la invocación real de la herramienta:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "RefundTool___process_refund", "arguments": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }
Solicitud de autorización de Cedar
The Gateway extrae información de ambas fuentes y crea una solicitud de autorización de Cedar.
Solicitud de autorización 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:
- Principal
-
Creado a partir de la subafirmación del token JWT:
AgentCore::OAuthUser::"12345678-1234-1234-1234-123456789012" - Action
-
Extraído del nombre de la herramienta:
AgentCore::Action::"RefundTool___process_refund" - Recurso
-
La instancia de Gateway:
AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" - Contexto
-
Contiene los argumentos de la herramienta:
{ "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } }
Tienda de entidades: las afirmaciones de JWT se almacenan como etiquetas en la OAuthUser entidad:
{ "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 sesión para políticas temporales
Cuando hay un x-amzn-bedrock-agentcore-policy-session-id encabezado, la puerta de enlace incluye el contexto de la sesión en la solicitud de autorización que se envía al motor de políticas. El contexto de la sesión proporciona el historial de acciones acumulado para la sesión actual. Las reglas de política temporal evalúan las restricciones a lo largo del tiempo utilizando este historial.
{ "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" }
El sessionId campo vincula la solicitud actual con su historial de sesiones. El motor de políticas resuelve el estado de la sesión y evalúa todas las reglas temporales aplicables comparándolas con la cadena de acciones acumulada.
Para obtener más información sobre cómo proporcionar el identificador de sesión, el ciclo de vida de la sesión y cómo se propaga la identidad en las llamadas de varios saltos, consulte Sesiones de políticas y propagación de identidades.
Evaluación de políticas
Cedar evalúa:
-
Control del director: ¿Es el director un? OAuthUser ✓ (partidos)
-
Verificación de acciones: ¿La acción es RefundTool ___process_refund? ✓ (partidos)
-
Verificación de recursos: ¿Es el recurso la pasarela de reembolso? ✓ (coincidencias)
-
Comprobaciones de estado:
-
¿El director tiene una etiqueta de nombre de usuario? ✓ (sí, de JWT)
-
¿Nombre de usuario = «agente de reembolso»? ✓ (sí)
-
¿Context.input.amount es inferior a 500? ✓ (450 < 500)
-
Resultado: PERMITIR: se aprueban todos los cheques y se autoriza el reembolso.