

# Restricciones del esquema
<a name="policy-schema-constraints"></a>

Las políticas de Amazon Bedrock AgentCore Gateway deben validarse con un esquema de Cedar específico que se genera automáticamente a partir del manifiesto de la herramienta MCP de Gateway. Este esquema define lo que es posible en sus políticas.

**Topics**
+ [Tipos principales](#policy-principal-type)
+ [Tipo de recurso](#policy-resource-type)
+ [Acciones](#policy-actions)
+ [Contexto](#policy-context)
+ [Lo que no puedes hacer](#policy-limitations)

## Tipos principales
<a name="policy-principal-type"></a>

El tipo principal depende del método de autenticación configurado para su AgentCore puerta de enlace:

 `AgentCore::OAuthUser`   
+ Se utiliza para las OAuth-authenticated puertas de enlace
+ Tiene un `id` atributo (de la subreclamación de JWT)
+ Admite etiquetas para las notificaciones de OAuth (nombre de usuario, ámbito, función, etc.)

 `AgentCore::IamEntity`   
+ Se utiliza para IAM-authenticated pasarelas (autorizador AWS\_IAM)
+ Tiene un `id` atributo que contiene el ARN de IAM de la persona que llama
+ No admite etiquetas; utilice la coincidencia de patrones para el control de acceso `principal.id`

## Tipo de recurso
<a name="policy-resource-type"></a>
+ Debe ser `AgentCore::Gateway` 
+ Representa la instancia de MCP Gateway
+ Puede coincidir por tipo (`is`) o ARN específico () `==`
+ Debe usar ARN específicos para referirse a acciones específicas

## Acciones
<a name="policy-actions"></a>
+ Cada herramienta MCP se convierte en una acción: `AgentCore::Action::"ToolName"` 
+ Todas las acciones de la herramienta se heredan de la jerarquía CallTool → Mcp
+ Ejemplo: `Action::"RefundTool___process_refund"` es un CallTool

## Contexto
<a name="policy-context"></a>
+ El único contexto disponible es `context.input` 
+ Contiene los parámetros de entrada de la herramienta tal como se definen en el manifiesto del MCP
+ Cada herramienta tiene una estructura de entrada escrita (por ejemplo, RefundTool \_\_\_process\_RefundInput)
+ Los tipos de parámetros se asignan automáticamente desde el esquema JSON a los tipos de Cedar:
  + cadena → Cadena
  + entero → Largo
  + booleano → Bool
  + número → Decimal

## Lo que no puedes hacer
<a name="policy-limitations"></a>
+ No se puede hacer referencia a tipos de entidades fuera del AgentCore espacio de nombres
+ No puede acceder a otros campos de contexto que no sean `context.input` (solo `context.output` se pueden usar con barandas)
+ No se pueden usar atributos personalizados en OAuthUser (en su lugar, usar etiquetas)
+ No se pueden definir nuevos tipos de entidades en las políticas