Azure AI Search からのインデクサー接続を許可するように IP ファイアウォール規則を構成する

インデクサーの代わりに、検索サービスは外部 Azure リソースへの送信呼び出しを発行して、インデックス作成中にデータをプルします。 Azure リソースで IP ファイアウォール規則を使用して着信呼び出しをフィルター処理する場合は、インデクサー要求を許可する受信規則をファイアウォールに作成する必要があります。

この記事では、ご利用の検索サービスの IP アドレスを検索してから、 Azure Storage アカウント上でインバウンド IP 規則を構成する方法について説明します。 この方法は Azure Storage に固有のものですが、データ アクセスに IP ファイアウォール規則を使う他の Azure リソース (Azure Cosmos DB や Azure SQL など) でも機能します。

Note

IP ファイアウォール規則を定義する場合は、ストレージ アカウントと検索サービスが異なるリージョンに存在する必要があります。 お使いの設定でこれが許可されない場合は、代わりに信頼されたサービス例外またはリソース インスタンス ルールを試してください。

検索サービスの IP アドレスを取得する

  1. お使いの検索サービスの完全修飾ドメイン名 (FQDN) を取得します。 これは <search-service-name>.search.windows.netのようになります。 FQDN は、Azure portal で検索サービスを調べることで確認できます。

    Screenshot of the search service Overview page.

  2. コマンド プロンプトで FQDN の nslookup (または ping) を実行して、検索サービスの IP アドレスを検索します。 FQDN から "https://"のプレフィックスを削除してください。

  3. 次の手順でインバウンド規則に指定できるように、IP アドレスをコピーします。 次の例では、コピーする必要がある IP アドレスは 「150.0.0.1」 です。

    nslookup contoso.search.windows.net
    Server:  server.example.org
    Address:  10.50.10.50
    
    Non-authoritative answer:
    Name:    <name>
    Address:  150.0.0.1
    aliases:  contoso.search.windows.net
    

クライアント IP アドレスからのアクセスを許可する

インデックス作成とクエリの要求を検索サービスにプッシュするクライアント アプリケーションは、IP 範囲で表す必要があります。 Azure では、通常、サービスの FQDN に ping を実行して IP アドレスを特定できます (たとえば、 ping <your-search-service-name>.search.windows.netは検索サービスの IP アドレスを返します )。

クライアント IP アドレスを追加して、現在のコンピューター上の Azure portal からサービスにアクセスできるようにします。 左側のナビゲーション ウィンドウの [ネットワーク] セクションに移動します。 [パブリック ネットワーク アクセス][選択したネットワーク] に変更してから、[ファイアウォール][クライアント IP アドレスを追加する] をオンにします。

Screenshot of adding client ip to search service firewall

Azure portal の IP アドレスを取得する

ポータルまたは データのインポート ウィザード を使用してインデクサーを作成する場合は、ポータルの受信規則も必要です。

ポータルの IP アドレスを取得するには、stamp2.ext.search.windows.net (トラフィック マネージャーのドメイン) で nslookup (または ping) を実行します。 nslookup の場合、IP アドレスは応答の "権限のない回答" 部分に表示されます。

次の例では、コピーする必要がある IP アドレスは "52.252.175.48" です。

$ nslookup stamp2.ext.search.windows.net
Server:  ZenWiFi_ET8-0410
Address:  192.168.50.1

Non-authoritative answer:
Name:    azsyrie.northcentralus.cloudapp.azure.com
Address:  52.252.175.48
Aliases:  stamp2.ext.search.windows.net
          azs-ux-prod.trafficmanager.net
          azspncuux.management.search.windows.net

異なるリージョンのサービスは、異なるトラフィック マネージャーに接続します。 ドメイン名に関係なく、ping から返された IP アドレスは正しいもので、リージョン内の Azure portal で受信ファイアウォール規則を定義するときに使用します。

ping の場合、要求はタイムアウトしますが、IP アドレスは応答に表示されます。 たとえば、"Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]" というメッセージでは、IP アドレスは "52.252.175.48" になります。

"AzureCognitiveSearch" サービス タグの IP アドレスを取得する

マルチテナント実行環境からの要求を許可する受信ルールを作成する必要もあります。 この環境は Microsoft によって管理されており、処理集中型のジョブをオフロードするために使用されます。そうしないと、検索サービスが過負荷になる恐れがあります。 このセクションでは、この受信規則の作成に必要な IP アドレスの範囲を取得する方法について説明します。

IP アドレスの範囲は、Azure AI Search をサポートするリージョンごとに定義されます。 マルチテナント実行環境から派生した要求が成功するように、完全な範囲を指定します。

この IP アドレス範囲は、AzureCognitiveSearch サービス タグから取得できます。

  1. Discovery API またはダウンロード可能な JSON ファイルを使用します。 検索サービスが Azure パブリック クラウドの場合は、Azure パブリック JSON ファイルをダウンロードします。

  2. JSON ファイルを開き、「AzureCognitiveSearch」を検索します。 WestUS2 の検索サービスの場合、マルチテナント インデクサー実行環境の IP アドレスは次のとおりです。

    {
    "name": "AzureCognitiveSearch.WestUS2",
    "id": "AzureCognitiveSearch.WestUS2",
    "properties": {
       "changeNumber": 1,
       "region": "westus2",
       "regionId": 38,
       "platform": "Azure",
       "systemService": "AzureCognitiveSearch",
       "addressPrefixes": [
          "20.42.129.192/26",
          "40.91.93.84/32",
          "40.91.127.116/32",
          "40.91.127.241/32",
          "51.143.104.54/32",
          "51.143.104.90/32",
          "2603:1030:c06:1::180/121"
       ],
       "networkFeatures": null
    }
    },
    
  3. IP アドレスに "/32" サフィックスがある場合は、ルール定義で "/32" を削除します (40.91.93.84/32 は 40.91.93.84 になります)。 他の IP アドレスはすべて逐語的に使用できます。

  4. リージョンのすべての IP アドレスをコピーします。

IP ファイアウォール規則に IP アドレスを追加する

必要な IP アドレスを取得したので、受信規則を設定できます。 ストレージ アカウントのファイアウォール規則に IP アドレスの範囲を追加する最も簡単な方法は、Azure portal を使用することです。

  1. ポータルでストレージ アカウントを見つけ、左側のナビゲーション ウィンドウで [ネットワーク] を開きます。

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

    Screenshot of Azure Storage Firewall and virtual networks page

  3. 先ほど取得した IP アドレスをアドレス範囲に追加し、[保存] を選択します。 検索サービス、Azure portal (省略可能)、およびお使いのリージョンの "AzureCognitiveSearch" サービス タグのすべての IP アドレスについて、規則が必要です

    Screenshot of the IP address section of the page.

ファイアウォール規則が更新されてから、インデクサーがファイアウォールの内側のストレージ アカウント データにアクセスできるようになるまで、5 分から 10 分かかる場合があります。

次のステップ