Gateway でのインターセプターの使用
ゲートウェイでインターセプターを設定すると、ゲートウェイの呼び出しのたびにカスタムコードを実行できます。このセクションでは、ゲートウェイのインターセプターの実装と設定に関するガイダンスを提供します。
概要
ゲートウェイでインターセプターを設定すると、ゲートウェイの呼び出しのたびにカスタムコードを実行できます。これは、次のユースケースに役立ちます。
-
ツールまたは MCP オペレーションに対するきめ細かなアクセスコントロールの実装
-
ターゲットリクエストとゲートウェイレスポンスの変換
-
カスタム認可ロジックの実装
ゲートウェイで設定できるインターセプターには 2 つのタイプがあります。
-
REQUEST interceptors – ゲートウェイがターゲットを呼び出す前に実行します。これらは、リクエストの検証、変換、またはカスタム認可に役立ちます。
-
RESPONSE interceptors – ターゲットが応答した後、ゲートウェイが応答を発信者に返す前に実行します。これらは、レスポンス変換、フィルタリング、またはカスタムヘッダーの追加に役立ちます。
ゲートウェイには、最大 1 つの REQUEST インターセプターと最大 1 つの RESPONSE インターセプターを設定できます。両方のタイプを同じゲートウェイで設定できますが、同じタイプの複数のインターセプターを持つことはできません。
現在、インターセプターは Lambda 関数でのみ設定できます。
セキュリティのベストプラクティス
インターセプターを実装するときは、セキュリティのベストプラクティスに従って機密情報を保護し、適切なアクセスコントロールを維持することが重要です。
-
デフォルトでは、
passRequestHeadersフィールドが true に設定されていない限り、リクエストヘッダーはインターセプターに渡されません。リクエストヘッダーには認証トークンや認証情報などの機密情報が含まれている可能性があるため、このフィールドを使用するときは注意してください。インターセプターがこの機密情報を記録していないことを確認してください。 -
ゲートウェイ実行ロールには、インターセプターとして使用している特定の Lambda 関数を呼び出すためのアクセス許可のみがあり、実行ロールにワイルドカード Lambda アクセス許可を付与しないように制限してください。
-
インターセプターにべき等な Lambda 関数を実装します。ゲートウェイは、障害またはタイムアウトが発生した場合に、インターセプタ Lambda 関数へのリクエストを再試行することがあります。冪等性キーを実装したり、処理されたリクエストを追跡したり、同じ入力で複数回実行したときに一貫した結果を生成するステートレスオペレーションを設計したりすることで、インターセプタロジックが重複した呼び出しを安全に処理できるようにします。