View a markdown version of this page

ターゲットとしての Amazon API Gateway REST API ステージ - Amazon Bedrock AgentCore

ターゲットとしての Amazon API Gateway REST API ステージ

API Gateway REST API ターゲットは、ゲートウェイを REST API のステージに接続します。ゲートウェイは、受信 MCP リクエストを REST API への HTTP リクエストに変換し、レスポンスのフォーマットを処理します。API Gateway ターゲットを追加または更新すると、AgentCore Gateway はユーザーに代わって API Gateway の GetExport API を呼び出します。

ターゲット設定でツールフィルターとツールオーバーライドを指定できます。ツールフィルターを使用すると、特定のリソースパスと HTTP メソッドの組み合わせをゲートウェイのツールとして使用できます。これらのフィルターは、ツールとして指定したオペレーションのみを公開する許可リストを作成します。

API Gateway コンソールから、API Gateway REST API ステージをゲートウェイターゲットとして設定することもできます。詳細については、Amazon API Gateway ドキュメントのAgentCore ゲートウェイにステージを追加する」を参照してください。

主な考慮事項と制限事項

API Gateway REST API ステージをターゲットとして使用する場合は、次の要件と制限に注意してください。

  • API は AgentCore Gateway と同じアカウントにある必要があります。

  • API は AgentCore Gateway と同じリージョンにある必要があります。

  • API は API Gateway REST API である必要があります。API Gateway HTTP APIs または WebSocket APIsはサポートされていません。

  • API は、パブリックエンドポイントタイプ で設定する必要があります。プライベートエンドポイントはサポートされていません。VPC 内のリソースにアクセスできるゲートウェイターゲットを作成するには、パブリックエンドポイントと API Gateway プライベート統合を使用する必要があります。

  • REST API にAWS_IAM認可を使用するメソッドがあり、API キー が必要な場合、AgentCore Gateway はこのメソッドをサポートしません。処理から除外されます。

  • API が /pets/{proxy+} などのプロキシリソースを使用している場合、AgentCore Gateway はこのメソッドをサポートしません。

  • API Gateway ターゲットをセットアップするために、AgentCore Gateway はユーザーに代わって API Gateway の GetExport API を呼び出して、REST API 定義の OpenAPI 3.0 形式のエクスポートを取得します。これとターゲット設定への影響の詳細については、「API Gateway Export」を参照してください。

API Gateway ツールの設定

API Gateway REST API をゲートウェイターゲットとして追加する場合は、API Gateway ツール設定を指定する必要があります。API Gateway ツール設定は、REST API のどのオペレーションをツールとして公開するかを定義します。公開するオペレーションを選択するにはツールフィルターのリストが必要で、オプションでツールの上書きを受け入れて、ツール名や説明などのツールメタデータをカスタマイズします。

ツールフィルター

ツールフィルターを使用すると、パスとメソッドの組み合わせを使用して REST API オペレーションを選択できます。各フィルターは 2 つのパスマッチング戦略をサポートしています。

  • 明示的なパス – などの 1 つの特定のパスに一致 /pets/{petId}

  • ワイルドカードパス – /pets/* など、指定されたプレフィックスで始まるすべてのパスに一致します。

各フィルターは、パスと HTTP メソッドのリストの両方を指定します。フィルターは、API に存在する一致する組み合わせに解決されます。複数のフィルターが重複する可能性があり、重複は自動的に重複解除されます。

ツールのオーバーライド

デフォルトでは、MCP ツール名は、フィルターに一致するパスとメソッドの組み合わせoperationIdごとに から取得されます。フィルター一致operationId用の がない場合は、名前を提供する対応するツールオーバーライドが必要です。operationId とオーバーライド名の両方がない場合、ターゲットの作成と更新は検証に失敗します。AgentCore Gateway のツール名の詳細については、AgentCore Gateway ツールの名前を理解する」を参照してください。

ツールの上書きはオプションです。これにより、フィルタリング後に特定のオペレーションのツール名または説明をカスタマイズできます。各オーバーライドでは、明示的なパスと単一の HTTP メソッドを指定する必要があります。ワイルドカードがサポートされていません。オーバーライドは、API に存在するオペレーションと一致し、フィルターによって解決されたオペレーションのいずれかに対応する必要があります。選択されていないオペレーションを上書きすることはできません。を出力するオペレーションからのインポートでエラーが発生した場合は、代わりにツールオーバーライドoperationIdを使用できます。

API Gateway ツール設定の例

次の API Gateway ツール設定の例は、フィルターとオーバーライドを使用する方法を示しています。すべての例では、以下のパスとメソッドで API を使用します。

/pets/{petId} - GET /pets/{petId} - POST /pets/{petId} - OPTIONS /pets - GET /pets - OPTIONS / - GET

ワイルドカードパスとメソッドのリスト

ツール設定:

{ "filterPath": "/pets/*", "methods": ["GET", "POST"] }

結果

  • GET /pets/{petId}

  • POST /pets/{petId}

メソッドの明示的なパスとリスト

ツール設定:

{ "filterPath": "/pets/{petId}", "methods": ["GET", "POST"] }

結果

  • GET /pets/{petId}

  • POST /pets/{petId}

明示的なパスと明示的なメソッドのリスト (最も具体的)

ツール設定:

{ [ { "filterPath": "/pets/{petId}", "methods": ["POST"] }, { "filterPath": "/pets/{petId}", "methods": ["GET"] } ] }

結果

  • GET /pets/{petId}

  • POST /pets/{petId}

明示的なパスとワイルドカードパスを混在させて一致させます。

ツール設定:

{ [ { "filterPath": "/pets/{petId}", "methods": ["GET"] }, { "filterPath": "/*", "methods": ["GET"] } ] }

結果

  • GET /pets/{petId}

  • GET /pets/

ツールフィルターとツールオーバーライド

ツールフィルターを指定し、オーバーライドを追加できます。オーバーライドは、/pets などの REST API のリソースパスと、指定されたパスに対して公開する HTTP メソッドを指定します。オーバーライドは、REST API の既存のパスと明示的に一致する必要があります。

ツール設定

{ "toolFilters": [ { "filterPath": "/pets/*", "methods": ["GET", "POST"] }, { "filterPath": "/", "methods": ["GET"] } ], "toolOverrides": [ { "path": "/pets/{petId}", "method": "GET", "name": "GetPetById", "description": "Retrieve a specific pet by its ID" } ] }

結果

  • GET /pets/{petId} – 最初の toolFilter と一致しますが、名前と説明は のエントリに基づいて上書きされます。 toolOverrides

  • POST /pets/{petId} – 最初に一致しますtoolFilterが、エクスポートされた OpenAPI 仕様descriptionoperationIdと をツール名と説明に使用します。

  • GET / – パスと単一のメソッドに名前を付ける 2 番目の明示的なツールフィルターで一致

API Gateway のエクスポート

API Gateway ターゲットをセットアップするために、AgentCore Gateway はユーザーに代わって API Gateway の GetExport オペレーションを呼び出し、API 定義の OpenAPI 3.0 形式のエクスポートを取得します。これにより、ゲートウェイは受信 MCP リクエストを HTTP リクエストに適切に変換し、レスポンスを処理することができます。AgentCore Gateway が GetExport オペレーションを呼び出す場合の考慮事項は次のとおりです。

  • GetExport リクエストは、フォワードアクセスセッションを使用して で行われ、発信者の認証情報を使用します。

    • ターゲットを作成する発信者には、API Gateway の API で GetExport を呼び出すアクセス許可が必要です。

    • GetExport リクエストは CloudTrail に記録されます。

  • エクスポートされた API には、OpenAPI ターゲットタイプと同じ考慮事項と制限が適用されます。

  • API Gateway からエクスポートされる OpenAPI 仕様の最大サイズは 50 MB です。

REST API での operationId の更新

重要

エクスポートされた OpenAPI 仕様には、ツールとして公開するすべてのオペレーションのoperationIdフィールドが含まれている必要があります。operationId は MCP インターフェイスのツール名として使用されます。

REST API を更新して、GetExport によって返される OpenAPI 定義が operationId に設定されていることを確認できます。これは、ツールオーバーライドを提供する代替手段です。次に、 を設定する 2 つの方法について説明しますoperationId

OpenAPI 定義を更新して operationID を設定する OpenAPI

デプロイされた API ステージから OpenAPI 定義をエクスポートするには、GetExport を呼び出し、欠落しているオペレーションを更新し、API operationId を再インポートします。

  1. GetExport を呼び出して、デプロイされた API ステージから OpenAPI 定義をエクスポートします。これを行うには、 CLI を使用します。

    aws apigateway get-export \ --rest-api-id rest-api-id \ --stage-name api-stage \ --export-type oas30 \ --parameters 'extensions=apigateway' \ '/path/to/api_oas30_template.json'
  2. OpenAPI 定義を手動で編集して、 プロパティがないオペレーションoperationIdに を追加します。

  3. PutRestApi を使用して、更新された OpenAPI 定義をインポートします。これを行うには、 CLI AWS を使用します。

    aws apigateway put-rest-api \ --rest-api-id rest-api-id \ --mode merge \ --body 'fileb:///path/to/api_oas30_template.json'
  4. CLI を使用して API AWS をステージに再デプロイします。

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

REST API の メソッドを更新operationIdして を設定する

API Gateway メソッドを設定して、UpdateMethod コマンドoperationNameを使用して を追加できます。API がエクスポートされると、 は operationNameになりますoperationId

  1. CLI を使用して UpdateMethod AWS を呼び出します。

    aws apigateway update-method \ --rest-api-id rest-api-id \ --resource-id resource-id \ --http-method http-method \ --patch-operations '[ { "op": "replace", "path": "/operationName", "value": operation-id } ]'
  2. CLI を使用して API AWS をステージに再デプロイします。

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

API Gateway API でサポートされているアウトバウンド認可方法

アウトバウンド認証を使用して API を呼び出すように AgentCore Gateway ターゲットを設定できます。

AgentCore Gateway は、API Gateway ターゲットに対して次のタイプのアウトバウンド認可をサポートしています。

  • IAM ベースのアウトバウンド認可ゲートウェイサービスロールを使用して、署名バージョン 4 (SigV4 または SigV4a) でゲートウェイターゲットへのアクセスを認証します。API Gateway API で IAM 認可を有効にする必要があります。

  • API キー – AgentCore Gateway によって管理される API キーを使用して API を呼び出します。これは、API Gateway の API キーとは異なります。

  • 認可なし (非推奨) – 一部のターゲットタイプでは、アウトバウンド認可をバイパスするオプションが提供されます。

詳細については、「ゲートウェイのアウトバウンド認可を設定する」を参照してください。

IAM アウトバウンド認可

API Gateway を使用すると、IAM で REST API を保護できます。IAM 認可が有効になっている場合、クライアントは署名バージョン 4 (SigV4 または SigV4a) を使用して AWS 認証情報でリクエストに署名する必要があります。

IAM アウトバウンド認可を設定するには

  1. AgentCore Gateway サービスロールのアクセス許可に従って、正しい信頼アクセス許可を持つ IAM ロールを作成します。

  2. ロールにポリシーを追加して、次のポリシーなど、ターゲットの設定に使用した REST API ID とステージに対応するリソースexecute-api:Invokeとともに アクションを許可します。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:aws-region:account-id:rest-api-id/api-stage/*/*", "Effect": "Allow" } ] }

API Gateway リソースポリシー

API Gateway リソースポリシーは、指定したプリンシパルが API を呼び出すことができるかどうかを制御するために API Gateway REST API にアタッチする JSON ポリシードキュメントです。AgentCore Gateway がリソースポリシーを使用して REST API を呼び出すには、以下を実行する必要があります。

  • ツールとして利用可能にする REST API メソッドAWS_IAMのメソッド認可タイプを に設定します。

  • bedrock-agentcore.amazonaws.com プリンシパルがサービスを呼び出すことができるようにリソースポリシーを設定します。ポリシーにプリンシパルを追加できます。

以下は、AgentCore Gateway に REST API へのアクセスを許可する API リソースポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:111122223333:abcd123/*/*/*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/my-gateway-d4jrgkaske" } } } ] }

API キーアウトバウンド認可

API キーを使用してアウトバウンド認可を設定するには、AgentCore Identity サービスを使用して認証情報プロバイダーを作成し、API Gateway を介して 用に設定した API キーを使用します。

API キーのアウトバウンド認可を設定するには

  1. API Gateway で REST API の API キーを設定するに従ってAPIs Gateway で API キーを作成します。

  2. API キー を使用してアウトバウンド認可を設定し、API Gateway で作成した API キーを指定する手順に従います。