View a markdown version of this page

了解 Cedar 政策 - Amazon Bedrock AgentCore

了解 Cedar 政策

AgentCore 中的政策使用 Cedar 政策來控制對 AgentCore Gateway 工具的存取。本節說明 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 美元時,才允許退款處理。

政策結構

Cedar 政策包含三個主要元件:

  1. 效果 - 決定是否允許或拒絕存取 ( permitforbid )

  2. 範圍 - 指定政策套用的委託人、動作和資源

  3. 條件 - 定義必須滿足的其他邏輯 ( whenunless ),並可參考工具參數 (透過內容) 和 OAuth 字符 (透過標籤)

政策效果

Cedar 政策使用兩種效果來控制存取:

  • permit - 允許動作繼續

  • forbid - 拒絕動作

預設拒絕

預設會拒絕所有動作。如果沒有政策符合請求,Cedar 會傳回 DENY。您必須明確撰寫允許政策,以允許 動作。

授權評估

Cedar forbid-overrides-permit評估模型:

  1. Cedar 會評估套用至請求的所有政策

  2. 如果任何禁止政策相符,則結果為 DENY

  3. 如果至少一個許可政策相符且沒有禁止政策相符,則結果為允許

  4. 如果沒有相符的政策,則結果為 DENY (預設拒絕)

政策獨立性

每個 Cedar 政策都會獨立評估。政策的評估僅取決於:

  • 範圍 (委託人、動作、資源)

  • 內容和標籤

政策不參考或依賴其他政策。

政策評估演算法

評估請求時,政策引擎會使用下列演算法來決定授權決策:

  1. 如果任何forbid政策符合請求,則決策為 DENY。

  2. 如果沒有forbid政策符合請求,且至少有一個permit政策符合,則決策為允許。

  3. 如果 forbidpermit政策都不符合請求,則決策為 DENY。

此評估模型會強制執行預設拒絕狀態。

forbid 政策永遠不會導致 ALLOW 決策。forbid 政策上的 unless子句指定政策forbid不適用的條件;它不會授予許可,也不會覆寫相符permit的政策。