AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

ネットワーク Egress ポリシーの管理

ネットワーク Egress ポリシーは、エージェントのランタイム ポッドが到達できる外部ホストを制御します。 Egress ポリシーはエージェントファイル内で宣言され、エージェントを配置するときに適用されます。すべてのワークスペースは deny_allモードで起動します。つまり、ランタイムでは Atlas Agent Engine の基本ポリシーを超えるアウトバウンド接続は許可されません。このガイドでは、エージェントが必要とする宛先を宣言し、アウトバウンド アクセスポリシーを設定する方法を学習します。エージェントファイルの sandboxes ブロックで、各サンドボックスに両方を構成します。

各サンドボックスの Egress ポリシーには、network.egress で宣言する宛先と、network.egress_mode によって設定された Egressモードの2 つの部分があります。モードは、プラットフォームがそれらの宛先(allow_list、deny_all、または allow_all)を強制する方法を決定します。

基本ポリシーでは、次の宛先へのアウトバウンド トラフィックは常に許可されます。

  • DNS

  • 同じ名前空間内のサービス

  • ワークスペースにリンクされた Atlas クラスター

基本ポリシーはこれらの宛先をカバーしているため、Egress の宛先としては追加しません。

Tip

Atlas クラスターをワークスペースにリンクする方法については、「 ネットワーク Egress 用の Atlas クラスターのリンク 」ガイドを参照してください。

Egress ポリシーは、次の方法で管理します。

  • 最初の配置の前に、エージェントファイルはEgress ポリシーを宣言する必要があります。 agent.yamlファイル内の sandboxes.agent.network と sandboxes.tool.network の下に各サンドボックスのポリシーを宣言します。 egress ブロックには宛先が一覧表示され、egress_mode にはモードが設定されます。

  • エージェントを配置して Egress ポリシーを適用します。配置には Project Owner ロールが必要です。

  • 最初の配置後に Egress ポリシーを更新できます。 agentengine agent egress add と agentengine agent egress remove を使用して各サンドボックスの network.egress ブロックを編集し、agentengine agent egress mode を使用してその network.egress_mode を設定します。これらの変更を有効にするには、エージェントを再配置します。

  • 現在配置されているポリシーを検査するには、agentengine egress またはワークスペースのアウトバウンド アクセスUI を使用します。これらのビューでは、ポリシーは編集されません。

注意

Atlas Agent Engine は、Atlas 外の宛先に対して次の Egress IPアドレスを使用します。

  • 34.196.57.85

  • 54.227.181.25

エージェントがSales force などの外部サービスを呼び出す場合、外部サービスの許可リストにはこれらのアドレスを含める必要があります。

始める前に、次の前提条件を満たしていることを確認してください。

  • agentengineCLI バージョン -alparent0.1.54 以降がインストールされており、PATH 環境変数で使用できます。詳細については、 「インストールと認証のガイド」を参照してください。

  • agentengine auth login コマンドを使用してプラットフォームで認証できます。

  • エージェントを配置し、Egress ポリシーの変更を適用するには、プロジェクト オーナーのロールが必要です。

次のセクションでは、Egress ポリシーを構成するサンドボックス、モード、および動作について説明します。

Egress はサンドボックスごとにスコープ設定されています。エージェントサンドボックスと ツール サンドボックスは個別に制御します。

Sandbox
説明

agent

エージェントサンドボックス。メインエージェントプロセス。

tool

ツール サンドボックス。ツール サンドボックスで実行するように構成したツールを実行します。デフォルトでは 、ツールはエージェントサンドボックスで実行されます。

agent.yaml では、sandboxes.agent.network または sandboxes.tool.network の下で各サンドボックスのポリシーを宣言します。 CLI コマンドの場合は、--component agent または --component tool を使用します。

同じサンドボックス内のツールは、そのサンドボックスに許可するすべての Egress 宛先にアクセスできます。サンドボックスがツール間でシークレットとネットワークアクセスを共有する方法については、 「 MongoDB Atlasエージェントエンジンの制限 」を参照してください。

各サンドボックスは次のいずれかのモードで動作します。このモードは、エージェントファイルのサンドボックスの network.egress_modeフィールドで設定します。

モード
動作

deny_all

ロックします。プラットフォームベース ポリシーのみがアクティブです。ユーザー定義の宛先にはアクセスできません。

allow_list

プラットフォーム 基本ポリシーは有効であり、network.egress にリストされている宛先にアクセスできます。

allow_all

開きます。ランタイムは、基本ポリシーに加えて、任意のホストへのアウトバウンド トラフィックを許可します。

同じサンドボックスの宛先リストと allow_all を組み合わせることはできません。宛先も一覧表示するサンドボックスに allow_all を設定すると、エージェントファイルの検証は失敗します。

agent.yamlファイルは、配置時に適用される Egress ポリシーの真実のソースです。最初に配置する前に、サンドボックスに network.egress_mode を設定して、ファイルで Egress ポリシーを宣言します。 allow_list の場合は、network.egress でも宛先を宣言します。ファイルにEgress ポリシーが宣言されていない場合、配置は拒否されます。

配置すると、プラットフォームはワークスペースにポリシーを適用します。ファイルで宣言されたモードは、サンドボックスの既存のモードよりも優先されます。

配置後、適用された設定を表示するには、agentengine egress またはワークスペースのアウトバウンド アクセスUIを使用します。

注意

エージェントでMCP サーバーを使用する場合は、各サーバーのホスト名が、サーバーを呼び出すサンドボックスの network.egress ブロックに表示されていることを確認します。 mcp.servers ブロックの下にサーバーを一覧表示しても、単独ではアウトバウンド アクセスは開かれません。

アクセスを指定するには、RBAC(Role-Based Access Control、ロールベースのアクセス制御)を使用できます。 Egress 操作には次のロールが必要です。

操作
必要なロール

配置された Egress ポリシー(agentengine egress またはワークスペースのアウトバウンド アクセスUI)を調べます

プロジェクト メンバー(読み取り)

ローカルエージェントファイルで Egress ポリシーを編集する(agentengine agent egress add、agentengine agent egress remove、agentengine agent egress mode)

ローカルで必要なロールはありません

エージェントを配置してファイルの Egress ポリシーを適用する

プロジェクトオーナー

プロジェクト メンバー(読み取り)ロールを持つユーザーは、配置されたポリシーを検査できます。ローカルエージェントファイルを編集する場合はロールは必要ありませんが、これらの変更を適用するためにエージェントを配置するにはプロジェクト オーナーのロールが必要です。

エージェントファイルの sandboxes.agent と sandboxes.tool の下の network ブロック内の各サンドボックスの Egress ポリシーを構成します。エージェントファイルへの変更は、エージェントを配置した後にのみ有効になります。

サンドボックスの network.egress ブロックを使用して、そのサンドボックスの外部ホスト名を許可します。次の例では、ツール サンドボックスのみが複数のホストへのアクセスを許可しています。

sandboxes:
agent:
network:
egress_mode: deny_all
tool:
network:
egress:
- fqdn: api.openai.com
ports: [443]
- fqdn: "*.googleapis.com"
ports: [443]
- fqdn: db.example.com
# Omit ports, or use an empty list, to allow all ports to
# this destination.

両方のサンドボックスでホストを許可するには、各サンドボックスの下にホストを一覧表示します。

サンドボックスの network.egress_modeフィールドを使用してその状態を設定します。有効な値は deny_all、allow_list、allow_all です。 egress_modeを省略すると、宛先をリストするサンドボックスは自動的に allow_list を使用します。

sandboxes ブロックには次のルールが適用されます。

  • sandboxes を宣言する場合は、sandboxes.agent を含める必要があります。

  • いずれかのサンドボックスが Egress を宣言している場合、Egress を宣言していないサンドボックスは deny_all を使用します。

  • サンドボックス内ではなく、最上位の network.atlas_clusters ブロックで Atlas クラスターを宣言します。

Tip

エージェントファイルが最上位の network ブロックで egress または egress_mode を宣言している場合は、エージェントのプロジェクトディレクトリから agentengine migrate sandboxes を実行して、ポリシーを sandboxes ブロックに移動します。

注意

新しいポリシーを有効にするには、エージェントファイルを変更した後にエージェントを再配置します。プラットフォームは、実行時ではなく配置時に Egress ポリシーを適用します。

プラットフォームは次の宛先を受け入れています。

  • ホスト名(api.openai.com、storage.googleapis.com など)

  • などの 1 つのサブドメイン レベルを持つリーディング ラベルのワイルドカード *.example.com

  • 2 つのサブドメイン レベルを持つリージョン ラベルのワイルドカード(例: *.*.example.com

  • すべてのサブドメイン レベルに一致する再帰ワイルドカード(**.example.com など)。このプラットフォームは **.com などのパターンも受け入れます。

プラットフォームは、次の宛先を拒否します。

  • IPリテラル(例: 1.2.3.4

  • CIDR 範囲(例: 10.0.0.0/8

  • localhost、*.local や *.svc.cluster.local

  • クラウドメタデータエンドポイント(*.metadata.google.internal や 169.254.169.254 など)

  • ベア ワイルドカード(* や ** など)

  • 先頭にないワイルドカード(例: api.*.com

  • 2 つ以上の単一ラベルのワイルドカードを持つパターン(例: *.*.*.example.com

  • 予約済みのサフィックス(.arpa、.test、.example、.invalid など)

宛先がこれらのルールのいずれかに違反する場合、検証は失敗し、宛先は適用されません。エラーをローカルでキャッチするには、 agentengine agent validate を実行します。プラットフォームはビルド パス中に同じ検証を適用します。このエラーには、fqdn_ip_literal や fqdn_wildcard_misuse などの理由が特定されます(例: )。

IP addresses are not allowed; declare a hostname such as api.example.com

各宛先は、1 から 65535 のポート範囲、宛先ごとに最大 10 ポート、ワークスペースごとに最大 50 の宛先をサポートしています。

宛先のポートを省略すると、プラットフォームはその宛先へのすべてのポートを許可し、非ブロッキング警告を返します。

注意

プラットフォームは、*.mongodb.netなどの Atlas クラスターのホスト名を受け入れますが、保存すると警告が返されます。Egress 先では Atlas アクセスが構成されていないためです。エージェントに Atlas クラスターへのアクセスを許可するには、agentengine atlas コマンドまたは agent.yamlファイルの network.atlas_clusters ブロックを使用します。

エージェントのプロジェクトディレクトリから agentengine egress コマンドを使用してエージェントファイルを編集し、配置されたポリシーを検査します。コマンドでは実行中のポリシーは直接変更されません。

両方のサンドボックスの現在のポリシーを表示するには、agentengine egress コマンドを使用できます。特定のワークスペースのポリシーを表示するには、--workspace フラグを使用します。次の例に、これらのコマンドを示します。

# View the deployed policy for both sandboxes
agentengine egress
# View the policy for a specific workspace
agentengine egress --workspace my-workspace

agentengine egress コマンドは表示専用です。ファイルベースのポリシーを変更するには、agent.yaml を編集するか、agentengine agent egress add と agentengine agent egress remove を使用してから、エージェントを再配置します 。

agentengine agent egress add コマンドと agentengine agent egress remove コマンドは、ローカルエージェントファイル内の各サンドボックスの network.egress ブロックを編集します。一度に 1 つの目的地を変更し、リストの残りの部分は変更されません。 1 つのサンドボックスをターゲットにするには、--component フラグを使用します。フラグを省略すると、コマンドは両方のサンドボックスを更新します。これらのローカル編集では、エージェントを配置するまで、配置ポリシーは変更されません。単一の宛先を変更するには、次のコマンドを使用します。

# Add a destination for both sandboxes
agentengine agent egress add api.openai.com:443
# Add a destination with multiple ports for the tool sandbox only
agentengine agent egress add --component tool '*.mongodb.net:443,27017'
# Stop allowing a destination
agentengine agent egress remove api.openai.com

ポートのない単一の FQDN を agentengine agent egress remove に渡します。エージェントを配置した後、agentengine egress コマンドまたはワークスペースのアウトバウンド アクセスUIを使用して新しい設定を表示します。

コマンドは、次のように動作します。

  • ターゲット サンドボックスが deny_all にある場合、add はそれを allow_list に切り替え、mode: deny_all → allow_list を出力します。

  • ターゲット サンドボックスが allow_all の場合、add はファイルを変更せずに残ります。これは、allow_allモードでは宛先は効果がないためです。宛先を追加するには、まず agentengine agent egress mode コマンドを使用してモードを allow_list に設定します。

  • remove がサンドボックスの最後の宛先を削除すると、サンドボックスは deny_all に戻り、no destinations remain; mode set to deny_all と出力します。

  • 完全な重複、つまり同じ FQDN と同じポートを追加しても効果はありません。

agentengine agent egress mode を使用して、ローカルエージェントファイルで各サンドボックスの network.egress_mode 値を設定します。 1 つのサンドボックスをターゲットにするには、--component フラグを使用します。これらの変更を有効にするには、エージェントを配置します。

次の例は、 Egressモードを更新する方法を示しています。

# Set allow-list mode
agentengine agent egress mode allow_list
# Set deny-all mode
agentengine agent egress mode deny_all
# Set allow-all mode
agentengine agent egress mode allow_all --confirm-allow-all

agentengine agent egress mode コマンドはローカルエージェントファイルのみを編集します。変更を有効にするには、エージェントを配置します。

ステップ付きチュートリアルでネットワーク Egress を構成する方法については、「 ネットワーク Egress を使い始める 」ガイドを参照してください。