この記事では、フェデレーション データ コネクタを構成して、Microsoft Sentinel データ レイクからの外部データ ソースのクエリを有効にする方法について説明します。 Azure Databricks、Azure Data Lake Storage (ADLS) Gen 2、および Microsoft Fabric とフェデレーションできます。
前提条件
データフェデレーションを設定する前に、次の要件を満たしていることを確認してください。
Sentinel データ レイクのオンボード: テナントをSentinel データ レイクにオンボードする必要があります。 詳細については、「Microsoft Sentinel Data Lake へのオンボード」を参照してください。
パブリック アクセシビリティ: 外部ソースにはパブリックにアクセスできる必要があります。 プライベート エンドポイントは現在サポートされていません。
サービス プリンシパル: Databricks と Azure Data Lake Storage Gen2 ソースをAzureするには、接続するデータ ソースに適切なアクセス許可を持つサービス プリンシパルが必要です。 詳細については、「Microsoft Entra ID アプリの登録」を参照してください。
Azure Key Vault: サービス プリンシパル クライアント シークレットを使用して構成されたAzure Key Vaultが必要です。 Microsoft Sentinel アプリケーション ID には、キー コンテナーに割り当てられたアクセス許可が必要です。 Azure Key Vault の構成の詳細については、「Azure Key Vaults」を参照してください。
Microsoft Sentinelアクセス許可: データフェデレーション コネクタを構成するためのシステム テーブルに対するデータ (管理) アクセス許可。 詳細については、「Microsoft Sentinel プラットフォームでのロールとアクセス許可」を参照してください。
サービス プリンシパルを作成する
Databricks および ADLS Gen 2 フェデレーションAzureには、Azure Key Vaultに格納されているアクセス資格情報を持つサービス プリンシパルが必要です。 既存のサービス プリンシパルを使用するか、次の手順を使用して新しいサービス プリンシパルを作成できます。
Microsoft Entra ID アプリケーションの登録を作成します。
- Azure portalで、[Microsoft Entra ID>アプリの登録] に移動します。
- [新規登録] を選択します。
- アプリケーションの名前を入力します。
- リダイレクト URI は空のままにします (このシナリオでは必要ありません)。
- [登録] を選択します。
クライアント シークレットを作成します。
- アプリの登録で、[ 証明書 & シークレット] に移動します。
- [新しいクライアント シークレット] を選択します。
- 説明を入力し、有効期限を選択します。
- [追加] を選択します。
- 次のセクションで使用するために、クライアント シークレットの値をすぐにコピーします。 ページを離れた後は、この値を取得できません。
アプリケーションの詳細に注意してください。
- アプリケーション (クライアント) ID
- オブジェクト ID
- ディレクトリ (テナント) ID
サービス プリンシパルの作成の詳細については、「Microsoft Entra ID アプリの登録」を参照してください。
Azure Key Vaultを作成し、資格情報を格納する
既存のAzure Key Vaultを使用し、以下の手順に従ってKey Vaultアクセスを構成するか、次の手順を使用して新しいKey Vaultを作成できます。
Azure Key Vaultを作成します。
- Azure portalで、新しいAzure Key Vaultを作成します。
- Azureロールベースのアクセス制御 (推奨) アクセス許可モデルを使用します。
- キー コンテナーの論理的な削除と消去の保護設定を有効にします。
- 作成後にKey Vault URI をメモします。
Key Vault アクセスを構成します。
-
Key Vault シークレット ユーザー ロールをMicrosoft Sentinel プラットフォームのマネージド ID に割り当てます。 ID のプレフィックスには、
msg-resources-が付いています。 - ロールベースのアクセス制御ではなく Key Vault のアクセス ポリシー Azure使用している場合は、シークレット管理操作の Get と List のアクセス許可を指定します。
-
Key Vault シークレット ユーザー ロールをMicrosoft Sentinel プラットフォームのマネージド ID に割り当てます。 ID のプレフィックスには、
クライアント シークレットをKey Vaultに格納します。
- Key Vaultで、[シークレット>Generate/Import] に移動します。
- サービス プリンシパルのクライアント シークレットを含む新しいシークレットを作成します。
- シークレット名をメモします。 これは、データフェデレーション コネクタ インスタンスを構成するときに使用されます。
Azure Key Vault の構成の詳細については、「Azure Key Vaults」を参照してください。
フェデレーション データ コネクタ
フェデレーション コネクタは、Defender ポータルのMicrosoft Sentinelの [データ コネクタ] ページで管理されます。
[Microsoft Sentinel>Configuration>Data コネクタ] に移動します。
[ データフェデレーション] で、[ カタログ ] を選択して、使用可能なフェデレーション コネクタを表示します。
カタログ ページには、次の情報が表示されます。
- 使用可能なフェデレーション コネクタの種類
- コネクタごとに構成されたインスタンスの数
- 発行元とサポート情報
[ 個人用コネクタ] ページを 選択して、構成されているすべてのコネクタ インスタンスを表示します。 このページには、テナントのデータフェデレーション コネクタ インスタンスと、表示名、バージョン、状態、およびサポート プロバイダーが一覧表示されます。
各インスタンスを選択して、詳細の表示、構成の編集、またはインスタンスの削除を行います。
コネクタ インスタンスを作成する
コネクタ インスタンスを作成するプロセスは、接続先の外部データ ソースによって異なります。 特定のデータ ソースの種類の手順に従います。
Microsoft Fabric コネクタ インスタンスを作成する
Fabric コネクタ インスタンスを構成する前に、Microsoft Fabric 環境内でアクセス許可を設定して、Microsoft Sentinelがデータにアクセスできるようにする必要があります。
テナントで外部データ共有が有効になるように Microsoft Fabric 内で管理者設定を構成する(詳細については、「外部データ共有を作成する」を参照してください)
サービス プリンシパルが Fabric パブリック API を呼び出すことができるように、Microsoft Fabric 内で管理者設定を構成します。 詳細については、「サービス プリンシパルが Fabric パブリック API を呼び出すことができる」を参照してください。
テーブルをフェデレーションする Lakehouse のワークスペース メンバーとして、
msg-resources-のプレフィックスが付いたSentinel プラットフォーム ID を追加します。 詳細については、「 ワークスペースへのアクセス権を付与する」を参照してください。
[ データフェデレーション>Catalog ] ページで、 Microsoft Fabric 行を選択します。
サイド パネルで、[ コネクタの接続] を選択します。
次の情報を入力します。
フィールド 説明 インスタンス名 このコネクタ インスタンスのフレンドリ名。 このインスタンス名は、このインスタンスからレイクで表されるテーブルに追加されます。 ファブリック ワークスペース ID フェデレーションする Fabric ワークスペースの ID。 Fabric ワークスペースまたは Lakehouse に移動すると、 の後の URL にワークスペース ID が表示されます。 /groups/Lakehouse テーブル ID フェデレーションする Fabric Lakehouse テーブルの ID。 Fabric Lakehouse に移動すると、 /lakehouses/後の URL にレイクハウス ID が表示されます。[次へ] を選択します。
フェデレーションするテーブルを選択します。
[次へ] を選択します。
フェデレーション ターゲットの構成を確認します。
[ 接続 ] を選択して、接続インスタンスを作成します。
注:
ターゲット データ ソース内のファイルは、Sentinel データ レイクから読み取られるデルタ Parquet 形式である必要があります。
コネクタ インスタンスからテーブルを確認する
コネクタ インスタンスを作成した後チェック、フェデレーションしたテーブルをMicrosoft Sentinelで使用できるようになります。
[構成>テーブルMicrosoft Sentinel >に移動します。
[ フェデレーション の種類] でフィルター処理して、すべてのフェデレーション テーブルを表示します。
コネクタ インスタンス名で検索します。
コネクタ インスタンスのテーブルとその名前の後に
_instance nameが表示されます。 たとえば、データ コネクタインスタンス名がGlobalHRDataされ、テーブルがhrlogs呼び出された場合、テーブル名はhrlogs_GlobalHRDataとして表示されます。一覧からテーブルを選択して詳細パネルを開きます。
[ 概要 ] タブを選択して、テーブルの種類とフェデレーション プロバイダーを表示します。
[ データ ソース ] タブを選択して、テーブルのコネクタ インスタンス データ プロバイダーとソース製品を表示します。 コネクタ インスタンス名を選択すると、Data Connectors 内の [My Connectors] でそのインスタンスに移動します。
[ スキーマ ] タブを選択して、テーブル スキーマを表示します。
[ スキーマ ] タブで、[ 更新 ] を選択して、フェデレーション テーブルに関連付けられているテーブル スキーマを更新します。
コネクタ インスタンスを管理する
コネクタ インスタンスを変更または削除するには:
- [データフェデレーション>My コネクタ] ページに移動します。
- 管理するコネクタ インスタンスを選択します。
- 詳細パネルで、使用可能なオプションを使用して、次の操作を行います。
- 接続設定を編集する
- フェデレーション テーブルを追加または削除する
- コネクタ インスタンスを削除する
注:
Microsoft Fabric 接続インスタンスでは、編集はサポートされていません。 新しいフェデレーション接続を作成してテーブルを追加するか、ファブリック接続インスタンスを削除して、同じインスタンス名と別のテーブル セットを選択して再作成できます。
トラブルシューティング
接続が失敗する
msg-resources-によってプレフィックスが付いたSentinel プラットフォームマネージド ID に、Azure Key Vaultに対する適切なアクセス許可があることを確認します。接続ソースが Databricks またはAzure Data Lake Storage Gen2 Azure場合は、Key Vault シークレットにサービス プリンシパルの正しいクライアント シークレットが含まれていることを確認します。
Key Vault ネットワークは、コネクタ構成中にすべてのネットワークからのパブリック アクセスを許可するように設定する必要があります。これは、Key Vaultの既定の構成です。 コネクタの作成または編集後に変更できます。
外部データ ソースにパブリックにアクセスできることを確認します。
Databricks と ADLS のターゲット データ ソースに対する適切なアクセス許可Azureサービス プリンシパルに付与されていることを確認します。
ターゲット データ ソースが Fabric の場合は、Microsoft Sentinelの
msg-resources-プレフィックス付き ID にワークスペース メンバーとしてのアクセス許可が付与されたことをチェックします。100 個を超える接続インスタンスがないことを確認します。
注:
ADLS と Azure Databricks では、フェデレーション接続ごとに 1 つの接続インスタンスが使用されます。 ファブリックでは、フェデレーション接続ごとにより多くのインスタンスが使用される場合があります。 Fabric の場合、フェデレーション接続内の各 lakehouse スキーマは、100 インスタンスの制限に対してカウントされます。
テーブルが表示されない
サービス プリンシパルが ADLS と Databricks Azureターゲット テーブルへの読み取りアクセス権を持ち、サービス プリンシパルがこれらのデータ ソースと同じテナント内にあるかどうかを確認します。
Databricks の場合は、組み込みのデータ 閲覧者特権プリセットと、サービス プリンシパルへの外部使用スキーマアクセス許可の両方が付与されていることを確認します。
ADLS Gen 2 の場合は、ストレージ BLOB データ閲覧者ロールがサービス プリンシパルに割り当てられているかどうかを確認します。
クエリ パフォーマンスの問題
外部ソースからクエリを実行するデータのサイズを検討します。
クエリを最適化してデータを早期にフィルター処理します。
Sentinelと外部ソース間のネットワーク接続を確認します。