

# ゲートウェイターゲットの Amazon Bedrock AgentCore Gateway VPC Egress を設定する
<a name="gateway-vpc-egress"></a>

AgentCore Gateway サービスは、アプリケーションの安全で制御された出力トラフィック管理を提供し、Virtual Private Cloud (VPC) 内のリソースとのシームレスな通信を可能にします。このドキュメントでは、送信トラフィックが AgentCore Gateway を通過して VPC リソースに到達する方法の概要を説明します。サポートされているゲートウェイターゲットタイプ (AgentCore ランタイム経由の Lambda、API Gateway、および MCP サーバー）、それらの設定要件、および各ターゲットタイプでサポートされている認証方法について説明します。このガイドでは、ネットワーク分離を維持し、アーキテクチャ全体で最小特権の原則に従って、適切な送信トラフィックフローを可能にするために必要なセキュリティ上の考慮事項、ルーティングメカニズム、ベストプラクティスについて説明します。

## MCP
<a name="mcp-target"></a>

AgentCore Gateway は、ターゲットエンドポイントとしてモデルコンテキストプロトコル (MCP) サーバーをサポートし、さまざまな顧客の要件を満たすための柔軟なデプロイオプションを提供します。MCP サーバーは、インフラストラクチャのニーズとセキュリティ要件に応じて、複数の方法で設定できます。

MCP ターゲットは、AgentCore でホストされていないか、AgentCore ランタイムまたはゲートウェイでホストされている 2 つのタイプのいずれかです。両方について以下で説明します。

### AgentCore でホストされていない MCPs
<a name="self-hosted-mcp"></a>

AgentCore Gateway は、Amazon VPC Lattice を搭載したプライベートエンドポイントを使用して、VPC 内で実行されているセルフホスト MCP サーバーへの接続をサポートします。ゲートウェイターゲット`privateEndpoint`で を設定して、パブリックインターネットに公開することなく、トラフィックを MCP サーバーにプライベートにルーティングできます。

次の例では、マネージド Lattice を使用してプライベート MCP サーバーターゲットを作成します。

```
{
  "name": "my-private-mcp-target",
  "privateEndpoint": {
    "managedVpcResource": {
      "vpcIdentifier": "vpc-0abc123def456",
      "subnetIds": ["subnet-0abc123", "subnet-0def456"],
      "endpointIpAddressType": "IPV4",
      "securityGroupIds": ["sg-0abc123def"]
    }
  },
  "targetConfiguration": {
    "mcp": {
      "mcpServer": {
        "endpoint": "https://my-mcp-server.internal.example.com/mcp"
      }
    }
  }
}
```

VPC エンドポイントや内部ロードバランサーなどの中間コンポーネントを介してトラフィックをルーティングする場合は、 `routingDomain` を指定できます。詳細については、[「中間ドメインを介してトラフィックをルーティング](vpc-egress-private-endpoints.md#lattice-vpc-egress-routing-domain)する」を参照してください。

MCP サーバーがプライベート認証機関によって発行された TLS 証明書を使用している場合は、内部 Application Load Balancer の前にパブリック ACM 証明書を配置できます。詳細については、[「プライベート証明書の回避策: ALB](vpc-egress-private-endpoints.md#lattice-vpc-egress-private-certs)」を参照してください。

セルフマネージド Lattice、クロスアカウント設定、高度な設定については、[「VPC Lattice を使用して VPC のプライベートリソースに接続する](vpc-egress-private-endpoints.md)」を参照してください。

### AgentCore ランタイムまたはゲートウェイ
<a name="agentcore-runtime"></a>

AgentCore Runtime は、マネージドインフラストラクチャアプローチを通じて VPC 内のリソースと通信するためのネイティブサポートを提供します。AgentCore Gateway と AgentCore Runtime 間のすべての通信は AWS バックボーンにとどまり、データがパブリックインターネットを通過しないようにします (中国データセンターへのクロスリージョン呼び出しを除く）。詳細については、Amazon VPC のよくある質問の[「接続](https://aws.amazon.com/vpc/faqs/#connectivity)」セクションを参照してください。 FAQs AgentCore ランタイムを VPC に接続する詳細なセットアップ手順については、[「Configure Amazon Bedrock AgentCore Runtime and tools for VPC](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-vpc.html)」を参照してください。

AgentCore Gateway から AgentCore ランタイムへのアウトバウンド認可では、認可なし (本番稼働用には推奨されません) とクライアント認証情報付与付き OAuth (machine-to-machine2 つの認証方法がサポートされています。認可が設定されていない場合、AgentCore Gateway から AgentCore Runtime へのリクエストには認証トークンがありません。このアーキテクチャは、セキュリティの分離を維持しながら、シームレスな接続パスを提供します。セキュリティのベストプラクティスとして、AgentCore Runtime と AgentCore Gateway の両方に制限的な認証と認可のアクセス許可を設定し、特定のユースケースに必要なリソースとオペレーションのみへのアクセスを制限します。AgentCore ランタイムの出力とイングレスに AgentCore Gateway が使用する OAuth ID を設定するには、次のドキュメントを使用します。
+  [OAuth クライアントを設定する](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-oauth-client.html) 
+  [ゲートウェイターゲットにアクセスするための認可タイプと認証情報を指定する](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building-adding-targets-authorization.html) 
+  [インバウンド認証とアウトバウンド認証による認証と認可](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-oauth.html) 

![AgentCore Gateway がプライベートリンクエンドポイントに接続できないことを示すアーキテクチャ図。](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/gateway-runtime-vpc-access.png)


 **AgentCore ランタイムをターゲットとする CreateGatewayTarget の例** 

次の例は、AgentCore Runtime を使用してゲートウェイターゲットを作成する方法を示しています。

```
POST /gateways/gatewayIdentifier/targets/ HTTP/1.1
Content-type: application/json

    {
    "clientToken": "string",
    "credentialProviderConfigurations": [
      {
         "credentialProvider": {
            "oauthCredentialProvider": {
               "providerArn": "string",
               "scopes": [ "string" ],
               ...
            }
         },
         "credentialProviderType": "OAUTH"
      }
    ],
    "description": "string",
    "metadataConfiguration": {
      "allowedQueryParameters": [ "string" ],
      "allowedRequestHeaders": [ "string" ],
      "allowedResponseHeaders": [ "string" ]
    },
    "name": "string",
    "targetConfiguration": {
      "mcp": {
         "mcpServer": {
            "endpoint": "https://bedrock-agentcore.<region>.amazonaws.com/runtimes/<runtime-id>/invocations?qualifier=DEFAULT&accountId=<account-id>"
         }
      }
    }
}
```

**注記**  
不要な余分なネットワークホップ`privateEndpoint`を防ぐために、 で VPC エンドポイント (VPCE) URL を使用しないでください。代わりに、トラフィックが AWS バックボーンに残る直接の AgentCore ランタイムエンドポイントを使用します。

## API ターゲットを開く
<a name="openapi-target"></a>

### Open API Target 経由の API Gateway エンドポイント
<a name="api-gateway-via-openapi"></a>

API Gateway をターゲットとして直接追加できない場合は、リソースを OpenAPI 仕様としてエクスポートし、その仕様を OpenAPI ターゲットとして AgentCore Gateway OpenAPI にインポートできます。
+  [API Gateway から REST API をエクスポートする](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-export-api.html) 
+  [OpenAPI スキーマターゲット](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-schema-openapi.html) 

API Gateway にプライベート REST APIs[「API Gateway のプライベート REST APIs](#private-api-gateway)」の手順に従います。

### その他のエンドポイント
<a name="other-endpoints"></a>

設定を使用して、VPC 内のプライベートエンドポイントに到達するように Open API ターゲット`privateEndpoint`を設定できます。AgentCore Gateway は Amazon VPC Lattice を使用して、パブリックインターネットに公開することなく、エンドポイントへのプライベート接続を確立します。

次の例では、マネージド Lattice を使用してプライベート OpenAPI ターゲットを作成します。

```
{
  "name": "my-private-openapi-target",
  "privateEndpoint": {
    "managedVpcResource": {
      "vpcIdentifier": "vpc-0abc123def456",
      "subnetIds": ["subnet-0abc123", "subnet-0def456"],
      "endpointIpAddressType": "IPV4",
      "securityGroupIds": ["sg-0abc123def"]
    }
  },
  "targetConfiguration": {
    "mcp": {
      "openApiSchema": {
        "inlinePayload": "<your OpenAPI spec JSON with server URL pointing to your private endpoint>"
      }
    }
  }
}
```

VPC エンドポイントや内部ロードバランサーなどの中間コンポーネントを介してトラフィックをルーティングする場合は、 `routingDomain` を指定できます。詳細については、[「中間ドメインを介してトラフィックをルーティング](vpc-egress-private-endpoints.md#lattice-vpc-egress-routing-domain)する」を参照してください。

エンドポイントがプライベート認証機関によって発行された TLS 証明書を使用している場合は、その前にパブリック ACM 証明書を持つ内部 Application Load Balancer を配置できます。詳細については、[「プライベート証明書の回避策: ALB](vpc-egress-private-endpoints.md#lattice-vpc-egress-private-certs)」を参照してください。

セルフマネージド Lattice、クロスアカウント設定、高度な設定については、[「VPC Lattice を使用して VPC のプライベートリソースに接続する](vpc-egress-private-endpoints.md)」を参照してください。

**注記**  
`privateEndpoint` 設定は、OpenAPI スキーマの単一のドメインに適用されます。スキーマが異なるドメインを持つ複数のサーバーエンドポイントを参照する場合は、 [AWS サポートケース](https://console.aws.amazon.com/support/home)を開いて のサポートをリクエストします`privateEndpointOverrides`。

## Smithy ターゲット
<a name="smithy-target"></a>

プライベートエンドポイント ( ) `privateEndpoint` の設定は、現在 Smithy ターゲットではサポートされていません。Smithy ターゲットにプライベート接続が必要な場合は、[AWS サポートケース](https://console.aws.amazon.com/support/home)を開いてサポートをリクエストします。

## API ゲートウェイ
<a name="api-gateway-target"></a>

AgentCore Gateway は、VPC リソースにアクセスするための中間レイヤーとして機能するターゲットタイプとして API Gateway をサポートします。AgentCore Gateway は、リージョンエンドポイントでのみ設定された REST API Gateway を特にサポートしています。ゲートウェイからの直接 VPC 通信は現在利用できませんが (この機能は将来のリリースが予定されています）、ゲートウェイは AWS バックボーン経由で API Gateway と通信し、トラフィックがパブリックインターネットを通過しないようにします (中国データセンターへのクロスリージョン呼び出しを除く）。その後、API Gateway は VPC Link を使用してリソースと通信し、ネットワーク分離を維持しながら AgentCore Gateway が内部サービスに到達するための安全なパスを作成できます。

セキュリティのベストプラクティスを実装するには、インバウンドトラフィックを AgentCore Gateway サービスプリンシパルまたは設定された API キーのみに制限し、他のソースからの不正アクセスを防ぐように API Gateway を設定します。AgentCore Gateway から API Gateway へのアウトバウンド認可では、IAM ベースの認証 (ゲートウェイサービスロールを使用して AWS 署名バージョン 4 で認証) と API キー認証 (AgentCore Gateway によって管理) の 2 つの認証方法のみがサポートされます。API Gateway ターゲットでは、OAuth ベースの認可とクロスアカウント API Gateway はサポートされません。これらには Open API Target 経由の API Gateway エンドポイントを使用してください。AgentCore Gateway 実行ロールのアクセス許可を制限して、広範な API Gateway アクセスを付与するのではなく、必要な特定の API Gateway エンドポイントのみを呼び出すようにし、ゲートウェイが意図しない API リソースとやり取りできないようにし、アーキテクチャ全体で最小特権の原則を維持します。

 [ターゲットとしての Amazon API Gateway REST API ステージ](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-api-gateway.html) 

### IAM 認証を使用した API Gateway 統合のアクセス許可
<a name="api-gateway-permissions"></a>

 **API Gateway リソースポリシーが AgentCore Gateway にロックダウンされました** 

次のリソースポリシーは、API Gateway から AgentCore Gateway へのアクセスを制限します。

```
{
"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:rest-api-id/api-stage/*/*"
        ],
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/my-gateway-d4jrgkaske"
          }
        }
      }
    ]
}
```

 **AgentCore Gateway 実行ロールポリシー** 

次のポリシーは、API Gateway を呼び出すアクセス許可をゲートウェイに付与します。

```
{
"Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "execute-api:Invoke"
        ],
        "Resource": [
          "arn:aws:execute-api:us-west-2:111122223333:abcd123/prod/*/*"
        ]
      }
    ]
}
```

 **AgentCore Gateway 実行ロールの信頼ポリシー** 

次の信頼ポリシーにより、AgentCore Gateway は実行ロールを引き受けることができます。

```
{
"Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "bedrock-agentcore.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
          "StringEquals": {
            "aws:SourceAccount": "111122223333"
          },
          "ArnLike": {
            "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/*"
          }
        }
      }
    ]
}
```

#### API Gateway のプライベート REST API
<a name="private-api-gateway"></a>

プライベートエンドポイントを持つ API Gateway ターゲットはネイティブにサポートされていません。ただし、プライベート API Gateway を OpenAPI スキーマとしてエクスポートし、 で設定されたそのスキーマで Open API `privateEndpoint` ターゲットを使用できます。`routingDomain` を API Gateway VPC エンドポイント (VPCE) DNS 名に設定し、OpenAPI スキーマサーバー URL がパブリック TLS 証明書に一致するドメインを使用していることを確認します。

```
{
  "name": "my-private-apigw-target",
  "privateEndpoint": {
    "managedVpcResource": {
      "vpcIdentifier": "vpc-0123456789abcdef0",
      "subnetIds": ["subnet-0123456789abcdef0", "subnet-0abcdef1234567890"],
      "endpointIpAddressType": "IPV4",
      "routingDomain": "<vpce-id>.execute-api.<region>.vpce.amazonaws.com"
    }
  },
  "targetConfiguration": {
    "mcp": {
      "openApiSchema": {
        "inlinePayload": "<OpenAPI spec JSON with server URL matching the public certificate domain for your API Gateway, for example https://<api-id>.execute-api.<region>.amazonaws.com>"
      }
    }
  }
}
```

プライベートエンドポイント設定の詳細については、[「VPC Lattice を使用して VPC 内のプライベートリソースに接続する](vpc-egress-private-endpoints.md)」を参照してください。
+  [API Gateway から REST API をエクスポートする](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-export-api.html) 
+  [OpenAPI スキーマターゲット](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-schema-openapi.html) 

## Lambda
<a name="lambda-target"></a>

AgentCore Gateway は、ターゲットタイプの 1 つとして Lambda ターゲットをサポートしているため、VPC 内のリソースと通信できる Lambda 関数をシームレスに呼び出すことができます。この機能はout-of-the-box使用でき、お客様からの追加設定は必要ありません。ゲートウェイは、VPC アクセスで設定された Lambda 関数をすぐに呼び出して、データベース、APIs、その他のサービスなどの内部リソースにアクセスできます。セキュリティのベストプラクティスを維持するために、最小限のアクセス許可で AgentCore Gateway 実行ロールを設定することを強くお勧めします。具体的には、広範な Lambda 実行アクセス許可を付与するのではなく、目的の Lambda 関数のみを呼び出すように制限します。最小特権のこの原則により、ゲートウェイまたは同じロールを使用する他の発信者が意図しない Lambda 関数を誤って呼び出すことがなくなり、セキュリティ攻撃対象領域が減少し、 AWS 環境内で厳格なアクセスコントロールが維持されます。

## プライベート ID プロバイダー
<a name="private-idp"></a>

AgentCore は、インバウンド JWT 認可とアウトバウンド OAuth 認証情報プロバイダーの両方のプライベート OAuth ID プロバイダーへの接続をサポートするようになりました。これにより、Keycloak、PingFederate、または VPC 内で実行されているその他の OIDC 準拠の認可サーバーなどのセルフホスト IdPs をパブリックインターネットに公開することなく使用できます。

設定手順の詳細については、[「VPC のプライベート ID プロバイダーに接続する](identity-private-idp.md)」を参照してください。

または、インバウンド認証にインターセプタ Lambda 関数を使用し、アウトバウンド認証で使用するインターセプタ Lambda の認可ヘッダーを上書きすることもできます。
+  [ゲートウェイインターセプター](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html) 
+  [ゲートウェイターゲットにアクセスするための認可タイプと認証情報を指定する](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building-adding-targets-authorization.html) 

## 制約事項と考慮事項
<a name="gateway-vpc-access-limitations"></a>
+  **インバウンド認可が必要: **で設定されたゲートウェイターゲットは、インターセプタ Lambda がゲートウェイで設定されていない限り、インバウンドオーソライザータイプ`NO_AUTH`として を`privateEndpoint`使用できません。

クロスアカウント接続と DNS TTL 設定に関するその他の制限については、「VPC [Lattice を使用して VPC のプライベートリソースに接続する](vpc-egress-private-endpoints.md)」の[「制限と考慮事項](vpc-egress-private-endpoints.md#lattice-vpc-egress-limitations)」を参照してください。