View a markdown version of this page

Cedar ポリシーについて - Amazon Bedrock AgentCore

Cedar ポリシーについて

AgentCore のポリシーは、Cedar ポリシーを使用して AgentCore Gateway ツールへのアクセスを制御します。このセクションでは、Cedar のポリシー構造、評価セマンティクス、主要な概念について説明します。

ポリシーの例

以下の要件を満たす返金処理ツールを検討してください。

  • ユーザー「John」のみが返金を処理できます

  • 返金は 500 USD 以下に制限されます

これらの要件を適用する 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 USD 未満の場合にのみ返金処理を許可します。

ポリシーの構造

Cedar ポリシーは、次の 3 つの主要コンポーネントで構成されます。

  1. 効果 - アクセスを許可するか拒否するかを決定します ( permitまたは forbid )

  2. スコープ - ポリシーが適用されるプリンシパル、アクション、リソースを指定します。

  3. 条件 - 満たす必要がある追加のロジック ( whenまたは unless ) を定義し、ツールパラメータ (コンテキスト経由) と OAuth トークン (タグ経由) を参照できます。

ポリシーの効果

Cedar ポリシーは、アクセスを制御するために 2 つの効果を使用します。

  • permit - アクションの続行を許可します

  • forbid - アクションを拒否します

デフォルトで拒否

すべてのアクションはデフォルトで拒否されます。リクエストに一致するポリシーがない場合、Cedar は DENY を返します。アクションを許可するには、許可ポリシーを明示的に記述する必要があります。

認可評価

Cedar は forbid-overrides-permit 評価モデルを使用します。

  1. Cedar は、リクエストに適用されるすべてのポリシーを評価します。

  2. 禁止ポリシーが一致した場合、結果は DENY になります。

  3. 少なくとも 1 つの許可ポリシーが一致し、禁止ポリシーがない場合、結果は許可です

  4. 一致するポリシーがない場合、結果は DENY (デフォルトは拒否) です。

ポリシーの独立性

各 Cedar ポリシーは個別に評価されます。ポリシーの評価は、以下にのみ依存します。

  • スコープ (プリンシパル、アクション、リソース)

  • コンテキストとタグ

ポリシーは、他のポリシーを参照したり依存したりしません。

ポリシー評価アルゴリズム

リクエストが評価されると、ポリシーエンジンは次のアルゴリズムを使用して認可の決定を決定します。

  1. いずれかのforbidポリシーがリクエストに一致する場合、決定は DENY です。

  2. リクエストに一致するforbidポリシーがなく、少なくとも 1 つのpermitポリシーが一致した場合、決定は許可されます。

  3. permit もポリシーforbidもリクエストと一致しない場合、決定は DENY です。

この評価モデルは、デフォルトの拒否体制を適用します。

forbid ポリシーによって ALLOW 決定が発生することはありません。forbid ポリシーの unless句は、そのforbidポリシーが適用されない条件を指定します。ポリシーはアクセス許可を付与せず、一致するpermitポリシーを上書きしません。