View a markdown version of this page

Contraintes de schéma - Amazon Bedrock AgentCore

Contraintes de schéma

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.

Principaux types

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

  • 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

  • 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

  • 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

  • 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