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 仕様descriptionの operationIdと をツール名と説明に使用します。

  • 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 キーを指定する手順に従います。