View a markdown version of this page

HTTP パススルーターゲット - Amazon Bedrock AgentCore

HTTP パススルーターゲット

HTTP パススルーターゲットを追加して、ゲートウェイ経由で任意の HTTP エンドポイントにトラフィックをルーティングできます。ゲートウェイは、プロトコル変換なしでターゲットエンドポイントにリクエストを転送し、安全なプロキシレイヤーとして機能します。これにより、パススルーターゲットは、ゲートウェイの一元的な認証、ポリシーの適用、オブザーバビリティを通じてアクセスするエージェント URLs、外部 APIs、または HTTP サービスのフロンティングに最適です。

ゲートウェイに HTTP パススルーターゲットを追加すると、次の場合に便利です。

  • 統合されたアクセスコントロールを備えた単一のゲートウェイエンドポイントの背後にあるフロントエージェントサービス (A2A エージェント、外部 MCP サーバー、カスタム推論エンドポイントなど)。

  • ゲートウェイがインバウンド認証とアウトバウンド認証情報インジェクションを管理している間に、トラフィックを外部サービスにルーティングします。

  • ガードレールやアクセスコントロールなどのゲートウェイポリシーを、外部エンドポイント宛てのリクエストに適用します。

  • パスベースのルーティング (/{targetName}/{path}) を使用して、単一のゲートウェイを介して複数の外部サービスに到達します。

ターゲット設定

HTTP パススルーターゲットを作成するときは、ターゲットエンドポイント URL と、ターゲットが実装するアプリケーションプロトコルを示すプロトコルタイプを指定します。ゲートウェイは、オブザーバビリティとポリシーの評価にプロトコルタイプを使用しますが、プロトコル変換は実行しません。

HTTP パススルーターゲットのターゲット設定では、次の構造を使用します。

{ "http": { "passthrough": { "endpoint": "https://partner-agent.example.com", "protocolType": "A2A" } } }

次の例は、カスタムプロトコルと明示的な API スキーマを持つパススルーターゲットを示しています。

{ "http": { "passthrough": { "endpoint": "https://my-service.example.com", "protocolType": "CUSTOM", "schema": { "source": { "s3": { "uri": "s3://DOC-EXAMPLE-BUCKET/service-schema.yaml" } } } } } }
  • endpoint (必須) – ターゲットサービスの HTTPS URL。ゲートウェイはこのエンドポイントにリクエストを転送します。

  • protocolType (必須) – ターゲットが実装するアプリケーションプロトコル。有効な値:

    • MCP – ターゲットは MCP サーバーです。これは、直接アクセスする (他の MCP ターゲットと集約しない) 単一の MCP サーバーにルーティングする場合に使用します。

    • A2A – ターゲットは Agent-to-Agent (A2A) プロトコルを実装します。

    • INFERENCE – ターゲットは推論エンドポイントです。

    • CUSTOM – ターゲットはカスタムプロトコルまたは独自のプロトコルを実装します。

  • スキーマ (オプション) – パススルーターゲットのリクエストとレスポンスの構造を記述する API スキーマ。ゲートウェイはこのスキーマを使用して、ガードレールなどのポリシーエンジン機能を有効にします。スキーマ形式は OpenAPI または Smithy として自動検出されます。

    スキーマの要件は、プロトコルタイプによって異なります。

    • MCP および A2Aプロトコルタイプでは、デフォルトのスキーマが自動的に適用されます。デフォルトを上書きしない限り、スキーマを指定する必要はありません。

    • よく知られているプロバイダー (OpenAI、Anthropic、または Amazon Bedrock) を持つINFERENCEプロトコルタイプでは、エンドポイントドメインに基づいてデフォルトのスキーマが適用されます。

    • CUSTOM プロトコルタイプでは、ガードレールを使用するためのスキーマを指定する必要があります。

      schema オブジェクトには、スキーマコンテンツの場所sourceを指定する が含まれています。

    • s3 – スキーマファイルを指す S3 URI (例: s3://DOC-EXAMPLE-BUCKET/service-schema.yaml)。

    • inlinePayload – 文字列として直接提供されるスキーマコンテンツ。

HTTP パススルーターゲットの作成

次の例では、A2A エージェント、外部 MCP サーバー、IAM 認証の内部サービス、API キーで認証された外部 API など、さまざまなタイプのエンドポイントにルーティングするパススルーターゲットを作成します。

AgentCore CLI
  1. OAuth 認証情報を使用して A2A エージェントにルーティングします。

    agentcore add gateway-target \ --name partner-agent \ --type passthrough \ --passthrough-endpoint https://partner-agent.example.com \ --passthrough-protocol A2A \ --outbound-auth oauth \ --credential-name partner-oauth \ --gateway MyGateway agentcore deploy

    OAuth 認証情報を使用して外部 MCP サーバーにルーティングします。

    agentcore add gateway-target \ --name slack-mcp \ --type passthrough \ --passthrough-endpoint https://mcp-slack.example.com \ --passthrough-protocol MCP \ --outbound-auth oauth \ --credential-name slack-oauth \ --gateway MyGateway agentcore deploy

    IAM (SigV4) ロールベースの認証を使用して、CUSTOMプロトコルと S3 スキーマを使用して内部サービスにルーティングします。

    agentcore add gateway-target \ --name internal-service \ --type passthrough \ --passthrough-endpoint https://internal-service.example.com \ --passthrough-protocol CUSTOM \ --schema s3://amzn-s3-demo-bucket/internal-service-schema.yaml \ --signing-service execute-api \ --signing-region us-west-2 \ --gateway MyGateway agentcore deploy

    API キー認証情報を使用して外部 API にルーティングします。

    agentcore add gateway-target \ --name external-api \ --type passthrough \ --passthrough-endpoint https://api.example.com \ --passthrough-protocol CUSTOM \ --outbound-auth api-key \ --credential-name my-api-key \ --credential-parameter-name x-api-key \ --gateway MyGateway agentcore deploy
AWS CLI
  1. OAuth 認証情報を使用して A2A エージェントにルーティングします。

    aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "partner-agent", "targetConfiguration": { "http": { "passthrough": { "endpoint": "https://partner-agent.example.com", "protocolType": "A2A" } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/oauthcredentialprovider/partner-oauth" } } } ] }'

    OAuth 認証情報を使用して外部 MCP サーバーにルーティングします。

    aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "slack-mcp", "targetConfiguration": { "http": { "passthrough": { "endpoint": "https://mcp-slack.example.com", "protocolType": "MCP" } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/oauthcredentialprovider/slack-oauth" } } } ] }'

    CUSTOM プロトコルと S3 スキーマを使用して、IAM ロールベースの認証を使用して内部サービスにルーティングします。

    aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "internal-service", "targetConfiguration": { "http": { "passthrough": { "endpoint": "https://internal-service.example.com", "protocolType": "CUSTOM", "schema": { "source": { "s3": { "uri": "s3://DOC-EXAMPLE-BUCKET/internal-service-schema.yaml" } } } } } }, "credentialProviderConfigurations": [ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ] }'

    API キー認証情報を使用して外部 API にルーティングします。

    aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "external-api", "targetConfiguration": { "http": { "passthrough": { "endpoint": "https://api.example.com", "protocolType": "CUSTOM" } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/apikeycredentialprovider/my-api-key", "credentialParameterName": "x-api-key" } } } ] }'

HTTP パススルーターゲットの呼び出し

ゲートウェイを介して HTTP パススルーターゲットを呼び出すには、パスベースのルーティングを使用してターゲットにリクエストを送信します。URL 形式は次のとおりです。

https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/{targetName}/{path}

ゲートウェイは、ターゲット{endpoint}/{path}の にリクエストを転送します。をゲートウェイ ID {gatewayId}に、 {region} を AWS リージョンに、 {targetName} をターゲット名に、 を転送先のパス{path}に置き換えます。

次の の例では、ゲートウェイを介してパートナーエージェントに A2A メッセージを送信します。

curl -X POST https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/partner-agent/invocations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{ "jsonrpc": "2.0", "id": "req-001", "method": "message/send", "params": { "message": { "role": "user", "parts": [{"kind": "text", "text": "What is the stock price of AMZN?"}], "messageId": "msg-001" } } }'

次の例では、ゲートウェイを介して MCP サーバーを呼び出します。

curl -X POST https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/slack-mcp/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

アウトバウンド認可

HTTP パススルーターゲットは、次のアウトバウンド認可タイプをサポートしています。

  • IAM (SigV4) (GATEWAY_IAM_ROLE) – ゲートウェイはゲートウェイサービスロールを引き受けて、ターゲットへのリクエストに署名します。

  • OAuth (OAUTH) – ゲートウェイは、Amazon Bedrock AgentCore ID サービスを介してターゲットで設定された認証情報プロバイダーから OAuth トークンを取得します。

  • 発信者 IAM 認証情報 (CALLER_IAM_CREDENTIALS) – ゲートウェイは、発信者の IAM ID とアクセス許可を使用して、SigV4 を使用してターゲットへのリクエストに署名します。AWS_IAM または AUTHENTICATE_ONLYオーソライザータイプのゲートウェイでのみ使用できます。

  • トークンパススルー (JWT_PASSTHROUGH) – ゲートウェイはインバウンドトークンを検証し、変更せずにターゲットに渡します。

  • API キー (API_KEY) – ゲートウェイは、トークンボールトで設定された認証情報プロバイダーから API キーを取得し、指定されたリクエストヘッダーとしてアウトバウンドリクエストに挿入します。