View a markdown version of this page

架构约束 - 亚马逊基岩 AgentCore

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

架构约束

亚马逊 Bedrock AgentCore Gateway 的政策必须根据特定 Cedar 架构进行验证,该架构是根据网关的 MCP 工具清单自动生成的架构。此架构定义了您的策略中可能存在的内容。

主要类型

主体类型取决于为您的 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_refundInput)

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

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

JSON 架构 雪松 注意

string

String

integer

Long

boolean

Bool

number

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 (改用标签)

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