← Cloudflare for Platforms / cloudflare-for-platforms / cloudflare-for-saas / security
WAF for SaaS
Web Application Firewall (WAF) позволяет создавать дополнительные меры безопасности средствами Cloudflare. Как поставщик SaaS вы можете привязывать к своим пользовательским именам хоста собственные правила, правила ограничения частоты запросов и управляемые правила. Это даёт больше контроля для защиты доменов от вредоносного трафика.
Как поставщик SaaS вы можете захотеть применять разные меры безопасности к разным пользовательским именам хоста. WAF for SaaS позволяет создавать несколько конфигураций WAF и применять их к разным наборам пользовательских имён хоста. Такая дополнительная гибкость и безопасность обеспечивают оптимальную защиту для всех доменов ваших конечных клиентов.
Предварительные требования
Прежде чем использовать WAF for SaaS, нужно создать пользовательское имя хоста. См. Начало работы с Cloudflare for SaaS если вы ещё этого не сделали.
Вы также можете создать пользовательское имя хоста через API:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates Write
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.
-
Найдите ID своей зоны, доступный в дашборде Cloudflare.
-
Найдите свой Authentication Key на API-токены ↗ странице в разделе Global API Key.
-
Найдите ID своего пользовательского имени хоста, выполнив
GETвызов в API:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates WriteSSL and Certificates Read
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"- Спланируйте свой пользовательские метаданные. Всё это полностью настраивается. В примере ниже мы выбрали тег
"security_level"которому мы ожидаем присвоить одно из трёх значений (low, medium и high).
- Выполните вызов API в приведённом ниже формате, используя свой адрес электронной почты Cloudflare и ID, полученные выше:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates Write
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. Запустите продукты безопасности на основе тегов
-
Найдите поле пользовательских метаданных в Ruleset Engine, где выполняется WAF. С его помощью можно запускать разные конфигурации таких продуктов, как Пользовательские правила WAF, правила ограничения частоты запросов, а также Transform Rules.
-
Создайте правила либо через панель управления или через API. Пример правила ограничения частоты запросов, соответствующего
"security_level"низкий, показано ниже в виде вызова API.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
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\""
}
]
}'Создание правил через дашборд:
-
На панели управления Cloudflare перейдите к разделу WAF страницу.
Перейдите в WAF ↗ -
Следуйте инструкциям в дашборде для собственных правил, правил ограничения частоты запросов или управляемых правил, в зависимости от вашей цели по безопасности.
-
Как только правило станет активным, вы увидите его на соответствующей вкладке (custom rules, rate limiting или managed rules).