Azure AI 検索ソリューションのセキュリティを管理する

完了

組織では、検索ソリューションのセキュリティが信頼できるものである必要があります。 Azure AI 検索を使用すると、検索するデータをセキュリティで保護する方法を制御できます。

ここでは、検索ソリューションをセキュリティで保護する方法について説明します。 データを暗号化する状況と、受信および送信データ フローをセキュリティで保護する方法を重点的に取り上げます。 最後に、特定のユーザーまたはグループに対して検索結果へのアクセスを制限する方法について説明します。

セキュリティ アプローチの概要

AI 検索のセキュリティは、Azure の既存のネットワーク セキュリティ機能に基づいて構築されています。 検索ソリューションのセキュリティ保護について検討する際には、次の 3 つの領域に重点を置くことができます。

  • ユーザーによって行われる、検索サービスへの受信検索要求
  • ドキュメントのインデックスを作成するためのドキュメント検索ソリューションから他のサーバーへの送信要求
  • ユーザーの検索要求ごとのドキュメント レベルでのアクセス制限

データの暗号化

Azure AI 検索サービスは、すべての Azure サービスと同様に、保存するデータをサービスマネージド キーで暗号化します。 この暗号化には、インデックス、データ ソース、シノニム マップ、スキルセットに加えて、インデクサー定義も含まれます。

転送中のデータは、ポート 443 経由で標準 HTTPS TLS 1.3 暗号化を使用して暗号化されます。

独自の暗号化キーを使用する場合、ACS では Azure Key Vault の使用がサポートされます。 独自のカスタマー マネージド キーを使用する利点は、カスタム キーを使用するすべてのオブジェクトで二重暗号化が有効になることです。

ヒント

カスタマー マネージド キーを暗号化に使用する方法の詳細な手順については、「Azure AI 検索でデータ暗号化用にカスタマー マネージド キーを構成する」を参照してください

受信トラフィックをセキュリティで保護する

検索ソリューションにインターネットまたはアプリから外部アクセスできる場合は、攻撃面を減らすことができます。 Azure AI 検索を使用すると、ファイアウォールを使用してパブリック エンドポイントへのアクセスを無料で制限し、特定の IP アドレスからのアクセスを許可できます。

Diagram showing inbound traffic secured using ExpressRoute through a firewall into Azure AI Search.

検索サービスがオンプレミスのリソースによってのみ使用される場合は、ExpressRoute 回線、Azure Gateway、App サービスを使用してセキュリティを強化できます。 さらに、Azure プライベート リンクを使用するようにパブリック エンドポイントを変更するオプションもあります。 また、Azure 仮想ネットワークやその他のリソースを設定する必要もあります。 プライベート エンドポイントの使用は最も安全なソリューションですが、Azure プラットフォームでホストする必要があるサービスの使用には追加コストが伴います。

ヒント

プライベート エンドポイントの詳細については、「Azure AI 検索への安全な接続を行うためのプライベート エンドポイントを作成する」を参照してください。

検索ソリューションに対する要求を認証する

検索ソリューションの攻撃面を減らすためのインフラストラクチャが整ったので、ユーザーとアプリからの検索要求を認証する方法に重点を移します。

ACS 作成時の既定のオプションは、キーベースの認証です。 キーには次の 2 種類があります。

  • 管理キー - 書き込みアクセス許可とシステム情報を照会する権限を付与します (検索サービスごとに最大 2 つの管理キーを作成できます)
  • クエリ キー - 読み取りアクセス許可を付与し、ユーザーまたはアプリによってインデックスのクエリを実行するために使用されます (検索サービスごとに最大 50 個のクエリ キーを作成できます)

重要

データ プレーン操作のロールベースのアクセス制御は現在プレビュー中であり、追加使用条件に基づきます。 ロールは Azure パブリック クラウドでのみ使用でき、それらを使用すると、検索要求の待機時間が長くなる可能性があります。

ロールベースのアクセス制御 (RBAC) は、リソースへのアクセスを制御するグローバル システムとして Azure プラットフォームによって提供されます。 Azure AI 検索では、RBAC を次のように使用できます。

  • ロールには、サービスを管理するためのアクセス権を付与できる
  • インデックスの作成、読み込み、クエリを行うためのアクセス権を持つロールを定義する

Azure AI 検索サービスを管理するために割り当てることができる組み込みロールは次のとおりです。

  • 所有者 - すべてのリソースへのフル アクセス
  • 共同作成者 - 上記と同じですが、ロールを割り当てたり、承認を変更したりする機能はない
  • 閲覧者 - サービス情報の一部を表示する

データ プレーン (検索インデックスやデータ ソースなど) を管理できるロールが必要な場合は、次のいずれかのロールを使用します。

  • 検索サービス共同作成者 - 検索サービス管理者向けのロール (上記の共同作成者ロールと同じアクセス権) とコンテンツ (インデックス、インデクサー、データ ソース、スキルセット)
  • 検索インデックス データ共同作成者 - ドキュメント コレクションのインポート、更新、またはクエリを行う開発者またはインデックス所有者向けのロール
  • 検索インデックス データ閲覧者 - クエリの実行だけを必要とするアプリおよびユーザー向けの読み取り専用アクセス ロール

ヒント

RBAC を使用した認証の詳細については、Azure AI 検索で Azure ロールベースのアクセス制御 (Azure RBAC) を使用する方法に関する記事を参照してください。

送信トラフィックをセキュリティで保護する

通常、送信トラフィックは、ソース データのインデックスを作成するか、人工知能 (AI) を使用してソース データをエンリッチします。 Microsoft Entra ID を使用できる場合、送信接続ではキーベースの認証、データベース ログイン、または Microsoft Entra ログインの使用がサポートされます。

データ ソースが Azure プラットフォームでホストされている場合、システムまたはユーザー割り当てマネージド ID を使用して接続をセキュリティで保護することもできます。

Diagram showing Azure AI Search solution accessing data sources through an IP restricted firewall.

Azure サービスでは、ファイアウォールを使用してアクセスを制限できます。 ファイアウォールは、Azure AI 検索サービスの IP アドレスのみを許可するように構成できます。 AI を使用してインデックスをエンリッチする場合、AzureCognitiveSearch サービス タグ内のすべての IP アドレスも許可する必要があります。

インデクサーが使用する共有プライベート リンクの背後にあるソース データをセキュリティで保護することを選択できます。

重要

共有プライベート リンクには、Basic レベル (テキスト ベースのインデックス作成の場合)、または Standard 2 (S2) (スキル ベースのインデックス作成の場合) のいずれかが必要です。 料金の詳細については、「Azure Private Link の料金」をご覧ください。

ドキュメント レベルでデータをセキュリティで保護する

検索できるドキュメントを制限するように Azure AI 検索を構成できます。たとえば、契約書の PDF の検索を法務部門のユーザーに制限できます。

ドキュメント レベルでアクセスできるユーザーを制御するには、検索インデックス内の各ドキュメントを更新する必要があります。 アクセスできるユーザー ID またはグループ ID を含める新しいセキュリティ フィールドをすべてのドキュメントに追加する必要があります。 フィールドの検索結果をフィルター処理できるように、セキュリティ フィールドはフィルター処理できる必要があります。

このフィールドを配置し、許可されたユーザーまたはグループを設定すると、search.in フィルターをすべての検索クエリに追加することで結果を制限できます。 HTTP POST 要求を使用する場合、本文は次のようになります。

{
   "filter":"security_field/any(g:search.in(g, 'user_id1, group_id1, group_id2'))"  
}

これは、返された検索結果をユーザー ID とこのユーザーが属しているグループでフィルター処理します。 アプリケーションで Microsoft Entra ID を使用できる場合、そこからユーザーの ID とグループ メンバーシップを使用できます。

ヒント

Microsoft Entra ID を使用する方法のステップバイステップ ガイドについては、Active Directory ID を使用して Azure AI 検索の結果をトリミングするためのセキュリティ フィルターに関する記事を参照してください