Foundry MCP Server のベスト プラクティスとセキュリティ ガイダンス

Foundry MCP Server (プレビュー) ツールは、デプロイ、データセット、評価、監視、分析など、Foundry リソース全体の読み取りと書き込みの操作を自動化します。 このガイダンスは、MCP ツールを実行する前に、意図の検証、リスクの軽減、セキュリティとガバナンスのプラクティスの適用に役立ちます。

この記事では、以下について説明します。

  • MCP サーバーの応答を解釈し、精度を確認する方法
  • Foundry リソースに対する書き込み操作の影響
  • 安全なツールの実行、リソース管理、変更の追跡に関するベスト プラクティス
  • ID、RBAC、条件付きアクセス、ネットワーク分離、データ所在地など、セキュリティとガバナンスの制御
  • 一般的な問題のトラブルシューティング

メモ

この機能は現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードにはお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「Microsoft Azure プレビューの使用条件を参照してください。

前提 条件

  • アクティブなサブスクリプションを持つAzure アカウント。
  • 共同作成者以上のロールを持つ Foundry プロジェクト
  • 条件付きアクセス ポリシーを構成するには、Microsoft Entra IDの Conditional Access Administrator ロールが必要です。
  • Azure CLI (az ad sp create コマンドにのみ必要)。

応答の解釈

MCP サーバーは、エージェント用に選択された言語モデルに渡される出力を提供します (たとえば、GitHub CopilotでVisual Studio Code)。 言語モデルでは、この出力と会話コンテキストを組み合わせて、その機能に基づいて最終的な応答を生成します。 言語モデルの応答の精度を常に確認します。 これには、MCP サーバーの元の出力を超えて推論または生成される詳細が含まれる場合があります。

書き込み操作の影響

書き込み操作は Foundry リソースに重大な影響を与えます。 ポータル、SDK、または REST API を使用する場合と同様に、Foundry MCP Server と対話するときは注意して適切な計画を進めてください。 例えば:

  • 展開: ライブアプリおよび課金にすぐに影響します。
  • 削除: リソースを完全に削除し、依存するサービスを中断する可能性があります。
  • 評価プロセス: コンピュートのクォータを消費し、コストが発生します。
  • データセット: 既存のバージョンを上書きできます。

リソースへの影響の例:

  • デプロイを削除すると、そのエンドポイントを使用するすべてのアプリケーションが中断されます。
  • 大規模な評価では、大量のクォータ割り当てが消費される可能性があります。
  • 新しいデプロイでは、すぐに課金が開始されます。
  • データセットを上書きすると、評価の再現性に影響します。

安全な実行のベスト プラクティス

次のプラクティスに従って、書き込み操作が意図したとおりに実行されるようにします。

ツールの実行の検証

  • ツールの選択を確認する: 実行前に、正しい MCP ツールとパラメーターが意図と一致するかどうかを確認します。

  • パラメーターの確認: すべてのツール パラメーター (リソース ID、デプロイ名、データセット パス) の精度を確認します。 一般的なパラメーター形式は次のとおりです。

    パラメーターの型 形式 検索する場所
    Foundry リソース ID /subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.CognitiveServices/accounts/{account_name} アカウントのAzureポータル Properties ページ
    プロジェクトのエンドポイント https://{account_name}.services.ai.azure.com/api/projects/{project_name} Foundry プロジェクトの詳細ページ
    プロジェクトリソースID /subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.CognitiveServices/accounts/{account_name}/projects/{project_name} Azure ポータル Properties ページまたは Foundry プロジェクトの詳細ページ

    プロジェクト リソース ID を指定すると、MCP ホストの言語モデルが必要な値を抽出し、MCP ツールに渡すパラメーターを作成します。 目的のパラメーター値が MCP ツールに渡されることを承認する前に確認します。

  • 環境のターゲット設定を確認する: リソース エンドポイントとプロジェクト URL が目的の環境を指していることを確認します。

MCP サーバーを使用したリソース管理

  • 依存関係を確認する: 監視ツールを使用して、リソースを削除する前にアプリがリソースに依存していないことを確認します。
  • クォータの確認: 新しいデプロイを作成したり、大規模な評価を実行したりする前に、クォータの状態を照会します。
  • リソース検出: 変更を加える前に、既存のデプロイとデータセットを一覧表示します。
  • 容量を計画する: リソースを集中的に使用する操作の前に、使用可能なクォータと使用状況メトリックを確認します。

安全な MCP 操作のプラクティス

  • 非運用環境でのテスト: 最初に開発プロジェクト エンドポイントを使用します。
  • 増分変更を行う: 一括更新を行う代わりに、一度に 1 つのリソースを変更します。
  • 変更を検証する: 読み取り専用ツールを使用して、変更が有効であることを確認します。
  • エラーの処理: エラーまたは予期しない結果の応答を監視します。

ドキュメントと追跡

  • Log 操作: Azureリソース アクティビティ ログを使用して、影響を受けるリソースを追跡します。
  • バックアップ構成: 変更する前に、現在のデプロイとデータセットの構成をエクスポートします。
  • 変更の追跡: MCP 操作の詳細を記録してトラブルシューティングとロールバックを行います。

セキュリティとガバナンス

このセクションでは、MCP 操作の前にガバナンスを適用するのに役立つ ID、アクセス制御、ポリシー、ネットワーク分離、およびデータ所在地に関する考慮事項をまとめています。

ID とアクセスの管理

https://mcp.ai.azure.com をスコープとするMicrosoft Entra トークンを使用して Foundry MCP Server に対して認証します。

Azureロールベースのアクセス制御 (RBAC) は、Foundry MCP Server でサポートされている Foundry リソースに対するすべての操作に適用されます。 操作は、認証されたユーザーのアクセス許可に従って実行されます。 次の表は、RBAC ロールが MCP 操作の種類にどのようにマップされるかをまとめたものです。

操作の種類 最低限必要なロール
読み取り (リスト、取得、クエリ) リーダー デプロイの一覧表示、モデルの詳細の取得、評価結果のクエリ
書き込み (作成、更新) 寄稿者 デプロイの作成、データセットの更新、評価の開始
削除 寄稿者 デプロイの削除、データセットの削除
アクセスの管理 所有者またはユーザーアクセス管理者 ロールの割り当て、アクセス許可の管理

ロールの割り当ての詳細については、「Microsoft Foundry のロールベースのアクセス制御」を参照してください。

条件付きアクセス ポリシーを使用してアクセスを制御する

テナント管理者は、条件付きアクセス ポリシーを使用して、選択したユーザーまたはワークロード ID に対して Foundry MCP Server へのアクセスを許可またはブロックできます。

  1. 次のコマンドを実行して、Foundry MCP Server アプリケーション ID のサービス プリンシパルを具体化します。

    az ad sp create --id fcdfa2de-b65b-4b54-9a1c-81c8a18282d9
    

    このコマンドのアプリケーション ID は Foundry MCP サーバーを表します。 このアプリケーション ID は、Entra ID エンタープライズ アプリケーションの一覧で "Foundry MCP Server" を検索することで確認できます。

  2. アプリケーション ID を使用して Foundry MCP Server のエンタープライズ アプリケーションを検索します。 Azure ポータルのEntra ID ページを開き、アプリケーション ID fcdfa2de-b65b-4b54-9a1c-81c8a18282d9 を検索します。

    Entra ID の MCP アプリのスクリーンショット

  3. 選択したアプリの左側のウィンドウで [セキュリティ] で [条件付きアクセス] を選択し、[新しいポリシー] を選択してアクセス制御を構成します。

    1. [ ユーザー] で、[ 含まれる特定のユーザー ] を選択し、制限するユーザーまたはグループを追加します。
    2. [ ターゲット リソース] で、Foundry MCP サーバー アプリケーションが選択されていることを確認します。

    アプリ構成の条件付きアクセス オプションのスクリーンショット。

    アプリの新しい条件付きアクセス ポリシーの作成のスクリーンショット。

  4. [ 許可] を選択し、[ アクセスのブロック] を選択します。

    アプリのアクセスをブロックする方法を示すスクリーンショット。

ポリシーが設定されると、指定されたユーザーとグループは、接続に必要な Entra トークンを取得できません。

ネットワークの分離

Foundry MCP Server は現在、ネットワーク分離をサポートしていません。 これは、任意の MCP クライアントが使用できるパブリック エンドポイント https://mcp.ai.azure.com を公開します。 パブリック エンドポイントを介して Foundry リソースに接続します。 Foundry リソースがプライベート リンクAzure使用している場合、サーバーはそれらに到達できず、接続エラーで操作が失敗します。

メモ

この制限は、ホストされている Foundry MCP サーバー (mcp.ai.azure.com) に適用されます。 独自の MCP サーバーを構築して Foundry Agent Service に接続する場合、Agent Service では、プライベート ネットワークを使用した Standard エージェントセットアップを通じてプライベート MCP サーバー エンドポイント がサポートされます。

データ所在地

Foundry MCP Server は、グローバル ステートレス プロキシ アーキテクチャを使用します。 MCP サーバーと対話するバックエンド サービスによって作成されたデータは、選択したリージョンの保存時に暗号化された状態が維持されます。 MCP サーバー自体はデータを格納しません。 パフォーマンスと可用性のために、要求と応答は欧州連合 (EU) または 米国 (米国) のデータ センターで処理でき、すべてのデータは転送中に暗号化されます。

重要

このプレビュー機能を使用すると、発生する可能性のあるリージョン間の処理を確認し、同意します。 たとえば、米国のユーザーがアクセスする EU リソースは、米国のインフラストラクチャを介してルーティングできます。 組織でリージョン内の厳密な処理が必要な場合は、Foundry MCP Server を使用したり、その使用を選択したリージョン内に残るシナリオに制限したりしないでください。

トラブルシューティング

このセクションを使用して、MCP サーバーの一般的な問題をすばやく診断します。

認証エラー

401 Unauthorized エラーが発生した場合、またはサインイン プロンプトが表示されない場合:

  1. Visual Studio Codeまたは使用しているツールで、Azure アカウントからサインアウトします。
  2. Azure サブスクリプションにアクセスできるMicrosoft アカウントでサインインし直します。
  3. ターミナルで az account get-access-token --resource https://mcp.ai.azure.com を実行して、アクセス トークンが有効であることを確認します。

トークン要求が失敗した場合は、アカウントに必要なEntra IDアクセス許可があることを確認します。 詳細については、「manage users and authentication in Entra ID」を参照してください。

アクセス許可エラー

MCP ツールの実行時に 403 Forbidden または "アクセスが拒否されました" エラーが表示される場合は、次の手順を実行します。

  1. Azure ポータルを開き、Foundry プロジェクトに移動します。
  2. [アクセス制御 (IAM)] を選択し、アカウントに共同作成者以上のロールがあることを確認します。
  3. ロールの割り当てを最近受け取った場合は、反映されるまで数分待ってから、もう一度やり直してください。

詳細については、Microsoft Foundry の Role ベースのアクセス制御に関するページを参照してください。

サーバー接続の問題

MCP サーバーが起動またはタイムアウトに失敗した場合:

  1. ネットワークで https://mcp.ai.azure.comへの送信 HTTPS 接続が許可されていることを確認します。
  2. エンドポイントをブロックする可能性があるプロキシまたはファイアウォール規則を確認します。
  3. ブラウザーで https://mcp.ai.azure.com を開いて、到達可能性を確認してみてください。

Foundry リソースがプライベート リンクAzure使用している場合、ホストされている Foundry MCP サーバーはパブリック エンドポイントを介してアクセスできません。 Foundry Agent Service を使用して、Private Linkを無効にするか、SDK/REST API を使用するか、custom MCP サーバーとプライベート ネットワークを使用します。

ツール検出の問題

Foundry ツールがエージェント モード ツールの一覧に表示されない場合:

  1. Visual Studio Codeで Output ビューを開き、MCP サーバー ログ チャネルを選択します。
  2. サーバーに正常な接続とツールの登録が表示されていることを確認します。
  3. Visual Studio Code再起動するか、ワークスペースを再読み込みします。
  4. ツールがまだ表示されない場合は、サーバー構成を削除して再追加します。