Azure Web Application Firewall は、一般的な悪用や脆弱性から Web アプリケーションを一元的に保護します。 すべての Azure Web アプリケーション ファイアウォール機能はポリシー内に存在します。これは、ゲートウェイ API YAML 構成内のリスナーまたはパスベースのルーティング規則で参照できます。
Application Gateway for Containers の実装
セキュリティ ポリシー
Application Gateway for Containers には、Azure Resource Manager で SecurityPolicy という新しい子リソースが導入されています。
SecurityPolicy リソースは、ALB コントローラーが参照できる Azure Web アプリケーション ファイアウォール ポリシーのスコープを提供します。
Kubernetes カスタム リソース
Application Gateway for Containers には、 WebApplicationFirewallPolicyと呼ばれる新しいカスタム リソースが導入されています。 カスタム リソースは、どのスコープでどの Azure Web アプリケーション ファイアウォール ポリシーを使用するかを定義する役割を担います。
WebApplicationFirewallPolicy リソースは、次の Kubernetes リソースをターゲットにすることができます。
GatewayHTTPRoute
WebApplicationFirewallPolicy リソースでは、さらに細分性を高めるために、次のセクションを名前で参照することもできます。
-
Gateway:Listener
実装例
ポリシーのスコープをゲートウェイ リソースに設定する
次に示すのは、ゲートウェイ リソースのターゲットを示す YAML 構成の例です。これは、特定の Application Gateway for Containers のフロントエンド リソース上のすべてのリスナーに適用されます。
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 プロパティを定義して適切なリスナー (たとえば、contoso.com の listenerA) を選択できます。
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
特定のパスにポリシーをスコープする
同じ Gateway または Gateway -> Listener sectionName の異なるパスに対して異なる WAF ポリシーを使用するには、それぞれ固有のパスを持つ 2 つの 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
制限事項
Application Gateway for Containers に関連付けられている Azure Web Application Firewall ポリシーでは、次の機能はサポートされていません。
- リージョン間、サブスクリプション間ポリシー: WAF ポリシーは、Application Gateway for Containers リソースと同じサブスクリプションとリージョンに存在する必要があります。
- コア ルール セット (CRS) マネージド ルール: Application Gateway for Containers WAF では、既定のルール セット (DRS) マネージド ルール セットのみがサポートされます。
- 従来の Bot Manager ルール セット: Bot Manager ルールセット 0.1 はサポートされていませんが、Bot Manager ルールセット バージョン 1.0 と 1.1 がサポートされています。
- Bot Manager ルールに対する JavaScript チャレンジ アクション: Bot Manager ルールのアクションを JavaScript チャレンジに設定することはできません。
- Bot Manager ルールに対する Captcha チャレンジ アクション: Bot Manager ルールのアクションを Captcha に設定することはできません。
- Microsoft Security Copilot: Security Copilot は、Application Gateway for Containers WAF ではサポートされていません。
- カスタム ブロック応答: WAF ポリシーでのカスタム ブロック応答の設定は、Application Gateway for Containers WAF ではサポートされていません。
- X-Forwarded-For ヘッダー (XFF):Application Gateway for Containers WAF では、カスタム規則の XFF 変数はサポートされていません。
- HTTP DDoS ルールセット: このマネージド ルールセットは、Application Gateway for Containers ではサポートされていません。
Pricing
価格の詳細については、「 Application Gateway for Containers の価格について」を参照してください。