コンテンツにスキップ

SaaS向けWAF

Web Application Firewall (WAF)は、Cloudflareを通じて追加のセキュリティ対策を作成することを可能にします。SaaSプロバイダーとして、カスタムルール、レート制限ルール、および管理ルールをカスタムホスト名にリンクできます。これにより、悪意のあるトラフィックからドメインを安全に保つためのより多くの制御が提供されます。

SaaSプロバイダーとして、異なるカスタムホスト名に異なるセキュリティ対策を適用したい場合があります。SaaS向けWAFを使用すると、異なるカスタムホスト名のセットに適用できる複数のWAF構成を作成できます。この追加の柔軟性とセキュリティにより、エンド顧客のドメイン全体で最適な保護が実現します。


前提条件

SaaS向けWAFを使用する前に、カスタムホスト名を作成する必要があります。まだ行っていない場合は、Cloudflare for SaaSの始め方を確認してください。

APIを通じてカスタムホスト名を作成することもできます:

Terminal window
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{"Hostname":"example.com"}, "Ssl":{wildcard:false}}'

ステップ1 - カスタムホスト名にカスタムメタデータを関連付ける

カスタムホスト名にWAFを適用するには、顧客のドメインとそれに関連付けたいWAF構成との間に関連付けを作成する必要があります。Cloudflareの製品であるカスタムメタデータを使用すると、APIを介してこれを行うことができます。

  1. ゾーンIDを見つけるには、Cloudflareダッシュボードで確認できます。

  2. マイプロフィール > APIトークン > グローバルAPIキーを選択して、認証キーを見つけます。

  3. APIでGET呼び出しを行ってカスタムホスト名IDを見つけます:

Terminal window
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"
  1. カスタムメタデータを計画します。完全にカスタマイズ可能です。以下の例では、3つの値(低、中、高)を割り当てることを期待するタグ"security_level"を選択しました。
  1. 上記で収集したCloudflareのメールとIDを使用して、以下の形式でAPI呼び出しを行います:
Terminal window
curl --request PATCH \
"https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames/{custom_hostname_id}" \
--header "X-Auth-Email: <EMAIL>"
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"custom_metadata": {
"customer_id": "12345",
"security_level": "low"
}
}'

これにより、カスタムホスト名にカスタムメタデータが割り当てられ、そのIDに関連付けられたセキュリティタグが付与されます。

ステップ2 - タグに基づいてセキュリティ製品をトリガーする

  1. WAFが実行されるルールセットエンジン内のカスタムメタデータフィールドを見つけます。これを使用して、WAFカスタムルールレート制限ルール、およびTransform Rulesなどの異なる製品の構成をトリガーできます。

  2. ダッシュボードを介してまたはAPIを介してルールを構築します。"security_level"が低い場合に対応するレート制限ルールの例を以下に示します。

Terminal window
curl --request PUT \
"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_ratelimit/entrypoint" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"action": "block",
"ratelimit": {
"characteristics": [
"cf.colo.id",
"ip.src"
],
"period": 10,
"requests_per_period": 2,
"mitigation_timeout": 60
},
"expression": "lookup_json_string(cf.hostname.metadata, \"security_level\") eq \"low\" and http.request.uri contains \"login\""
}
]
}'

ダッシュボードを介してルールを構築するには:

  1. Cloudflareダッシュボードにログインし、アカウントとウェブサイトに移動します。

  2. セキュリティ > WAFを選択します。

  3. セキュリティ目標に応じて、カスタムルール、レート制限ルール、または管理ルールに特有のダッシュボードの指示に従います。

  4. ルールがアクティブになると、該当するタブ(カスタムルール、レート制限、または管理ルール)に表示されるはずです。

ルールがアクティブ