このガイドでは、Codeless Connector Framework (CCF) 経由で Cloudflare のログを Microsoft Sentinel に統合するときに起きる、よくある問題を解決します。
原因: Cloudflare CCF コネクターが必要とする Microsoft 管理のサービスプリンシパルが、Microsoft Entra ID テナントにプロビジョニングされていません。これは通常、コネクター設定ページの Grant tenant-wide admin consent ボタンが OAuth リダイレクトを完了できないときに起きます。原因の例は、ブラウザー拡張機能、キャッシュされたセッション、競合するサインインアカウント、Conditional Access ポリシー、未完了の Multi-Factor Authentication (MFA) チャレンジです。
対処:
-
サブスクリプションに
Microsoft.SecurityInsightsリソースプロバイダーが登録されていることを確認します。az provider show --namespace Microsoft.SecurityInsights --query "{state:registrationState}"出力は
"state": "Registered"である必要があります。 -
InPrivate/Incognito のブラウザーセッションで、次のいずれかの Microsoft Entra ロールを持つユーザーとしてサインインします。Privileged Role Administrator、Cloud Application Administrator、AI Administrator、Application Administrator。
-
Microsoft 管理アプリケーション(App ID
4f05ce56-95b6-4612-9d98-a45c8cc33f9f)のテナント全体の管理者同意 URL を開きます。{tenant-id}は Entra のテナント ID に置き換えます。https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id=4f05ce56-95b6-4612-9d98-a45c8cc33f9f -
MFA チャレンジを含め、同意フローを完了します。
確認: Microsoft Sentinel で Cloudflare コネクターの設定ページを更新します。Service Principal ID フィールドが自動で入り、Grant tenant-wide admin consent ボタンは表示されなくなります。コネクターのデプロイを再試行します。
次のようなエラーでデプロイが失敗します。
Deployment template validation failed: 'The resource
'Microsoft.Resources/deployments/CreateDataFlowResources'
is not defined in the template.'原因: ARM テンプレートは、Azure Blob Storage アカウントと Microsoft Sentinel ワークスペース(およびその基盤となる Log Analytics ワークスペース)が 同じ Azure サブスクリプションかつ同じリソースグループ にあることを求めます。別のサブスクリプションまたは別のリソースグループにあると、入れ子の CreateDataFlowResources サブデプロイが必要なリソース参照を解決できず、検証が失敗します。
あまり多くありませんが、対象サブスクリプションに Microsoft.EventGrid リソースプロバイダーが登録されていないときにも、同じ種類のエラーが起きます。
対処:
-
両方のリソースが同じ Azure サブスクリプションかつ同じリソースグループにあることを確認します。そうでない場合は、両方を共有するように再デプロイまたは移行します。
-
対象サブスクリプションに必要なリソースプロバイダーを登録します。
az provider register --namespace Microsoft.SecurityInsights az provider register --namespace Microsoft.EventGrid -
デプロイ後、Microsoft 管理のサービスプリンシパルがストレージアカウントに次のロール割り当てを持っていることを確認します。
Storage Blob Data ReaderStorage Queue Data Contributor
-
ストレージアカウントのネットワーク設定で、コネクターが Azure Storage Queue にアクセスできることを確認します。
確認: コネクターを再デプロイします。Deployments ブレードの状態が Succeeded になり、コネクターが Connected に遷移します。
次のようなエラーでデプロイが失敗します。
Failed to create required resources for data connector.
Invalid output table schema: The following columns which exist
in the current schema do not exist in the new schema or have
different types.原因: 以前のバージョンの Cloudflare CCF コネクターが、Log Analytics ワークスペースに CloudflareV2_CL テーブルを作成しています。新しいコネクターバージョンをデプロイすると、ARM テンプレートはこのテーブルスキーマを更新しようとします。新しいスキーマが現在のテーブルにある列を省略している、または既存の列を互換性のないデータ型に変更していると、Azure Monitor は更新を拒否します。
対処: コネクターを再デプロイする前に、Azure Monitor REST API で既存のテーブルスキーマを直接更新します。ワークスペースに Log Analytics Contributor ロールを持つアカウントで、Azure Cloud Shell から更新を実行します。
-
Cloudflare CCF コネクターのソリューションパッケージ(Microsoft Sentinel Content Hub ↗ で入手できます)から、最新の
CloudflareV2_CL.jsonスキーマ定義をダウンロードし、Cloud Shell セッションにアップロードします。 -
Azure Resource Manager のアクセストークンを取得します。
az account get-access-token --resource https://management.azure.com/ -
プレースホルダーを自分の値に置き換えて、更新したテーブルスキーマを適用します。
az rest --method PUT \ --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>/tables/CloudflareV2_CL?api-version=2025-07-01" \ --headers "Authorization=Bearer <access-token>" "Content-Type=application/json" \ --body @CloudflareV2_CL.json
確認: コマンドは更新後のテーブル定義を JSON で返します。Cloudflare CCF コネクターを再デプロイします。スキーマ検証エラーなしでデプロイが完了する必要があります。
原因: Data Collection Rule (DCR) のスキーマが、配信されている Cloudflare Logpush のスキーマと同期していません。よくあるパターンは次の 2 つです。
- データ型の不一致: DCR の
streamDeclarationsで、フィールドが誤った Sentinel のデータ型として宣言されています。たとえば、数値フィールドがstringになっている、またはBotDetectionIDsのような形が変わるフィールドがdynamic以外になっています。レコードは取り込まれますが、一致しない列はnullになります。 - 予約済み列名との衝突: Cloudflare のフィールド名が Microsoft Sentinel の予約済み列名 ↗ と衝突しています。たとえば、Cloudflare の Network Error Logging (NEL) データセットには
Typeフィールドがありますが、Typeは Sentinel で予約されています。予約済みの名前を持つフィールドは、元の名前では保存できません。
対処:
- Microsoft Sentinel Content Hub ↗ から、Cloudflare CCF ソリューションを最新バージョンにアップグレードします。新しいリリースでは、コネクターが出荷するフィールドのデータ型を順次修正し、新しい Cloudflare Logpush フィールドへの対応を追加しています。
- アップグレード後も欠けているフィールドが残る場合(DCR をカスタマイズしている場合など)は、手作業で修正します。
-
データ型の不一致: DCR の
streamDeclarationsとCloudflareV2_CLテーブル定義の両方で、フィールドのデータ型を Cloudflare Logpush スキーマに合わせて更新します(例:EdgeResponseCompressionRatioのような浮動小数点値はreal、BotDetectionIDsはdynamic)。 -
予約名の衝突: DCR の
transformKql変換でフィールドをリネームし、リネームした列をCloudflareV2_CLテーブル定義に追加します。たとえば、NEL のType値を残すには次のようにします。source | extend NELType = Type | project-away TypeCloudflareV2_CLにデータ型stringのNELType列を追加します。
-
確認: 新しい Logpush バッチを送り、影響を受けたフィールドについて CloudflareV2_CL を照会します。値は入り、null ではなくなっている必要があります。
CCF ソリューションに同梱されている Cloudflare ワークブックは読み込めますがデータが表示されない、または参照しているテーブルやコネクターが存在しないというエラーでクエリが失敗します。
原因: 以前のリリースでは、Cloudflare CCF ソリューションに同梱されていたワークブックが、レガシーの Cloudflare_CL テーブルとレガシーの CloudflareDataConnector を参照していました。CCF コネクターはパーサー経由で CloudflareV2_CL に取り込むため、ログが正しく取り込まれていても、レガシーテーブルに対するワークブックのクエリは結果を返しません。
対処: ワークブックが CCF コネクターのパーサーと CloudflareV2_CL テーブルを参照するバージョンに、Cloudflare CCF ソリューションをアップグレードします。最新のソリューションリリースは Microsoft Sentinel Content Hub ↗ から入手できます。
確認: ワークブックを開き直します。パネルに直近の Cloudflare ログデータが入る必要があります。
ここに載っていない問題については、次を参照してください。
- 最新のソリューションバージョンとデプロイの前提条件は、Azure Marketplace の Cloudflare CCF ソリューションページ ↗ を確認してください。
- DCR やテーブル定義に影響する最近のスキーマ変更は、Cloudflare Logs の変更通知 を確認してください。
- Cloudflare 側のログ配信に関する問題は、Cloudflare Support に問い合わせる を参照してください。
- Microsoft Azure または Microsoft Sentinel の CCF 環境に限定される問題は、Microsoft Support にお問い合わせください。