本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
核心概念
在 Amazon Bedrock 中使用策略之前 AgentCore,请务必了解共同为人工智能代理提供基于策略的监管的关键概念和组件。
网关
Amazon Bedrock AgentCore Gateway 提供了一个终端节点,用于连接 MCP 服务器,并将 API 和 lambda 转换为 MCP 兼容工具,从而为代理提供与其工具交互的单一访问点。一个网关可以有多个目标,每个目标代表一个或一组不同的工具。
网关目标
目标定义网关将作为工具提供给代理的 API 或 Lambda 函数。目标可以是 Lambda 函数、OpenAPI 规范、Smithy 模型或其他工具定义。
主体类型
Cedar 策略使用委托人来代表提出授权请求的实体。中的策略 AgentCore 支持两种主体类型,具体取决于您的 AgentCore 网关的身份验证配置方式:
-
AgentCore:: OAuthUser-代表 OAuth-authenticated 用户。当 AgentCore 网关使用 OAuth 授权时,将根据 JWT 令牌的声明创建委托人。
subOAuth 委托人支持包含 JWT 声明的标签,例如用户名、范围、角色等。 -
AgentCore:: IamEntity-代表 IAM-authenticated 来电者。当 AgentCore 网关使用 AWS_IAM 授权时,会根据调用者的 IAM 身份创建委托人。IAM 委托人有一个包含 IAM ARN 的
id属性(格式arn:aws:sts::<account>:assumed-role/<role-name>:用于代入的角色),可实现principal ==稳定匹配。详情请参阅保单条款。
雪松
Cedar
雪松政策
Cedar 策略是一种声明性声明,允许或禁止访问网关工具。每项策略都指定了谁(委托人)可以在什么条件下对哪个资源(网关)执行什么操作(工具调用)。每个工具调用请求都会对策略进行评估。
山茱莉
Dogwood
在雪松和山茱莉之间做出选择
写 Dogwood。Dogwood 是 Cedar 的超集:每份有效的 Cedar 政策也是有效的 Dogwood 政策,Dogwood 增加了护栏和临时规则所需的条件块。编写 Dogwood 意味着当规则超出当前请求时,您永远不必迁移策略。
-
根据你面前的请求决定的规则 —— 委托人是谁、他们正在调用哪个动作以及该调用的输入值 —— 只需要 Cedar-compatible 语法即可。
-
需要请求中未包含的内容的规则需要一个 Dogwood 条件块:在评估时计算的信号(作为护栏),或者会话中已经发生的事情的历史记录(一种临时策略)。
两个 Dogwood 条件块都是写成普通permit的,forbid规则—— when guardrails { … } 或者 when temporal { … } ——所以采用它们是累加的,而不是重写。策略可以同时包含输入条件、护栏信号和会话历史记录。
Cedar的现有政策继续得到支持。
临时政策
大多数 Cedar 策略都是无状态的:每个请求都是独立评估的。临时策略添加了取决于同一会话中早些时候发生的事情的条件,例如要求事先批准、限制操作的运行频率或将运行总数保持在阈值以下。临时策略以 Dogwood 编写,与 Cedar 兼容,并根据对相关请求进行分组的策略会话进行评估。有关更多信息,请参阅临时策略。
政策中的护栏
护栏是在评估时运行的内容安全检查。在做出授权决定之前,Policy 会使用您的数据路径选择的内容 AgentCore 调用护栏,护栏会返回其评估的类别的置信度分数。
然后,策略可以以该分数为条件——允许请求、禁止请求或禁止响应。有关更多信息,请参阅策略中的护栏。
政策会议
策略会话是一系列相关的 Gateway 调用,分组在一个会话 ID 下,您可以在标题中的请求中提供该会话 ID。x-amzn-bedrock-agentcore-policy-session-id临时策略根据策略会话进行评估:临时条件仅考虑与请求授权相同的会话中记录的事件。有关更多信息,请参阅策略会话和身份传播。
策略引擎
策略引擎是政策的核心组成部分 AgentCore ,用于存储和评估 Cedar 政策。创建策略时,只要策略范围与请求相匹配,它们就会应用于与引擎关联的每个网关。对于每次工具调用,策略引擎都会根据请求评估所有适用的策略,以确定是允许还是拒绝访问。引擎会自动强制执行默认拒绝和禁胜语义。
雪松架构
Cedar 架构定义了用于策略验证的实体、操作和上下文的结构。策略引擎根据网关的工具定义自动生成架构,将每个工具映射到一个操作并定义预期的输入参数。该架构可确保策略在创建时得到验证,从而在部署之前捕获错误。
雪松验证
Cedar 验证会检查策略在语法上是否正确且符合架构。当您将策略与网关关联时,策略引擎会根据自动生成的架构对其进行验证,以确保它们引用有效的操作、使用正确的数据类型以及仅访问已定义的上下文字段。验证会在部署策略之前捕获错误,从而防止运行时授权失败。
雪松分析
Cedar 分析使用自动推理来检查策略并发现潜在问题。Policy in AgentCore 使用自动推理来识别始终允许(没有条件限制访问)或始终拒绝(禁止策略无例外)的策略,这有助于确保策略实现预期的访问控制,而不是过于宽松或不必要的限制。
策略创作服务
策略制定服务会自动将自然语言授权要求转换为 Cedar 政策。当您提交自然语言策略时,该服务会生成语法正确的 Cedar 代码,根据网关架构对其进行验证,并运行自动分析以检测潜在问题。这样可以确保所有生成的策略都是有效的,并有助于在部署之前识别过于宽松或限制性的规则。