Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Schema Profiles

最終更新 Markdown で表示Agent セットアップ

Schema Profile は、想定するリクエストフィールドとその制約をモデル化します。トラフィックから学習するか、スキーマをアップロードして指定できます。

プロファイルが利用可能になると、Cloudflare は 常時オンの検出 を実行します。検出だけではリクエストを緩和しません。

トラフィックから学習する

オペレーション(operation)は、Cloudflare がエンドポイントを指す用語です。識別子は HTTP メソッド、ホスト名パターン、パスパターンの組み合わせです。

Web AssetsWeb Assets > Operations でオペレーションを継続的に発見します。手動でオペレーションを追加することもできます。

どちらの方法も、オペレーションをインベントリに追加するだけです。プロファイリングを始めるには、オペレーションのオーバーフローメニューから Learn profile を選択します。

トラフィック要件を満たす

学習は週次で実行され、直近 7 日間の対象トラフィックを使います。2xx レスポンスを受け取ったリクエストだけが対象です。

フィールド学習のしきい値は、対象リクエスト 1,000 件です。境界学習のしきい値は、対象リクエスト 10,000 件です。

フィールド学習のしきい値を満たすと、Cloudflare はリクエストフィールドを学習できます。境界学習のしきい値を満たすと、数値範囲や文字列長などの制約を学習できます。

最初のプロファイルは、次の週次学習実行後に表示されます。該当するしきい値を満たしてから最大 7 日かかることがあります。

学習内容を確認する

オペレーションのオーバーフローメニューから View details を選択します。学習したスキーマは Security overview に表示されます。

対応している場合、プロファイルは次のリクエスト要素を学習できます。

  • パス変数
  • クエリパラメーター
  • ヘッダーと Cookie
  • JSON リクエストボディ
  • フォームエンコードされたリクエストボディ

プロファイルは整数、文字列、UUID(universally unique identifier)、配列を検証できます。対応する制約には、数値範囲、文字列長、文字クラス、最大 3 値までの列挙があります。

成功したトラフィックにも、ボット、スキャナー、悪意のあるリクエストが含まれることがあります。検出を適用する前に、学習したプロファイルを確認してください。

週次の実行ごとに、対象トラフィックの変化に応じてプロファイルが更新されます。固定スキーマにする場合は、学習したスキーマを OpenAPI として エクスポート し、検証用にアップロード します。

制限を確認する

学習した Schema Profile には、次の制限があります。

  • Multipart フォーム、GraphQL、XML は未対応です。
  • 繰り返しパラメーターは、一意性を強制せず、各値を検証します。
  • 必須パラメーターの存在は強制しません。
  • 新しいパラメーターだけでは違反になりません。
  • 制約は学習したフィールドに適用され、完全な許可リストではありません。

アップロードしたスキーマを使う

アップロードした OpenAPI スキーマは、観測したトラフィックではなく、想定する構造を提供します。検出は cf.schema_validation.uploaded.violated で生成されます。

API Shield には詳細な Schema validation リファレンス があります。対応バージョン、インポート手順、OpenAPI フィールド、ボディ上限、トラブルシューティングを扱います。

自動化する場合は、APITerraform の手順を参照してください。

役に立ちましたか?