本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
核心概念
在 Amazon Bedrock 中使用策略之前 AgentCore,重要的是要了解关键概念和组件,这些概念和组件共同为您的 AI 代理提供基于策略的治理。
网关
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 委托人的
id属性包含 IAM ARN(格式:arn:aws:sts::<account>:assumed-role/<role-name>用于假定角色),可以实现稳定的principal ==匹配。有关详细信息,请参阅政策条件。
雪松
Cedar
雪松政策
Cedar 政策是允许或禁止访问网关工具的声明性声明。每个策略都指定谁(主体)可以在什么条件下对哪个资源(网关)执行什么操作(工具调用)。我们会针对每个工具调用请求评估策略。
Dogwood
Dogwood
临时策略
大多数 Cedar 政策都是无状态的:每个请求都会单独评估。临时策略增加了取决于同一会话中早些时候发生的事情的条件,例如要求事先批准、限制操作的运行频率或将运行总数保持在阈值以下。临时策略以 Dogwood 编写,与 Cedar 兼容,并根据对相关请求进行分组的策略会话进行评估。有关更多信息,请参阅临时策略。
护栏
护栏是Dogwood政策可以在线咨询的信息提供者。在评估时,护栏会计算请求的内容安全信号,例如内容过滤器、即时攻击或敏感信息分数,策略根据该结果允许或禁止该操作。有关更多信息,请参阅政策中的护栏。
政策会议
策略会话是分组在一个会话 ID 下的一系列相关网关调用,您在标头中的请求中提供该会话 ID。x-amzn-bedrock-agentcore-policy-session-id临时策略根据策略会话进行评估:临时条件仅考虑请求获得授权时在同一会话中记录的事件。有关更多信息,请参阅策略会话和身份传播。
策略引擎
策略引擎是策略的核心组成部分 AgentCore ,用于存储和评估 Cedar 政策。创建策略时,只要策略范围与请求相匹配,它们就会应用于与引擎关联的每个网关。对于每次工具调用,策略引擎都会根据请求评估所有适用的策略,以确定是允许还是拒绝访问。引擎会自动强制执行 “默认拒绝” 和 “禁止获胜” 语义。
雪松架构
Cedar 架构定义了用于策略验证的实体、操作和上下文的结构。策略引擎根据网关的工具定义自动生成架构,将每个工具映射到一个操作并定义预期的输入参数。该架构确保策略在创建时得到验证,在部署之前发现错误。
雪松验证
Cedar 验证会检查策略在语法上是否正确并符合架构。当您将策略关联到网关时,策略引擎会根据自动生成的架构对其进行验证,以确保它们引用有效的操作、使用正确的数据类型以及仅访问已定义的上下文字段。验证会在部署策略之前捕获错误,从而防止运行时授权失败。
雪松分析
Cedar 分析使用自动推理来检查政策并发现潜在问题。Policy in AgentCore 使用自动推理来识别始终允许(无条件限制访问)或始终拒绝(无例外地禁止策略)的策略,这有助于确保策略实施预期的访问控制,而不是过于宽松或不必要的限制。
策略制定服务
策略创作服务会自动将自然语言授权要求转换为 Cedar 策略。当您提交自然语言政策时,该服务会生成语法正确的 Cedar 代码,根据网关架构对其进行验证,并运行自动分析以检测潜在问题。这样可以确保所有生成的策略都有效,并有助于在部署之前识别过于宽松或限制性的规则。