Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Web Application Firewall обеспечивает централизованную защиту веб-приложений от распространенных эксплойтов и уязвимостей. Все функциональные возможности Azure Web Application Firewall осуществляются в рамках политики, на которую можно ссылаться в правилах прослушивателя или маршрутизации на основе пути в конфигурации Gateway API YAML.
Реализация шлюза приложений для контейнеров
Политика безопасности
Шлюз приложений для контейнеров представляет новый дочерний ресурс с именем SecurityPolicy в Azure Resource Manager. Ресурс SecurityPolicy предоставляет область, к которой политики Azure Web Application Firewall могут ссылаться в контроллере балансировки нагрузки ALB.
Кастомный ресурс Kubernetes
Шлюз приложений для контейнеров представляет новый настраиваемый ресурс WebApplicationFirewallPolicy. Настраиваемый ресурс отвечает за определение того, какая политика Azure Web Application Firewall должна использоваться в каком объеме.
Ресурс WebApplicationFirewallPolicy может использовать следующие ресурсы Kubernetes:
GatewayHTTPRoute
Ресурс WebApplicationFirewallPolicy также может ссылаться на следующие разделы по имени для дальнейшей детализации:
-
Gateway:Listener
Примеры реализаций
Применить политику к ресурсу шлюза
Ниже приведен пример конфигурации YAML, в которой показано нацеливание на ресурс шлюза, который будет применяться ко всем прослушивателям заданного интерфейсного ресурса шлюза приложений для контейнеров.
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
name: sample-waf-policy
namespace: test-infra
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: contoso-waf-route
namespace: test-infra
webApplicationFirewall:
id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0
Ограничьте действие политики для конкретного слушателя ресурса шлюза
В ресурсе Gateway могут быть разные доменные имена, установленные различными слушателями (например, contoso.com и fabrikam.com). Если contoso.com является именем узла listenerA, а fabrikam.com именем узла listenerB, вы можете определить свойство sectionNames для выбора правильного прослушивателя (например, listenerA для contoso.com).
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
name: sample-waf-policy
namespace: test-infra
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: contoso-waf-route
namespace: test-infra
sectionNames: ["contoso-listener"]
webApplicationFirewall:
id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0
Сфера применения политики для всех маршрутов и путей
В этом примере показано, как нацелить определенный ресурс HTTPRoute для применения политики к любым правилам маршрутизации и путям в заданном ресурсе HTTPRoute.
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
name: sample-waf-policy
namespace: test-infra
spec:
targetRef:
group: gateway.networking.k8s.io
kind: HTTPRoute
name: contoso-pathA
namespace: test-infra
webApplicationFirewall:
id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0
Ограничить политику на определенный маршрут
Чтобы использовать разные политики WAF для разных путей одного и того же Gateway или шлюза —> имя раздела прослушивателя, можно определить два ресурса HTTPRoute с уникальным путем, каждый из которых ссылается на соответствующую политику WAF.
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
name: sample-waf-policy-A
namespace: test-infra
spec:
targetRef:
group: gateway.networking.k8s.io
kind: HTTPRoute
name: contoso-pathA
namespace: test-infra
webApplicationFirewall:
id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0
---
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
name: sample-waf-policy-B
namespace: test-infra
spec:
targetRef:
group: gateway.networking.k8s.io
kind: HTTPRoute
name: contoso-pathB
namespace: test-infra
webApplicationFirewall:
id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-1
Ограничения
Следующие функции не поддерживаются в политике Azure Web Application Firewall, связанной с шлюзом приложений для контейнеров:
- Политика пересечения регионов и подписок: ваша политика WAF должна находиться в той же подписке и регионе, что и ресурс шлюза приложений на базе контейнеров.
- Управляемые правила набора основных правил (CRS): шлюз приложений для контейнеров WAF поддерживает только набор правил по умолчанию (DRS) 2.1.
- Устаревший набор правил Bot Manager: набор правил Bot Manager 0.1 не поддерживается, но поддерживаются наборы правил Bot Manager версии 1.0 и 1.1.
- Действия с вызовом JavaScript в правилах Bot Manager: вы не можете установить действие правила Bot Manager на JavaScript-вызов.
- Действия проверки Captcha в правилах Bot Manager: вы не можете установить действие Captcha для правила Bot Manager.
- Microsoft Security Copilot: Copilot безопасности не поддерживается в шлюзе приложений для контейнеров WAF.
- Настраиваемый ответ блока: Настройка пользовательского ответа блока в политике WAF не поддерживается в WAF шлюзе приложений для контейнеров.
- Заголовок X-Forwarded-For (XFF): WAF Application Gateway for Containers не поддерживает использование переменной XFF в пользовательских правилах.
- Набор правил DDoS HTTP: этот управляемый набор правил не поддерживается в шлюзе приложений для контейнеров.
Pricing
Сведения о ценах см. в разделе "Общие сведения о ценах на шлюз приложений для контейнеров".