View a markdown version of this page

架构约束 - Amazon Bedrock AgentCore
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

架构约束

Amazon Bedrock AgentCore Gateway 的策略必须根据网关的 MCP 工具清单自动生成的特定 Cedar 架构进行验证。此架构定义了您的策略中可能包含的内容。

主要类型

主体类型取决于为 AgentCore 网关配置的身份验证方法:

AgentCore::OAuthUser
  • 用于 OAuth-authenticated 网关

  • 有id属性(来自 JWT 订阅声明)

  • 支持 OAuth 声明的标签(用户名、范围、角色等)

AgentCore::IamEntity
  • 用于 IAM-authenticated 网关(AWS_IAM 授权机构)

  • 具有包含来电者的 IAM ARN 的id属性

  • 不支持标签;使用模式匹配principal.id进行访问控制

资源类型

  • 必须是 AgentCore::Gateway

  • 代表 MCP 网关实例

  • 可以按类型 (is) 或特定的 ARN () 进行匹配 ==

  • 必须使用特定的 ARN 来指代特定的操作

操作

  • 每个 MCP 工具都变成一个动作:AgentCore::Action::"ToolName"

  • 所有工具操作都继承自 CallTool → Mcp 层次结构

  • 示例:Action::"RefundTool___process_refund"是一个 CallTool

上下文

  • 只有可用的上下文是 context.input

  • 包含 MCP 清单中定义的工具输入参数

  • 每个工具都有一个键入的输入结构(例如 RefundTool ___process_refunInput)

  • 参数类型会自动从操作架构映射到 Cedar 类型。

下表显示了 7 种基本 JSON 架构类型和 Cedar 类型之间的对应关系:

JSON 架构 雪松 注意

string

String

integer

Long

boolean

Bool

number

Decimal

Decimal 是 Cedar 中的一种扩展类型,它与 IEEE 浮点数不完全匹配,因此数字将被截断为 Cedar 表示形式

object

Record

类型对应关系以递归方式应用于属性,required属性列表用于决定记录的哪些属性是必需的

array

Set

Cedar Set 没有项目顺序的概念,因此 JSON 数组中项目的顺序不会转换为 Cedar

null

Entity

由于 Cedar 对单独的类型没有 1:1 的匹配null,因此架构将包含一个唯一的实体来表示每种类型 null

将此表视为高级概述。有关详细和细致入微的用例的更多信息,请参阅上的开源 MCP 架构生成器。 GitHub

你不能做什么

  • 无法引用 AgentCore 命名空间之外的实体类型

  • 无法访问除之外的上下文字段context.input(context.output只能与护栏一起使用)

  • 无法在上使用自定义属性 OAuthUser (改用标签)

  • 无法在策略中定义新的实体类型

  • 不能使用浮点数。Cedar 没有浮点类型,因此将分数值表示为decimal("…​"),它支持不超过 4 位小数

  • 不能使用正则表达式。模式匹配仅限于使用*通配like符的运算符。有关更多信息,请参阅通配符的工作原理