View a markdown version of this page

一時ポリシー - Amazon Bedrock AgentCore

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

一時ポリシー

Amazon Bedrock AgentCore のポリシーは、一時的なポリシーをサポートします。このポリシーは、現在のリクエストのみではなく、セッション内のエージェントのアクションの履歴に基づいて決定します。これらを使用すると、アクションの前に承認を要求する、アクションが時間枠内に実行される回数を制限する、実行中の合計をしきい値未満に維持するなど、複数のアクションにまたがるルールを適用できます。

時間ポリシーは、1 つ以上の時間演算子を含む または permitforbidルールです。各条件は、そのアクション、プリンシパル、およびアクションの入力または出力フィールドによってセッションに記録された以前のイベントと一致し、必要な時間枠内のイベントのみを考慮します。条件は、一致したイベントを現在のリクエストに関連付けることができるため、ルールでは、例えば、以前のアクションがすでに承認したリソースに対して現在のリクエストが動作することを要求できます。ポリシーエンジンは、各セッションのイベントを記録し、すべてのリクエストでこれらの条件を評価するため、エージェントまたはツールコードのイベントを追跡する代わりに、セッション対応ルールをポリシーとして表現します。

一時ポリシーは、Cedar と互換性があり、既存のすべての Cedar ポリシーをサポートする Dogwood で記述されます。スタンダード Cedar ポリシーはステートレスであり、現在のリクエストのみを考慮します。一時ポリシーは、deny-by-defaultモデルに従います。リクエストは、 permitが適用され、forbid上書きされない場合にのみ許可されます。一時的な条件は、セッション履歴ではなくウォールクロック時間 (context.system.now) に基づいてアクセスを制限する時間ベースの条件とは異なります。一時ポリシーを LOG_ONLYモードで実行して、 に昇格する前に決定した内容を確認することもできますENFORCE。「ポリシーの適用モード」を参照してください。

主要なコンセプト

一時ポリシーは、セッション対応ルールを表す Dogwood ポリシー言語と、ルールが表示できる履歴をスコープするポリシーセッションの 2 つの要素に基づいています。

Dogwood ポリシー言語

一時ポリシーは、AgentCore の Policy がセッション対応認可に使用するオープンソースポリシー言語である Dogwood で記述されます。Dogwood は Cedar 上に構築され、同じ認可モデルを使用します。プリンシパル、アクション、リソースに対して および permitforbidルールを記述し、 permitが適用され、forbid上書きされない場合にのみリクエストが許可されます。Dogwood は Cedar と互換性があり、既存のすべての Cedar ポリシーをサポートしているため、有効なすべての Cedar ポリシーも有効な Dogwood ポリシーです。既存のpoint-in-timeポリシーは変更なしで引き続き機能し、ルールが現在のリクエストよりも多くを考慮する必要がある時間条件のみを追加します。

Dogwood では、エージェントやツールコードにイベント追跡ロジックを実装するのではなく、セッション対応ルールをポリシーとして宣言的に表現します。ポリシーエンジンは、関連するイベントを記録し、各リクエストの条件を評価します。たとえば、次のポリシーでは、過去 1 時間以内に一致する承認が行われた場合にのみ販売が許可されます。

permit ( principal, action == AgentCore::Action::"TradingTarget___SellShares", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway" ) when temporal { formerly within 1h AgentCore::Action::"TradingTarget___ApproveSale"::response{ eventResource: resource, input.stock: context.input.stock, input.shares: context.input.shares, output.approved: true } };

Dogwood は、一般的なパターンの時間演算子として、 formerly within (一致するイベントがウィンドウの前半に発生した)、 since within (アンカーイベント以降に保持された条件)、ウィンドウ内の一致するイベントの集計countと sum を提供します。

完全な時間構文については、Dogwood Policy ウェブサイトの Dogwood 言語ガイドを参照してください。

ポリシーセッションとセッション ID

一時ポリシーは、ポリシーセッションに対して評価されます。1 つのセッション ID でグループ化された一連の関連する Gateway 呼び出しです。一時履歴はセッションに限定されるため、条件は、リクエストが承認されているのと同じセッションに記録されたイベントのみを考慮します。セッション ID を生成し、最初のリクエストから始めて、 x-amzn-bedrock-agentcore-policy-session-idヘッダーの各リクエストに送信します。Gateway はユーザーに代わってセッション ID を生成しません。ヘッダーを省略するか、空の値を送信した場合、ゲートウェイはセッションを確立しません。関連付けられたポリシーエンジンに一時ポリシーが含まれている場合、セッション ID のないリクエストは検証エラーで失敗します。

セッション ID、セッションライフサイクル、およびマルチホップ呼び出し間での ID の伝播方法の詳細については、「ポリシーセッションと ID の伝播」を参照してください。

セッションの無効化

一時ポリシーは、同じセッションの前半で何が起こったかを見て、アクションを許可するかどうかを決定します。この履歴は、セッションの開始時に有効だった時間ポリシーに対してのみ意味があります。セッションが開いている間にエンジンの時間ポリシーを変更すると、記録された履歴が現在のルールと一致しなくなるため、サービスは一貫性のないデータに対して決定を下さずにセッションを終了します。

エンジンで一時ポリシーを追加または更新すると、エンジンのアクティブな一時ポリシーセッションが無効になります。このような変更の後、無効化されたセッションを再利用する次のリクエストは HTTP 409 で失敗しますConflictException。

復旧するには、新しいセッションを開始し、リクエストを再度送信します。新しいセッションは空の履歴で始まり、更新されたポリシーに対して評価されます。

サポートされている AWS リージョン

一時ポリシーは、次の表に示す AWS リージョンで使用できます。

リージョン名 一時ポリシー

アジアパシフィック (ハイデラバード)

いいえ

アジアパシフィック (マレーシア)

いいえ

アジアパシフィック (ムンバイ)

✓ はい

アジアパシフィック (ソウル)

✓ はい

アジアパシフィック (シンガポール)

✓ はい

アジアパシフィック (シドニー)

✓ はい

アジアパシフィック (タイ)

いいえ

アジアパシフィック (東京)

✓ はい

カナダ (中部)

✓ はい

欧州 (フランクフルト)

✓ はい

欧州 (アイルランド)

✓ はい

欧州 (ロンドン)

✓ はい

欧州 (ミラノ)

いいえ

欧州 (パリ)

✓ はい

欧州 (スペイン)

✓ はい

欧州 (ストックホルム)

✓ はい

南米 (サンパウロ)

✓ はい

米国東部 (バージニア北部)

✓ はい

米国東部 (オハイオ)

✓ はい

米国西部 (北カリフォルニア)

いいえ

米国西部 (オレゴン)

✓ はい

考慮事項

クロスアカウントおよびクロスリージョンリクエスト

一時ポリシーセッションは、クロスリージョンまたはクロスアカウント伝達をサポートしていません。一時ポリシーは、それらのリソースが異なるアカウントまたは異なる AWS リージョンに存在する場合、AgentCore Gateway とそのランタイムターゲット間のリクエストを制御しません。一時的なポリシーがエージェントのアクションを制御するには、ゲートウェイとそのすべてのターゲットが同じ AWS アカウントと AWS リージョンに存在する必要があります。

一時ポリシーは、ワークロードアクセストークン (WAT) がリクエストチェーンを通過する場合にのみアクセスを適用します (「ポリシーセッションと ID の伝播」を参照)。リクエストチェーンが完全に AgentCore Gateway とランタイムコンポーネントで構成されている場合、AgentCore は 1 つのホップから次のホップに WAT ヘッダーを自動的に伝播します。この伝達は、単一の AWS リージョンとアカウント内で行われます。一時的なポリシーはチェーン全体に適用されます。Gateway to Runtime to Gateway to Runtime などのチェーンは、トークンをエンドツーエンドで保持し、ユーザー側で追加の作業を行うことはありません。

ゲートウェイまたはランタイム以外のコンポーネントを含むチェーンの動作は異なります。リクエストは、サードパーティーの API ゲートウェイや Kubernetes クラスターなど、自分で運用するインフラストラクチャを通過する場合があります。そのコンポーネントは WAT ヘッダーを転送し、それらのホップを介して WAT を伝達するカスタムロジックを追加する必要があります。これらの非 AgentCore コンポーネントの物理的な場所は、リージョンおよびアカウントの範囲には影響しません。どちらの側の AgentCore コンポーネントも、一時的なポリシーが適用されるのと同じ AWS アカウントと AWS リージョンに戻れば、どこでも実行できます。

必要な IAM 許可

一時ポリシーには IAM の前提条件もあります。Gateway 用に設定された IAM ロールは、 bedrock-agentcore:GetWorkloadAccessTokenアクションを許可する必要があります。この要件は、アウトバウンド認可に IAM を使用する場合でも保持されます。WAT を使用すると、一時ポリシーはセッション全体でエージェントのアクションを関連付けることができます。ゲートウェイは、発信通話の認証方法に関係なく WAT を取得できる必要があります。ロールにこのアクセス許可がない場合、一時的なポリシーの適用は失敗します。一時ポリシーを設定するときに、ゲートウェイロールbedrock-agentcore:GetWorkloadAccessTokenに を付与します。リソース ARNs「一時ポリシーの IAM アクセス許可」を参照してください。

自己参照条件には現在のリクエストが含まれます

一時的な条件が、承認されているのと同じアクションを参照する場合、現在のリクエストの独自のイベントが評価に含まれます。たとえば、ウィンドウ内でアクションが発生した回数をカウントする条件は、現在の呼び出しもカウントします。

以前のアクションをレスポンスとして記録することを許可する必要があります

セッション履歴は、各アクションをイベントとして記録し、その種類は結果を反映します。完了した許可されたアクションはresponseイベントとして記録され、ポリシーが拒否するアクションはerrorイベントとして記録されます。一時的な条件は、名前が付けられた種類のイベントのみに一致するため、responseイベントに一致する条件は、許可された以前のアクションのみを考慮します。一時ポリシーが依存する以前のアクション自体がポリシーによって許可されていることを確認します。拒否された場合、そのアクションは errorではなく として記録されresponse、response条件がそれと一致することはありません。

以前のレスポンスに依存するアクションの順序付け

セッション履歴には、アクションが完了すると、各アクションのresponseイベントが記録されます。ポリシーが出力フィールドやsince条件など、同じセッション内の以前のアクションのレスポンスに依存する場合は、以前のアクションのレスポンスを受け取った後に依存リクエストを発行します。依存するアクションを開始する前に各アクションを完了すると、ワークフローのシーケンスがポリシーが評価する履歴と一致します。

クォータ

一時ポリシーには、次のクォータが適用されます。

クォータ 値

ポリシーエンジンあたりの一時ポリシー

25

ポリシーあたりの一時演算子

3

時間条件あたりの最大時間枠

24 時間

オブザーバビリティ

Amazon Bedrock AgentCore は、一時的なポリシー評価を観察できるメトリクスとスパンデータを発行します。デフォルトでは、メトリクスは AWS/Bedrock-AgentCore CloudWatch 名前空間に発行されます。スパンデータは、アタッチされた AgentCore Gateway リソースのトレースを有効にすると使用可能になり、CloudWatch aws/spansロググループにあります。

次のシグナルは、一時ポリシーに固有のものです。

  • TemporalLatency (メトリクス): 時間ポリシーの評価にかかった時間をミリ秒単位で表します。一時的な評価ごとに 1 SampleCount つのサンプルが出力されるため、 統計を使用して評価をカウントできます。

  • aws.agentcore.policy.temporal.latency_ms (span 属性): リクエストの一時ポリシーの評価にかかった時間をミリ秒単位で表します。

  • aws.agentcore.policy.temporal.evaluation_invoked (span 属性): リクエストに対して一時的な評価が実行されたかどうか。これは、一時的なポリシーが決定に一致した、または決定したことを示すものではありません。

  • aws.agentcore.policy.temporal.event_timestamp_ns (span 属性): 評価者がリクエストイベントの順序付けに使用した正確なイベントタイムスタンプ。ナノ秒単位。

ポリシーメトリクス、ディメンション、スパン属性の完全なリスト、およびオブザーバビリティを有効にする方法については、AgentCore オブザーバビリティデータのポリシー」を参照してください。

セキュリティに関する考慮事項

一時ポリシーによるレート制限は、1 つのセッション内に適用されます。時間履歴はセッションに限定され、セッション ID は発信者によって提供されるため、「セッションあたりの最大 N 回の呼び出し数」などの countベースの制限は、そのセッションで記録されたイベントのみをカウントします。新しいセッションを開始すると新しいカウントが開始されるため、時間レート制限により、発信者のすべてのセッションではなくセッション内のアクティビティが制限されます。