Azure AI Searchのパブリックアクセス制限設定手順
このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(Azure Portal、Azure CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Azure AI Searchでパブリックアクセスが許可されている問題について、リスクと対策を解説します。

リスクの概要
Azure AI Search(旧称:Azure Cognitive Search)は、高度なベクトル検索、全文検索、セマンティック検索、そしてAIエンリッチメント機能を備えた統合検索サービスです。このサービスはデフォルト設定では、パブリックインターネットから直接アクセス可能な状態になっています。そのため、適切なネットワークアクセス制限を実施しないと、インデックスに保存された機密情報が外部に漏洩するリスクが高まります。
重要な注意事項: Azure AI Searchのネットワーク制限機能は、StandardプランとBasicプランでのみ利用可能です。無料のFreeプランでは、これらのネットワークセキュリティ機能は提供されていません。
パブリックアクセスを適切に制限することで、承認された特定のネットワークやリソースからのみアクセスを許可し、不正アクセスやデータ漏洩のリスクを大幅に低減できます。特に個人情報や社内機密文書などの重要データを検索サービスで扱う場合は、ネットワークレベルでの堅牢な防御策が必要不可欠です。
修復方法
コンソールでの修復手順 Azure コンソールを使用して、Azure AI Searchのパブリックアクセスを制限します。
ステップ1: Azure AI Searchサービスへのアクセス
- Azure Portalにサインイン
- 「Azure AI Search」または「Cognitive Search」を検索
- 対象の検索サービスを選択
ステップ2: ネットワーク設定の変更
- 左側メニューの「設定」セクションから「ネットワーク」をクリック
- 「パブリック アクセス」タブを選択
- 「選択されたIPアドレス」を選択

ステップ3: 許可するIPアドレスの追加
- 「アドレス範囲を追加」をクリック
- 許可するIPアドレスまたはCIDR範囲を入力:
- 単一IP:
203.0.113.10 - IP範囲:
203.0.113.0/24 - 最大100個のIPルールを設定可能
- 単一IP:
- 各IPアドレスに説明を追加(例:「本社オフィス」「VPNゲートウェイ」)
注意事項:
- IPv6アドレスもサポート
- Azure PortalからアクセスするためのIPも許可リストに追加する必要があります

ステップ4: 信頼されたサービスの設定
- 「信頼されたMicrosoft サービスがこのファイアウォールをバイパスすることを許可する」にチェック(推奨)
- これにより、以下のサービスからのアクセスが可能:
- Azure Cognitive Services(スキルセット用)
- Azure Functions(カスタムスキル用)
- Azure Logic Apps
- Power Platform(Power Apps、Power Automate)
ステップ5: 設定の保存と確認
- 「保存」をクリック
- 設定の反映には最大15分かかる場合があります
- テスト:
- 許可されていないIPからアクセスして403 Forbiddenエラーが返ることを確認
- エラーメッセージ例:
"This request is not authorized to perform this operation." - 許可されたIPからの正常アクセスを確認
オプション2: プライベートエンドポイントによる完全な分離(エンタープライズ推奨)
メリット:
- パブリックインターネットからの完全な分離
- Azure Backboneネットワークを介した安全な通信
- NSGやAzure Firewallによる追加の制御が可能
- データ漏洩のリスクを最小化
ステップ1: プライベートエンドポイントの作成準備
- 事前に仮想ネットワーク(VNet)とサブネットを準備
- サブネットには最低/28のアドレス空間を推奨
Microsoft.Storageのサービスエンドポイントは不要
- Azure AI Searchサービスの「ネットワーク」設定に移動

ステップ2: パブリックアクセスの無効化
- 「パブリック アクセス」タブで「無効」を選択
- 警告メッセージを確認(プライベートエンドポイント経由のみアクセス可能になる)
ステップ3: プライベートエンドポイントの作成
- 「プライベート エンドポイント接続」タブに移動
- 「+ プライベート エンドポイント」をクリック
- 基本設定:
- 名前:
pe-search-prod - リージョン: 検索サービスと同じリージョン
- リソースグループ: 適切なグループを選択
- 名前:
- リソース設定:
- 接続方法: 「マイ ディレクトリ内の Azure リソースに接続」
- サブスクリプション: 選択
- リソースの種類:
Microsoft.Search/searchServices - リソース: 対象の検索サービス
- ターゲット サブリソース:
searchService
- 仮想ネットワーク設定:
- 仮想ネットワーク: 準備したVNetを選択
- サブネット: プライベートエンドポイント用のサブネットを選択
- DNS設定:
- 「はい」を選択してプライベートDNSゾーンと統合
- DNSゾーン名:
privatelink.search.windows.net - 既存のゾーンがある場合は選択、なければ新規作成
ステップ4: 認証方法の変更(推奨)
- 「キー」セクションに移動
- 「APIアクセス制御」で「ロールベース、またはその両方」を選択
- これによりAzure AD認証とRBACによる細かな権限制御が可能
- 必要なRBACロール:
Search Service Contributor: サービス管理権限Search Index Data Contributor: インデックスデータの読み書きSearch Index Data Reader: インデックスデータの読み取り専用
最後に
この記事では、Azure AI Searchのパブリックアクセス制限について、リスクと対策を解説しました。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。
CSPMについてはこちらで解説しております。併せてご覧ください。

