Azure AI Search への安全な接続を行うためのプライベート エンドポイントを作成する

この記事では、パブリック インターネット接続経由ではなく仮想ネットワーク内のクライアントからの要求を許可するように、Azure AI Search へのプライベート接続を構成する方法について説明します。

Azure AI Search にプライベートに接続する可能性があるその他の Azure リソースには、"独自のデータを使用する" のシナリオに対応した Azure OpenAI が含まれます。 Azure OpenAI Studio は仮想ネットワークでは実行されませんが、Microsoft バックボーン ネットワーク経由で要求を送信するようにバックエンドで構成できます。 このトラフィック パターンの構成は、お客様からの要求が送信されて承認されると、Microsoft によって有効にされます。 このシナリオでは、次のようにします。

  • この記事の手順に従って、プライベート エンドポイントを設定します。
  • Azure OpenAI Studio でプライベート エンドポイントを使用して接続するための要求を送信します
  • 必要に応じて、接続の発信元を仮想ネットワーク内のクライアント、またはプライベート エンドポイント接続経由の Azure OpenAI のみにする必要がある場合は、パブリック ネットワーク アクセスを無効にします

プライベート エンドポイントに関する重要なポイント

プライベート エンドポイントは、別の課金対象サービスとして、Azure Private Link によって提供されます。 コストの詳細については、価格ページを参照してください。

検索サービスにプライベート エンドポイントが設定されると、仮想ネットワーク内の仮想マシン上のブラウザー セッションからそのサービスへのポータル アクセスを開始する必要があります。 詳細については、こちらの手順を参照してください。

この記事で説明されているように、Azure portal で検索サービス用にプライベートエンド ポイントを作成できます。 また、Management REST API バージョンAzure PowerShell、または Azure CLI を使用することもできます。

プライベート エンドポイントを使用する理由

Azure AI Search のプライベート エンドポイントは、仮想ネットワーク上のクライアントは、 Private Link経由で検索インデックス内のデータに安全にアクセスできます。 プライベート エンドポイントは、検索サービスのために仮想ネットワークのアドレス空間の IP アドレスを使用します。 クライアントと検索サービス間のネットワーク トラフィックは、仮想ネットワークおよび Microsoft バックボーン ネットワーク上のプライベートリンクを経由することで、パブリック インターネット上での露出を排除します。 Private Link をサポートするその他の PaaS サービスの一覧については、製品マニュアルの可用性のセクションを参照してください。

検索サービス向けのプライベート エンドポイントを使用すると、次のことが可能になります。

  • 検索サービス向けのパブリック エンドポイント上のすべての接続をブロックします。
  • 仮想ネットワークからのデータの流出をブロックし、仮想ネットワークのセキュリティを強化します。
  • VPN または プライベート ピアリングしたExpressRoutes を使用して、 仮想ネットワークに接続するオンプレミス ネットワーク経由で検索サービスに安全に接続します。

仮想ネットワークの作成

このセクションでは、仮想ネットワークとサブネットを作成して、検索サービスのプライベート エンドポイントへのアクセスに使用される VM をホストします。

  1. Microsoft Azure portal のホームタブで、[リソースの作成]>[ネットワーク]>[仮想ネットワーク] の順に選択します。

  2. [仮想ネットワークの作成] で、次の値を入力または選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    リソース グループ [新規作成] を選択し、「myResourceGroup」などの名前を入力し、[OK] を選択します。
    名前 "MyVirtualNetwork" などの名前を入力します。
    リージョン リージョンを選択します。
  3. 残りの設定については既定値を受け入れます。 [確認および作成][作成] の順に選択します。

プライベート エンドポイントを使用した検索サービスの作成

このセクションでは、プライベート エンドポイントを使用して新しい Azure AI Search サービスを作成します。

  1. Microsoft Azure portal の画面の左上で、[リソースの作成]>[ウェブ]>[Azure AI Search] の順に選択します。

  2. [New Search Service - Basics](新しい Search Service - 基本) で、次の値を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソース グループ 前の手順で作成したリソース グループを使用します。
    インスタンスの詳細
    URL 一意の名前を入力します。
    場所 地域を選択します。
    価格レベル [価格レベルの変更] を選択し、目的のサービス レベルを選択します。 プライベート エンドポイントは Free レベルではサポートされていません。 Basic 以上を選択する必要があります。
  3. [Next: Scale]\(次へ: スケーリング\) を選択します。

  4. 既定値をそのまま使用し、 [次へ: ネットワーク] を選択します。

  5. 新しい Search Service - ネットワークで、エンドポイント接続 (データ)[プライベート] を選択します。

  6. [プライベート エンドポイント] で、[+ 追加] を選択します。

  7. [プライベート エンドポイントの作成] で、作成した仮想ネットワークに検索サービスを関連付けるための値を入力または選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    リソース グループ 前の手順で作成したリソース グループを使用します。
    場所 リージョンを選択します。
    名前 "myPrivateEndpoint" などの名前を入力します。
    ターゲット サブリソース 既定の searchService をそのまま使用します。
    ネットワーク
    仮想ネットワーク 前の手順で作成した仮想ネットワークを選択します。
    Subnet 既定値を選択します。
    プライベート DNS 統合
    プライベート DNS ゾーンとの統合 既定値の [はい] をそのまま使用します。
    プライベート DNS ゾーン 既定値の (新規) privatelink.search.windows.net をそのまま使用します。
  8. [OK] を選択します。

  9. [Review + create](レビュー + 作成) を選択します。 [確認および作成] ページが表示され、Azure によって構成が検証されます。

  10. "証に成功しました" というメッセージが表示されたら、 [作成] を選択します。

  11. 新しいサービスのプロビジョニングが完了したら、作成したリソースを参照します。

  12. 左側のコンテンツメニューから [キー] を選択します。

  13. 後からサービスに接続するときのために、プライマリ管理者キーをコピーします。

仮想マシンの作成

  1. Azure portal の画面の左上で、 [リソースの作成]>[Compute]>[仮想マシン] を選択します。

  2. [Create a virtual machine - Basics](仮想マシンの作成 - 基本) で、次の値を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソース グループ 前のセクションで作成したリソース グループを使用します。
    インスタンスの詳細
    仮想マシン名 "my-vm" などの名前を入力します。
    リージョン 自分のリージョンを選択します。
    可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択することも、機能が必要な場合は別のオプションを選択することもできます。
    Image [Windows Server 2022 Datacenter: Azure Edition - Gen2] を選択します。
    VMアーキテクチャ 既定値の [x64] をそのまま使用します。
    [サイズ] 既定値の [Standard D2S v3] をそのまま使用します。
    管理者アカウント
    ユーザー名 管理者のユーザー名を入力します。 Azure サブスクリプションに対して有効なアカウントを使用します。 検索サービスを管理できるように、VM から Azure portal にサインインする必要があります。
    Password アカウントのパスワードを入力します。 パスワードは 12 文字以上で、定義された複雑さの要件を満たす必要があります。
    パスワードの確認 パスワードを再入力します。
    受信ポートの規則
    パブリック受信ポート 既定値の [選択したポートを許可する] をそのまま使用します。
    受信ポートの選択 既定値の [RDP (3389)] をそのまま使用します。
  3. ディスク を選択します。

  4. [Create a virtual machine - Disks](仮想マシンの作成 - ディスク) で既定値をそのまま使用し、[Next: Networking](次へ: ネットワーク) を選択します。

  5. [Create a virtual machine - Networking](仮想マシンの作成 - ネットワーク) で、次の値を指定します。

    設定
    仮想ネットワーク 前の手順で作成した仮想ネットワークを選択します。
    Subnet 既定値の [10.1.0.0/24] のままにします。
    NIC ネットワーク セキュリティ グループ 既定値の [Basic] のままにします
    パブリック IP 既定値の [(新規) myVm-ip] のままにします。
    パブリック受信ポート 既定値の [選択したポートを許可する] のままにします。
    受信ポートの選択 [HTTP (80)]、[HTTPS (443)]、[RDP (3389)] を選択します。

    Note

    IPv4 アドレスは CIDR 形式で表すことができます。 RFC 1918 で説明されているように、プライベート ネットワーク用として予約されている IP 範囲は避けてください。

    • 10.0.0.0 - 10.255.255.255 (10/8 prefix)
    • 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
    • 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
  6. 検証チェックを行うために [確認 + 作成] を選択します。

  7. "証に成功しました" というメッセージが表示されたら、 [作成] を選択します。

VM に接続します

次のように、仮想マシンをダウンロードして接続します。

  1. ポータルの検索バーで、前の手順で作成した仮想マシンを検索します。

  2. 接続を選択します。 [接続] ボタンを選択すると、 [Connect to virtual machine](仮想マシンに接続する) が開きます。

  3. [RDP ファイルのダウンロード] を選択します。 Azure によってリモート デスクトップ プロトコル (.rdp) ファイルが作成され、お使いのコンピューターにダウンロードされます。

  4. ダウンロードした .rdp ファイルを開きます。

    1. メッセージが表示されたら、 [Connect] を選択します。

    2. VM の作成時に指定したユーザー名とパスワードを入力します。

      Note

      場合によっては、[その他]>[別のアカウントを使用する] を選択して、VM の作成時に入力した資格情報を指定する必要があります。

  5. [OK] を選択します。

  6. サインイン処理中に証明書の警告が表示される場合があります。 証明書の警告を受信する場合は、 [はい] または [続行] を選択します。

  7. VM デスクトップが表示されたら最小化してローカル デスクトップに戻ります。

テスト接続

このセクションでは、検索サービスへのプライベート ネットワークアクセスを確認し、プライベート エンドポイントにプライベート接続します。

検索サービス エンドポイントがプライベートの場合、一部のポータル機能が無効になります。 サービス レベル設定を表示して管理することはできますが、インデックス データやサービス内のさまざまなその他のコンポーネント (インデックス、インデクサー、スキルセットの定義など) へのポータル アクセスは、セキュリティ上の理由で制限されています。

  1. myVM のリモート デスクトップで、PowerShell を開きます。

  2. nslookup [search service name].search.windows.net」と入力します。

    次のようなメッセージが返されます。

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    [search service name].privatelink.search.windows.net
    Address:  10.0.0.5
    Aliases:  [search service name].search.windows.net
    
  3. VM から検索サービスに接続し、インデックスを作成します。 このクイックスタートに従うと、REST API を使用してサービスに新しい検索インデックスを作成できます。 Web API テスト ツールからの要求を設定するには、検索サービス エンドポイント (https://[search service name].search.windows.net) と、これ以前のステップでコピーした管理者 AIP キーが必要です。

  4. サービスが完全に動作していることが確認できたら、VM からのクイックスタートは完了です。

  5. myVM へのリモート デスクトップ接続を閉じます。

  6. パブリック エンドポイント上でサービスにアクセスできないことを確認するには、ローカル ワークステーションで REST クライアントを開き、クイックスタートの最初のいくつかのタスクを実行します。 「リモートサーバーが存在しません」というエラー表示が出た場合には、検索サービスのプライベート エンドポイントが正常に構成されています。

Azure portal を使用してプライベート検索サービスにアクセスする

検索サービス エンドポイントがプライベートの場合、一部のポータル機能が無効になります。 サービス レベル情報を表示および管理することはできますが、セキュリティ上の理由から、インデックス、インデクサー、およびスキルセットの情報は非表示になります。

この制限を回避するには、仮想ネットワーク内の仮想マシン上のブラウザーから Azure portal に接続します。 ポータルでは、接続でプライベート エンドポイントが使用され、コンテンツと操作が可視化されます。

  1. 手順に従って、プライベート エンドポイントを介して検索サービスにアクセスできる VM をプロビジョニングします

  2. 仮想ネットワーク内の仮想マシンで、ブラウザーを開き、Azure portal にサインインします。 ポータルは、仮想マシンに接続されているプライベート エンドポイントを使用して検索サービスに接続します。

パブリック ネットワーク アクセスの無効化

検索サービスをロックして、パブリック インターネットからの要求を許可しないようにすることができます。 この手順では Azure portal を使用できます。

  1. Azure portal の検索サービス ページの左端のウィンドウで、[ネットワーク] を選択します。

  2. [ファイアウォールと仮想ネットワーク] タブで [無効] を選択します。

また、Azure CLIAzure PowerShell、または Management REST API を使用して、public-access または public-network-accessdisabled に設定することができます。

リソースをクリーンアップする

独自のサブスクリプションを使用している場合は、プロジェクトの最後に、作成したリソースがまだ必要かどうかを確認してください。 リソースを実行したままにすると、お金がかかる場合があります。

個々のリソースまたはリソース グループを削除することで、この演習で作成したすべてのものを削除できます。 任意のリソースの概要ページでリソース グループを選択し、[削除] を選択します。

次のステップ

この記事では、仮想ネットワーク上の VM と、プライベート エンドポイントを使用した検索サービスを作成しました。 あなたはインターネットから VM に接続し、 Private Link を使用して検索サービスと安全に通信を行いました。 プライベート エンドポイントの詳細については、「Azure プライベート エンドポイントとは」を参照してください。