

# Amazon Bedrock AgentCore Gateway のきめ細かなアクセスコントロール
<a name="gateway-fine-grained-access-control"></a>

Amazon Bedrock AgentCore Gateway は、特定のツールやリソースにアクセスできるユーザーとエージェントを制御できるきめ細かなアクセスコントロール機能を提供します。カスタムロジックのゲートウェイインターセプターを介してアクセスコントロールを実装することも、標準 AWS形式のアクセスコントロールにリソースベースのポリシーを使用することもできます。リソースベースのポリシーの詳細については、[「Amazon Bedrock AgentCore のリソースベースのポリシー](resource-based-policies.md)」を参照してください。

## アクセスコントロールにインターセプターを使用する
<a name="gateway-fine-grained-access-control-interceptors"></a>

ゲートウェイインターセプターは、きめ細かなアクセスコントロールを実装する最も柔軟な方法を提供します。REQUEST インターセプターは、ゲートウェイがターゲットを呼び出す前に実行されるため、次のことが可能になります。
+ JWT クレームまたはカスタムロジックに基づいてユーザーアクセス許可を検証する
+ 特定のツールまたは MCP オペレーションへのアクセスを制御する
+ ロールベースまたは属性ベースのアクセスコントロールを実装する
+ ユーザーコンテキストに基づいてリクエストをフィルタリングまたは変更する
+ 不正なリクエストの承認エラーを返す

認可ロジックの例など、インターセプターの実装と設定の詳細については、[「ゲートウェイでのインターセプターの使用](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html)」を参照してください。

## アクセスコントロールレベル
<a name="gateway-fine-grained-access-control-levels"></a>

Gateway のきめ細かなアクセスコントロールは、複数のレベルで実装できます。

 **ゲートウェイレベルのアクセス**   
OAuth 認可サーバーまたは AWS IAM 認証を介してゲートウェイに接続して認証できるユーザーまたはエージェントを制御します。

 **ツールレベルのアクセス**   
インターセプターロジックを使用してゲートウェイ内の特定のツールへのアクセスを制御し、ツールの実行前にアクセス許可を検証します。

 **オペレーションレベルのアクセス**   
インターセプターを使用して特定の MCP オペレーション ( `tools/list`や `tools/call` など) へのアクセスを制御し、オペレーションのアクセス許可を検証します。

 **パラメータレベルのアクセス**   
インターセプターを使用してリクエストパラメータをフィルタリングまたは検証し、オペレーション内の特定のパラメータまたはデータへのアクセスを制御します。

## 実装アプローチ
<a name="gateway-fine-grained-access-control-implementation"></a>

以下を使用して、きめ細かなアクセスコントロールを実装できます。

 **JWT クレームの検証**   
インターセプターを使用して、ユーザーロール、部門、カスタム属性などの JWT クレームを調べ、認可の決定を行います。

 **IAM プリンシパルマッチング**   
IAM 認証ゲートウェイの場合、呼び出し元の IAM ARN と照合してアクセスコントロールを実装します。Cedar ポリシー`principal.id`の でパターンマッチングを使用して、 AWS アカウント、ロール、またはユーザーに基づいてアクセスを制限します。

 **外部認可サービス**   
外部認可サービスまたはデータベースを呼び出してユーザーのアクセス許可を検証するようにインターセプタを設定します。

 **リクエストコンテキストのフィルタリング**   
インターセプターを使用して、ユーザー固有のフィルターの追加やデータ範囲の制限など、ユーザーコンテキストに基づいてリクエストを変更します。

## ベストプラクティス
<a name="gateway-fine-grained-access-control-best-practices"></a>
+  **最小特権の原則** - タスクの実行に必要な最小限のアクセスのみをユーザーに付与します。
+  **構造化クレームを使用する** - JWT クレームを活用して、ユーザーコンテキストと認可情報をインターセプターに伝達します。
+  **フェイルセーフデフォルトを実装する** - 認可を決定できない場合にデフォルトでアクセスを拒否するようにインターセプターを設計します。
+  **ログ認可決定** - 監査目的でインターセプターがアクセス決定をログに記録するようにします。