View a markdown version of this page

メモリのポリシー例 - Amazon Bedrock AgentCore

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

メモリのポリシー例

このページでは、Amazon Bedrock AgentCore Memory に固有の Cedar ポリシーパターンを提供します。発信者を独自のアクター、独自の名前空間、選択した一連のメモリオペレーションに分離します。これらのポリシーが参照するメモリアクション ID とcontext.inputフィールドについては、「メモリアクションとリクエスト属性」を参照してください。汎用 Cedar モデルとパターンのより広範なライブラリ (OAuth スコープとロールチェック、IAM プリンシパルマッチング、 forbidと unless、および入力検証) については、「Cedar ポリシーとサンプルポリシーについて」を参照してください。

CreatePolicy オペレーションを使用してゲートウェイのポリシーエンジンに各 Cedar ポリシーを追加し、Cedar ステートメントをポリシー として渡しますdefinition。セットアップシーケンスについては、「メモリのきめ細かなアクセスコントロールを設定する」を参照してください。

各 Cedar の例では、 <target-name>をコネクタターゲット名に、 をゲートウェイ ARN <gw-arn>に置き換えます。

ユーザーごとの分離 — actorId は JWT サブジェクトと等しくなければなりません

リクエストの が JWT subクレームとactorId等しい場合にのみ、OAuth ユーザーにセッションへのアクセスを許可します。これはメモリのユーザーごとのコア分離パターンです。各ユーザーは自分のアクターのデータにのみアクセスできます。

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("sub") && context has input && context.input has actorId && context.input.actorId == principal.getTag("sub") };

名前空間の分離 — 発信者は自分の名前空間のレコードのみを取得できます

このポリシーにより、OAuth 呼び出し元は、リクエストの がトークンクレームで転送された呼び出し元自身の名前空間パスnamespacePathと一致する場合にのみ、メモリレコードを取得できます。

Cedar は文字列連結をサポートしていません。+演算子は整数オペランドにのみ適用され、likeワイルドカードパターンは文字列リテラルである必要があります。したがって、ポリシー内のクレームから名前空間値を構築することはできません (たとえば、 ("/actors/" + principal.getTag("sub") + "/")は有効な Cedar ではありません)。代わりに、ID プロバイダーに発信者の完全な名前空間パスをすでに保持しているクレームを発行させ、プリンシパルタグにマッピングして、そのタグnamespacePathと比較させます。この例では、トークンは発信者の名前空間パス ( など) を含むnamespaceクレームを提供します/actors/<sub>/。

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("namespace") && context has input && context.input has namespacePath && context.input.namespacePath == principal.getTag("namespace") };

アクションスコープ — 一連のメモリオペレーションのみを許可します

メモリオペレーションの固定リストを付与します。たとえば、イベントの一覧表示やレコードの取得を許可しますが、それ以外は許可しません。複数のメモリアクションを でグループ化しますaction in […​]。action-id ワイルドカードはサポートされていません。

permit( principal, action in [ AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve" ], resource == AgentCore::Gateway::"<gw-arn>" );

メモリデータプレーンを直接呼び出すプリンシパルではなく、ゲートウェイ経由でのみメモリにアクセスできるようにするには、「メモリへの直接アクセスを制限する」を参照してください。