Skip to content

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

WAF for SaaS

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

Web Application Firewall(WAF) を使うと、Cloudflare 上で追加のセキュリティ対策を作れます。SaaS プロバイダーは、カスタムルール、レート制限ルール、マネージドルールをカスタムホスト名に紐づけられます。悪意のあるトラフィックからドメインを守るための制御が増えます。

SaaS プロバイダーとしては、カスタムホスト名ごとに異なるセキュリティ対策を適用したいことがあります。WAF for SaaS では、複数の WAF 構成を作り、異なるカスタムホスト名の集合に適用できます。柔軟性とセキュリティが増え、エンド顧客のドメイン全体を適切に保護できます。


前提条件

WAF for SaaS を使う前に、カスタムホスト名を作成します。まだの場合は Cloudflare for SaaS を始める を確認してください。

API でカスタムホスト名を作成することもできます。

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
Create Custom Hostnamebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"hostname": "<CUSTOM_HOSTNAME>",
		"ssl": {
				"wildcard": false
		}
	}'

1. カスタムホスト名にカスタムメタデータを関連付ける

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

  1. Cloudflare ダッシュボードで確認できる ゾーン ID を探します

  2. API Tokens ページの Global API Key で Authentication Key を確認します。

  3. API で GET を呼び出し、カスタムホスト名 ID を確認します。

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
  • SSL and Certificates Read
List Custom Hostnamesbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  1. カスタムメタデータ を設計します。内容は自由に決められます。次の例では、3 つの値(low、medium、high)を割り当てる想定で、タグ "security_level" を選んでいます。
  1. Cloudflare のメールアドレスと、上で集めた ID を使い、次の形式で API を呼び出します。

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
Edit Custom Hostnamebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"custom_metadata": {
				"customer_id": "12345",
				"security_level": "low"
		}
	}'

これでカスタムホスト名にカスタムメタデータが付き、ID にセキュリティタグが関連付けられます。

2. タグに基づいてセキュリティ製品を起動する

  1. WAF が動作する Ruleset Engine で、カスタムメタデータフィールドを確認します。WAF カスタムルールレート制限ルールTransform Rules など、製品ごとの構成を起動できます。

  2. ダッシュボード または API でルールを作ります。"security_level" が low のときのレート制限ルールの例を、次の API 呼び出しに示します。

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_ratelimit/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"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 ダッシュボードで WAF ページを開きます。

    WAF を開く ↗
  2. 目的に応じて、カスタムルール、レート制限ルール、マネージドルール向けのダッシュボード手順に従います。

  3. ルールが有効になると、該当するタブ(カスタムルール、レート制限、マネージドルール)に表示されます。

役に立ちましたか?