次の方法で共有


Azure AI Foundry のプライベート リンクを構成する方法

Foundry プロジェクトを使用する場合は、プライベート リンクを使用して、プロジェクトとの通信をセキュリティで保護できます。 この記事では、プライベート リンクを使用してプロジェクトへのプライベート接続を確立する方法について説明します。

ハブ ベースのプロジェクトを使用する場合、考慮すべき 2 つのネットワーク分離の側面があります。

  • Azure AI Foundry ハブにアクセスするためのネットワーク分離: この記事の焦点は次のとおりです。 プライベート リンクを使用して、ハブとその既定のリソースへのプライベート接続を確立する方法について説明します。
  • ハブとプロジェクト内のコンピューティング リソースのネットワーク分離: これには、コンピューティング インスタンス、サーバーレス、マネージド オンライン エンドポイントが含まれます。 詳細については、 Azure AI Foundry ハブのマネージド ネットワークの構成に関する記事を 参照してください。

Azure AI Foundry ハブのネットワークの分離の図。

リソース グループには、いくつかのハブの既定リソースがあります。 次のネットワーク分離構成を構成する必要があります。

  • Azure Storage、Azure Key Vault、Azure Container Registry などのハブの既定のリソースのパブリック ネットワーク アクセスを無効にします。
  • ハブの既定リソースへのプライベート エンドポイント接続を確立します。 既定のストレージ アカウントには BLOB とファイルのプライベート エンドポイントの両方が必要です。
  • ストレージ アカウントがプライベートの場合は、ロールを割り当てることでアクセスを許可します。

[前提条件]

  • プライベート エンドポイントを作成するには、既存の Azure Virtual Network が必要です。

    重要

    VNet に 172.17.0.0/16 IP アドレス範囲を使用することはお勧めしません。 これは、オンプレミスの Docker ブリッジ ネットワークで使用される既定のサブネット範囲です。

  • プライベート エンドポイントを追加する前に、プライベート エンドポイントのネットワーク ポリシーを無効にします。

プライベート エンドポイントを使用する Foundry プロジェクトを作成する

新しいプロジェクトを作成するときは、次の手順に従ってプロジェクトを作成します。

  1. Azure portal で AzureAI Foundry を検索し、[リソースの作成] を選択します。

  2. [ 基本 ] タブを構成したら、[ ネットワーク ] タブを選択し、[ 無効 ] オプションを選択します。

  3. [ プライベート エンドポイント ] セクションで、[ + プライベート エンドポイントの追加] を選択します。

  4. フォームを使用してプライベート エンドポイントを作成する場合は、次のようにしてください。

    • [基本] から、仮想ネットワークと同じリージョンを選択します。
    • [仮想ネットワーク] フォームで、接続する仮想ネットワークとサブネットを選択します。
  5. フォームを続行してプロジェクトを作成します。 [ 確認と作成 ] タブに移動したら、設定を確認し、[ 作成 ] を選択してプロジェクトを作成します。

プライベート エンドポイントを使用するハブを作成する

新しいハブを作成する場合は、次の方法を使用してハブを作成します (Azure portal または Azure CLI)。 いずれの方法でも既存の仮想ネットワークが必要です

このドキュメントの情報は、プライベート リンクの構成についてのみ説明しています。 ポータルで安全なハブを作成する手順については、「Azure portal で安全なハブを作成する」を参照してください。

  1. Azure portal で、 Azure AI Foundryを検索します。 左側のメニューから [ AI Hubs] を選択し、[ + 作成ハブ] を選択します。

    Azure AI Foundry ポータルのスクリーンショット。

  2. [ 基本 ] タブと [ ストレージ ] タブを構成した後、[ 受信アクセス ] タブを選択し、[ + 追加] を選択します。 メッセージが表示されたら、Azure Virtual Network のデータとプライベート エンドポイントのサブネットを入力します。 [リージョン] を選択する場合は、ご使用の仮想ネットワークと同じリージョンを選択します。

    パブリック ネットワーク アクセスが無効になっている [受信アクセス] タブのスクリーンショット。

  3. [ 送信アクセス ] タブを選択し、ニーズに最も適した [ネットワーク分離 ] オプションを選択します。

    ネットワークの分離情報を設定するオプションが表示された [ハブを作成する] のスクリーンショット。

プライベート エンドポイントをプロジェクトに追加する

  1. Azure portal からプロジェクトを選択します。

  2. ページの左側で、[ リソース管理]、[ ネットワーク] の順に選択し、[ プライベート エンドポイント接続 ] タブを選択します。[ + プライベート エンドポイント] を選択します。

  3. フォームを使用してプライベート エンドポイントを作成する場合は、次のようにしてください。

    • [基本] から、仮想ネットワークと同じリージョンを選択します。
    • [仮想ネットワーク] フォームで、接続する仮想ネットワークとサブネットを選択します。
  4. 必要な他のネットワーク構成をフォームに入力したら、[ 確認と作成 ] タブを使用して設定を確認し、[ 作成 ] を選択してプライベート エンドポイントを作成します。

ハブにプライベート エンドポイントを追加する

次のいずれかの方法を使用して、既存のハブにプライベート エンドポイントを追加します。

  1. Azure portal からハブを選択します。

  2. ページの左側で、[設定][ネットワーク] と選択してから、[プライベート エンドポイントの接続] タブを選択します。[+ プライベート エンドポイント] を選択します。

    [プライベート エンドポイント接続] タブのスクリーンショット

  3. フォームを使用してプライベート エンドポイントを作成する場合は、次のようにしてください。

    • [基本] から、仮想ネットワークと同じリージョンを選択します。
    • [リソース] で、amlworkspaceとして を選択します。
    • [仮想ネットワーク] フォームで、接続する仮想ネットワークとサブネットを選択します。
  4. 必要な他のネットワーク構成をフォームに入力したら、[ 確認と作成 ] タブを使用して設定を確認し、[ 作成 ] を選択してプライベート エンドポイントを作成します。

プロジェクトからプライベート エンドポイントを削除する

プロジェクトの 1 つまたはすべてのプライベート エンドポイントを削除できます。 プライベート エンドポイントを削除すると、エンドポイントが関連付けられた Azure Virtual Network からプロジェクトが削除されます。 プライベート エンドポイントを削除すると、プロジェクトがその仮想ネットワーク内のリソース、または仮想ネットワーク内のリソースにワークスペースにアクセスできなくなる可能性があります。 たとえば、仮想ネットワークとパブリック インターネットとの間でアクセスできなくなるような場合です。

警告

プロジェクトのプライベート エンドポイントを削除しても、 パブリックにアクセスすることはできません。 プロジェクトにパブリックにアクセスできるようにするには、「 パブリック アクセスを有効にする 」セクションの手順を使用します。

プライベート エンドポイントを削除するには、次の情報のようにします。

  1. Azure portal からプロジェクトを選択します。
  2. ページの左側で、[ リソース管理]、[ ネットワーク] の順に選択し、[ プライベート エンドポイント接続 ] タブを選択します。
  3. 削除するエンドポイントを選んで、[削除] を選びます。

プライベート エンドポイントを削除する

ハブの 1 つまたはすべてのプライベート エンドポイントを削除できます。 プライベート エンドポイントを削除すると、そのエンドポイントが関連付けられていた Azure Virtual Network からハブが削除されます。 プライベート エンドポイントを削除すると、ハブがその仮想ネットワーク内のリソースにアクセスできなくなったり、その仮想ネットワーク内のリソースがワークスペースにアクセスできなくなったりする可能性があります。 たとえば、仮想ネットワークとパブリック インターネットとの間でアクセスできなくなるような場合です。

警告

ハブのプライベート エンドポイントを削除しても、パブリックにアクセスできるようにはなりません。 ハブをパブリックにアクセスできるようにするには、「パブリック アクセスを有効にする」セクションの手順を使用します。

プライベート エンドポイントを削除するには、次の情報のようにします。

  1. Azure portal からハブを選択します。

  2. ページの左側で、[設定][ネットワーク] と選択してから、[プライベート エンドポイントの接続] タブを選択します。

  3. 削除するエンドポイントを選んで、[削除] を選びます。

    削除オプションが強調表示されている、選択済みプライベート エンドポイントのスクリーンショット。

公開アクセスを有効にする

場合によっては、他のユーザーが仮想ネットワーク経由ではなく、パブリック エンドポイント経由でセキュリティで保護されたプロジェクトに接続できるようにする必要がある場合があります。 または、仮想ネットワークからプロジェクトを削除し、パブリック アクセスを再度有効にすることもできます。

重要

パブリック アクセスを有効にしても、存在するプライベート エンドポイントは削除されません。 プライベート エンドポイントが接続している仮想ネットワークの内側にあるコンポーネント間のすべての通信は、引き続きセキュリティで保護されます。 これにより、プライベート エンドポイントを介したプライベート アクセスに加えて、プロジェクトへのパブリック アクセスのみが有効になります。

  1. Azure portal からプロジェクトを選択します。

  2. ページの左側で、[ リソース管理]、[ ネットワーク] の順に選択し、[ ファイアウォールと仮想ネットワーク ] タブを選択します。

  3. [ すべてのネットワーク] を選択し、[ 保存] を選択します。

    [すべてのネットワーク] オプションが選択されている [ファイアウォールと仮想ネットワーク] タブのスクリーンショット。

公開アクセスを有効にする

状況によっては、仮想ネットワークではなくパブリック エンドポイント経由で、セキュリティで保護された自分のハブに他のユーザーが接続できるようにすることが必要になる場合があります。 または、仮想ネットワークからワークスペースを削除し、パブリック アクセスを再び有効にしたいことがあります。

重要

パブリック アクセスを有効にしても、存在するプライベート エンドポイントは削除されません。 プライベート エンドポイントが接続している仮想ネットワークの内側にあるコンポーネント間のすべての通信は、引き続きセキュリティで保護されます。 これにより、プライベート エンドポイント経由のプライベート アクセスに加えて、そのハブのみへのパブリック アクセスが有効になります。

パブリック アクセスを有効にするには、次の手順のようにします。

  1. Azure portal からハブを選択します。
  2. ページの左側で [ネットワーク] を選んでから、[パブリック アクセス] タブを選びます。
  3. [すべてのネットワークから有効] を選んでから、[保存] を選びます。

インターネット IP 範囲からのみパブリック アクセスを有効にする (プレビュー)

IP ネットワーク規則を作成することで、IP ネットワーク規則を使用して、特定のパブリック インターネット IP アドレス範囲からセキュリティで保護されたハブへのアクセスを許可できます。 各 Azure AI Foundry ハブでは、最大 200 個のルールがサポートされています。 これらの規則により、特定のインターネット ベースのサービスとオンプレミスのネットワークにアクセスが許可され、一般的なインターネット トラフィックがブロックされます。 この機能は現在プレビュー段階です。

警告

  • 特定のパブリック インターネット IP アドレス範囲からエンドポイントへのアクセスを許可する場合は、エンドポイントのパブリック ネットワーク アクセス フラグを有効にします。
  • IPv4 アドレスのみを使用できます。
  • ワークスペースが [選択した IP から有効にする] から [無効] または [有効] になった場合、IP 範囲はリセットされます。
  1. Azure portal から、Azure Machine AI Foundry ハブを選択します。
  2. ページの左側で [ネットワーク] を選んでから、[パブリック アクセス] タブを選びます。
  3. [選択した IP アドレスから有効] を選択し、アドレス範囲を入力して、[保存] を選択します。

また、Azure Machine Learning Python SDKWorkspace クラスを使用して、受信アクセスが許可される IP アドレスを定義することもできます。

class Workspace(Resource):
    """Azure ML workspace.
    :param public_network_access: Whether to allow public endpoint connectivity
        when a workspace is private link enabled.
    :type public_network_access: str
    :param network_acls: The network access control list (ACL) settings of the workspace.
    :type network_acls: ~azure.ai.ml.entities.NetworkAcls

    def __init__(
        self,
        *,
        public_network_access: Optional[str] = None,
        network_acls: Optional[NetworkAcls] = None,

IP ネットワーク規則の制限

IP アドレスの範囲には、次の制限が適用されます。

  • IP ネットワーク規則は、パブリック インターネットの IP アドレスに対してのみ許可されます。

    [予約済み IP アドレスの範囲] は、10、172.16 から 172.31、192.168 で始まるプライベート アドレスなどの IP 規則では許可されません。

  • 許可するインターネット アドレスの範囲は、CIDR 表記法を使って 16.17.18.0/24 の形式で、または 16.17.18.19 のように個々の IP アドレスとして指定する必要があります。

  • ストレージ ファイアウォール規則の構成では、IPv4 アドレスのみがサポートされています。

  • この機能が有効であると、Curl などの任意のクライアント ツールを使用してパブリック エンドポイントをテストできますが、ポータルのエンドポイント テスト ツールはサポートされません。

  • AI Foundry ハブの IP アドレスは、ハブの作成後にのみ設定できます。

プライベート ストレージの構成

ストレージ アカウントがプライベートである (プライベート エンドポイントを使用してプロジェクトと通信する) 場合は、次の手順を実行します。

  1. サービスでは、次のマネージド ID 構成で [信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を使用して、プライベート ストレージ アカウント内のデータの読み取り/書き込みを行う必要があります。 Azure AI サービスと Azure AI 検索のシステム割り当てマネージド ID を有効にし、マネージド ID ごとにロールベースのアクセス制御を構成します。

    役割 マネージド ID リソース 目的 リファレンス
    Reader Azure AI Foundry プロジェクト ストレージ アカウントのプライベート エンドポイント プライベート ストレージ アカウントからデータを読み取ります。
    Storage File Data Privileged Contributor Azure AI Foundry プロジェクト ストレージ アカウント プロンプト フロー データの読み取り/書き込みを行います。 プロンプト フローに関するドキュメント
    Storage Blob Data Contributor Azure AI サービス ストレージ アカウント 入力コンテナーから読み取り、結果を前処理して出力コンテナーに書き込みます。 Azure OpenAI に関するドキュメント
    Storage Blob Data Contributor Azure AI Search ストレージ アカウント BLOB を読み取ってナレッジ ストアに書き込みます 検索に関するドキュメント

    ヒント

    ストレージ アカウントでは、複数のプライベート エンドポイントを持つことができます。 Azure AI Foundry プロジェクトのマネージド ID の各プライベート エンドポイントに Reader ロールを割り当てる必要があります。

  2. 開発者に Storage Blob Data reader ロールを割り当てます。 このロールにより、ストレージ アカウントからデータを読み取ることができます。

  3. プロジェクトのストレージ アカウントへの接続で、認証に Microsoft Entra ID が使用されていることを確認します。 接続情報を表示するには、管理センターに移動し、[接続されたリソース] を選択して、ストレージ アカウントの接続を選択します。 資格情報の種類が Entra ID でない場合は、鉛筆アイコンを選択して接続を更新し、[認証方法][Microsoft Entra ID] に設定します。

プレイグラウンド チャットのセキュリティ保護については、「プレイグラウンド チャットを安全に使用する」を参照してください。

エージェント サービスのエンド ツー エンドのセキュリティで保護されたネットワーク

エージェントを構築するために Foundry リソースと Foundry プロジェクトを作成する場合は、最も安全なエンド ツー エンド構成のために次のネットワーク アーキテクチャをお勧めします。

AI Foundry プロジェクトとエージェントに推奨されるネットワーク分離の図。

  1. 各リソースのパブリック ネットワーク アクセス (PNA) フラグを Disabledに設定します。 パブリック ネットワーク アクセスを無効にすると、パブリック インターネットからリソースへの受信アクセスがロックダウンされます。

  2. Standard エージェントに必要な Azure リソースごとにプライベート エンドポイントを作成します。

    • Azure Storage アカウント
    • Azure AI Search リソース
    • Cosmos DB リソース
    • Azure AI Foundry リソース
  3. リソースにアクセスするには、Azure Virtual Network への Bastion VM、ExpressRoute、または VPN 接続を使用することをお勧めします。 これらのオプションを使用すると、分離されたネットワーク環境に接続できます。

エージェント サービスのネットワークインジェクション

ネットワークで保護された Standard エージェントは、エージェント クライアントのネットワークインジェクションによる完全なネットワーク分離とデータ流出保護をサポートします。 これを行うために、エージェント クライアントは Azure 仮想ネットワークにネットワークを挿入します。これにより、定義されたネットワーク境界内にトラフィックを保持することで、データ移動を厳密に制御し、データ流出を防ぐことができます。 ネットワークインジェクションは、Standard エージェントのデプロイでのみサポートされ、Light Agent のデプロイではサポートされません。

さらに、ネットワークで保護された Standard エージェントは、UX、CLI、または SDK ではなく、BICEP テンプレートのデプロイによってのみサポートされます。 テンプレートを使用して Foundry リソースとエージェントをデプロイした後、エージェント サービスの委任されたサブネットを更新することはできません。 これは Foundry リソースの [ネットワーク] タブに表示されます。このタブでは、サブネットを表示およびコピーできますが、サブネットの委任を更新または削除することはできません。 委任されたサブネットを更新するには、ネットワークで保護された Standard Agent テンプレートを再デプロイする必要があります。

Azure AI Foundry プロジェクトとエージェントのネットワークインジェクションの図。

エージェント サービスのセキュリティで保護されたネットワークの詳細については、 Azure AI エージェント サービスで仮想ネットワークを使用する方法に 関する記事を参照してください。

DNS の構成

プライベート エンドポイントを使用する仮想ネットワーク上のクライアントは、パブリック エンドポイントに接続するクライアントと同じ接続文字列を Azure AI Foundry リソースとプロジェクトに使用します。 DNS 解決では、仮想ネットワークから Azure AI Foundry リソースへの接続が自動的にルーティングされ、プライベート リンク経由でプロジェクトが行われます。

プライベート エンドポイントに DNS の変更を適用する

プライベート エンドポイントを作成すると、Azure AI Foundry リソースの DNS CNAME リソース レコードが、プレフィックス privatelinkを持つサブドメイン内のエイリアスに更新されます。 既定で、Azure で privatelink サブドメインに対応するプライベート DNS ゾーンも作成されます。これには、プライベート エンドポイントの DNS A リソース レコードが含まれます。 詳細については、 Azure プライベート DNS の概要に関するページを参照してください。

プライベート エンドポイントを使用して仮想ネットワークの外部からエンドポイント URL を解決すると、Azure AI Foundry リソースのパブリック エンドポイントに解決されます。 プライベート エンドポイントをホストしている仮想ネットワークから解決されると、プライベート エンドポイントのプライベート IP アドレスに解決されます。

このアプローチでは、プライベート エンドポイントをホストする仮想ネットワーク内のクライアントと、仮想ネットワークの外部にあるクライアントに対して同じ接続文字列を使用して、Azure AI Foundry リソースにアクセスできます。

ネットワーク上でカスタム DNS サーバーを使用している場合、クライアントで、Azure AI サービス リソースのエンドポイントの完全修飾ドメイン名 (FQDN) をプライベート エンドポイントの IP アドレスに解決できる必要があります。 Private Link サブドメインを仮想ネットワークのプライベート DNS ゾーンに委任するように、DNS サーバーを構成します。

ヒント

カスタムまたはオンプレミスの DNS サーバーを使用している場合は、privatelink サブドメインの Azure AI サービス リソース名をプライベート エンドポイントの IP アドレスに解決するように、DNS サーバーを構成する必要があります。 privatelink サブドメインを仮想ネットワークのプライベート DNS ゾーンに委任します。 または、DNS サーバーの DNS ゾーンを構成し、DNS A レコードを追加します。

プライベート エンドポイントをサポートするように独自の DNS サーバーを構成する方法の詳細については、次の記事を参照してください。

信頼された Azure サービスにアクセスを許可する

他のアプリのネットワーク規則を維持しながら、信頼された Azure サービスのサブセットに Azure OpenAI へのアクセス権を付与することができます。 これらの信頼されたサービスは、マネージド ID を使用して Azure OpenAI リソースを認証します。 次の表に、これらのサービスのマネージド ID に適切なロールの割り当てがある場合に Azure OpenAI にアクセスできるサービスを示します。

サービス リソース プロバイダー名
Azure AI Search Microsoft.Search

REST API または Azure portal を使用してネットワーク ルールの例外を作成することで、信頼された Azure サービスへのネットワーク アクセスを許可できます。

DNS 転送構成については、Azure Machine Learning のカスタム DNS に関する記事を参照してください。

DNS 転送なしでカスタム DNS サーバーを構成する必要がある場合は、必要とされる A レコードに次のパターンを使用します。

  • <AI-HUB-GUID>.workspace.<region>.cert.api.azureml.ms

  • <AI-HUB-GUID>.workspace.<region>.api.azureml.ms

  • ml-<workspace-name, truncated>-<region>-<AI-HUB-GUID>.<region>.notebooks.azure.net

    この FQDN のワークスペース名は切り詰められている可能性があります。 切り詰めは ml-<workspace-name, truncated>-<region>-<workspace-guid> を 63 文字以下に維持するために行われます。

  • <instance-name>.<region>.instances.azureml.ms

    • コンピューティング インスタンスには、仮想ネットワーク内からのみアクセスできます。
    • この FQDN の IP アドレスは、コンピューティング インスタンスの IP ではありません。 代わりに、ワークスペースのプライベート エンドポイントのプライベート IP アドレス (*.api.azureml.ms エントリの IP) を使用します。
  • <instance-name>-22.<region>.instances.azureml.ms - マネージド仮想ネットワーク内のコンピューターに接続するため、az ml compute connect-ssh コマンドによってのみ使用されます。 マネージド ネットワークまたは SSH 接続を使用していない場合は不要です。

  • <managed online endpoint name>.<region>.inference.ml.azure.com - マネージド オンライン エンドポイントで使用されます

  • models.ai.azure.com - 標準デプロイに使用

A レコードのプライベート IP アドレスを見つけるには、Azure Machine Learning のカスタム DNS に関する記事を参照してください。

プロジェクト ワークスペースは、関連付けられているハブ ワークスペースの FQDN を再利用します。 プロジェクト ワークスペース GUID に個別のエントリを構成する理由はありません。

制限事項

  • Mozilla Firefox を使用している場合、ハブのプライベート エンドポイントにアクセスしようとしたときに問題が発生することがあります。 この問題は、Mozilla Firefox の DNS over HTTPS に関連している可能性があります。 Microsoft Edge または Google Chrome を使うことをお勧めします。
  • ネットワークで保護されたエージェント (独自の仮想ネットワークを持ち込む) は、Bicep テンプレートのデプロイによってのみサポートされます。 ネットワークで保護されたエージェントのデプロイの詳細については、「 Azure AI エージェント サービスで仮想ネットワークを使用する方法」を参照してください。
  • デプロイするネットワークで保護されたエージェントは、簡易エージェントではなく、Standard エージェントのみです。
  • エージェント サービスまたは Foundry プロジェクトに対するマネージド仮想ネットワークのサポートはありません。

次のステップ