

# Contraintes de schéma
<a name="policy-schema-constraints"></a>

Les politiques d'Amazon Bedrock AgentCore Gateway doivent être validées par rapport à un schéma Cedar spécifique généré automatiquement à partir du manifeste de l'outil MCP de la passerelle. Ce schéma définit ce qui est possible dans vos politiques.

**Topics**
+ [Principaux types](#policy-principal-type)
+ [Type de ressource](#policy-resource-type)
+ [Actions](#policy-actions)
+ [Contexte](#policy-context)
+ [Ce que vous ne pouvez pas faire](#policy-limitations)

## Principaux types
<a name="policy-principal-type"></a>

Le type principal dépend de la méthode d'authentification configurée pour votre AgentCore passerelle :

 `AgentCore::OAuthUser`   
+ Utilisé pour les OAuth-authenticated passerelles
+ Possède un `id` attribut (issu de la sous-réclamation JWT)
+ Supporte les balises pour les demandes OAuth (nom d'utilisateur, portée, rôle, etc.)

 `AgentCore::IamEntity`   
+ Utilisé pour les IAM-authenticated passerelles (autorisateur AWS\_IAM)
+ Possède un `id` attribut contenant l'ARN IAM de l'appelant
+ Ne prend pas en charge les balises ; utilisez la correspondance de modèles activée `principal.id` pour le contrôle d'accès

## Type de ressource
<a name="policy-resource-type"></a>
+ Doit être `AgentCore::Gateway` 
+ Représente l'instance de passerelle MCP
+ Peut être mis en correspondance par type (`is`) ou par ARN spécifique (`==`)
+ Doit utiliser des ARN spécifiques pour faire référence à des actions spécifiques

## Actions
<a name="policy-actions"></a>
+ Chaque outil MCP devient une action : `AgentCore::Action::"ToolName"` 
+ Toutes les actions de l'outil héritent de la hiérarchie CallTool → Mcp
+ Exemple : `Action::"RefundTool___process_refund"` est un CallTool

## Contexte
<a name="policy-context"></a>
+ Seul le contexte disponible est `context.input` 
+ Contient les paramètres d'entrée de l'outil tels que définis dans le manifeste MCP
+ Chaque outil possède une structure d'entrée typée (par exemple, RefundTool \_\_\_Process\_RefundInput)
+ Les types de paramètres sont automatiquement mappés du schéma JSON aux types Cedar :
  + chaîne → Chaîne
  + entier → Long
  + boolean → Bool
  + nombre → Décimal

## Ce que vous ne pouvez pas faire
<a name="policy-limitations"></a>
+ Impossible de référencer les types d'entités en dehors de l'espace AgentCore de noms
+ Impossible d'accéder aux champs contextuels autres que `context.input` (ne `context.output` peuvent être utilisés qu'avec des garde-corps)
+ Impossible d'utiliser des attributs personnalisés sur OAuthUser (utilisez plutôt des balises)
+ Impossible de définir de nouveaux types d'entités dans les politiques