View a markdown version of this page

了解雪松政策 - 亚马逊基岩 AgentCore

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

了解雪松政策

中的策略 AgentCore 使用 Cedar 策略来控制对 AgentCore 网关工具的访问权限。本节介绍了 Cedar 策略结构、评估语义和关键概念。

注意

Session-aware 规则使用临时策略,这些策略以 Dogwood(与 Cedar 兼容)编写,并使用temporal区块。此处描述的 Cedar 结构和语义仍然适用。有关更多信息,请参阅临时策略。

策略示例

考虑使用具有以下要求的退款处理工具:

  • 只有用户 “John” 可以处理退款

  • 退款限于 500 美元或以下

执行以下要求的 Cedar 政策:

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:your-region:your-account-id:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "John" && context.input.amount < 500 };

该政策仅允许在用户为 “John” 且退款金额低于 500 美元时进行退款处理。

策略结构

雪松政策包括三个主要组成部分:

  1. 效果 -确定是允许还是拒绝访问(permit或forbid)

  2. 范围 -指定策略适用的主体、操作和资源

  3. 条件 -定义必须满足(when或unless)的额外逻辑,并且可以引用工具参数(通过上下文)和 OAuth 令牌(通过标签)

政策影响

Cedar 政策使用两种效果来控制访问权限:

  • permit-允许操作继续

  • forbid-拒绝该操作

默认拒绝

默认情况下,所有操作都被拒绝。如果没有与请求相匹配的政策,Cedar 将返回 DENY。必须明确编写许可策略才能允许操作。

授权评估

Cedar 使用禁改许可评估模型:

  1. Cedar 会评估适用于该请求的所有政策

  2. 如果有任何禁用策略匹配,则结果为 DENY

  3. 如果至少有一个允许策略匹配且没有禁止策略匹配,则结果为 ALLOW

  4. 如果没有匹配的策略,则结果为 DENY(默认拒绝)

政策独立性

每个 Cedar 政策都进行独立评估。政策的评估仅取决于:

  • 范围(主体、行动、资源)

  • 上下文和标签

政策不参考或依赖其他政策。

策略评估算法

评估请求时,策略引擎使用以下算法确定授权决策:

  1. 如果有任何forbid策略与请求相匹配,则决定为 “拒绝”。

  2. 如果没有任何forbid策略与请求相匹配且至少有一个permit策略匹配,则决定为 ALLOW。

  3. 如果两个permit策略forbid都不符合请求,则决定为 “拒绝”。

此评估模型强制执行默认拒绝状态。

forbid策略永远不会导致 “允许” 决定。策略上的unless条款规定了该forbidforbid政策不适用的条件;它不授予权限,也不会覆盖匹配的permit政策。