Azure FirewallのHTTPヘッダー挿入を使って、ウェブトラフィックのHTTPヘッダーを追加または修正してください。 ヘッダーをカスタマイズすることで、組織はセキュリティポリシーの適用、認証トークンの組み込み、バックエンドサービスとの統合が可能です。 この機能はセキュリティを向上させ、コンプライアンスを支援し、特にアクセスや識別に特定のヘッダーを必要とするアプリケーションにおいてトラフィック管理を最適化します。 アプリケーションルールごとにHTTPヘッダー挿入を設定しましょう。 HTTPヘッダー挿入で設定したアプリケーションルールとトラフィックが一致すると、Azure Firewallは設定済みのHTTPヘッダーを挿入します。
サポートされているシナリオと制限事項
HTTPヘッダー挿入機能は特定のユースケース向けに設計されており、一定の制約があります。
サポートされているシナリオ
- Premium SKUでは、この機能はHTTPトラフィックおよびTLS検査で復号されるHTTPSトラフィックをサポートしています。
- 標準および基本SKUでは、この機能はHTTPトラフィックをサポートしています。
- この機能はAzure Firewall Policy Draft + Deploymentを使って設定することもできます。
Limitations
次の制限事項に留意してください。
- 特定の予約ヘッダーをアプリケーションルールでカスタムHTTPヘッダーとして挿入することはできません。 以下の表は、カテゴリ別にグループ化された予約ヘッダーを一覧にしています。
- HTTPヘッダーの挿入はルールコレクショングループのルール総数を減らすことができるため、HTTPヘッダー挿入は慎重に使いましょう。 ルールコレクショングループでJSON制限に達したら、新しいルールコレクショングループを作成し、そこにルールを追加してください。
| Category |
予約済みヘッダー |
| 一般と関連 |
host、 connection、 content-length、 transfer-encoding、 upgrade、 via、 te、 trailer |
| 認証とクッキー |
proxy-authorization、proxy-authenticate、authorization、cookie、set-cookie |
| セキュリティ |
content-security-policy、 strict-transport-security、 x-content-type-options、 x-frame-options、 referrer-policy、 x-xss-protection、 public-key-pins、 expect-ct、 x-xsrf-token |
| 転送 |
x-forwarded-for、 x-forwarded-proto、 x-forwarded-host、 x-forwarded-port、 x-forwarded-scheme、 forwarded |
| Other |
metadata |
コンフィギュレーションの手順
以下のセクションでは、HTTPヘッダー挿入の手順を段階的に説明します。
これらのステップは、すでに既存のAzure Firewallポリシー(以下の例でfw-policy)を持っていることを前提としています。 もし持っていなければ、「Azure Firewall Policyをデプロイして設定する」を参照してください。
Note
TLS検査が有効なHTTPSトラフィックにも同じ手順を行ってください。
ヘッダー名は最大100文字まで設定可能です。
ヘッダーの値は最大16K(16,000文字)まで持つことができます。
各アプリケーションルールで許容されるHTTPヘッダーの総最大長(HTTPヘッダーの名前と値の合計)は16KB(16,384バイト)です。
Azureポータルで既存のファイアウォールポリシーにアクセスするか、新しいポリシーを作成してください。
ルールを選択し、次にアプリケーションルールを選択します。
新しいアプリケーションルールを作成したり、既存のルールを編集したりしてください。
ルール設定ペインで HTTPヘッダー挿入 セクションを見つけてください。
必要なヘッダー名と値を指定して追加します。 必要に応じて複数のヘッダーを追加できます。
ルールを保存します。
ヘッダーが正しく設定されているか確認するには、ルールを再開して HTTPヘッダー 挿入セクションに追加したヘッダー名と値が表示されていることを確認します。
az loginコマンドを実行してAzureアカウントにサインインしてください。
az network firewall policyのrule-collection-group createを使ってルールコレクショングループを作成します。
az network firewall policy rule-collection-group create \
--name rcg-c \
--policy-name fw-policy \
--resource-group test-rg \
--priority 10000
az network firewall policy rule-collection-group collection add-filter-collection を使用して、カスタム HTTP ヘッダーを含むアプリケーション ルールを含むルール コレクションを追加します。
az network firewall policy rule-collection-group collection add-filter-collection \
--policy-name "fw-policy" \
--resource-group "test-rg" \
--rcg-name "rcg-c" \
--name "app_collection_1" \
--collection-priority 10003 \
--action Allow \
--rule-name "app_rule_1" \
--rule-type ApplicationRule \
--target-fqdns "*.microsoft.com" "*.azure.com" \
--source-addresses "10.0.0.5" "10.0.0.6" \
--protocols Http=80 \
--description "Allow access to Microsoft and Azure domains with header insertion" \
--http-headers-to-insert "Restrict-Access-To-Tenants=contoso.com,fabrikam.onmicrosoft.com" "Restrict-Access-Context=aaaabbbb-0000-cccc-1111-dddd2222eeee"
az network firewall policyのrule-collection-group showを使って、ルールが作成され、ヘッダーが正しく設定されているか確認します。
az network firewall policy rule-collection-group show \
--policy-name fw-policy \
--resource-group test-rg \
--name rcg-c
このコマンドはルール収集グループ rcg-cの完全な構成を返します。 出力でルール名(例: app_rule_1)を検索し、そのプロパティを確認してください。
New-AzFirewallPolicyApplicationRuleを使って新しいアプリケーションルールを作成します。
$rule = New-AzFirewallPolicyApplicationRule `
-Name "app_rule_1" `
-SourceAddress "10.0.0.5", "10.0.0.6" `
-Protocol "Http:80" `
-TargetFqdn "*.microsoft.com", "*.azure.com"
New-AzFirewallPolicyApplicationRuleCustomHttpHeaderを使ってカスタムHTTPヘッダーを作成し、ルールに追加します。
$header1 = New-AzFirewallPolicyApplicationRuleCustomHttpHeader -HeaderName "Restrict-Access-To-Tenants" -HeaderValue "contoso.com,fabrikam.onmicrosoft.com"
$header2 = New-AzFirewallPolicyApplicationRuleCustomHttpHeader -HeaderName "Restrict-Access-Context" -HeaderValue "aaaabbbb-0000-cccc-1111-dddd2222eeee"
$rule.AddCustomHttpHeaderToInsert($header1)
$rule.AddCustomHttpHeaderToInsert($header2)
New-AzFirewallPolicyFilterRuleCollectionを使って、そのルールを含むアプリケーションルールコレクションを作成します。
$collection = New-AzFirewallPolicyFilterRuleCollection `
-Name "app_collection_1" `
-Priority 10003 `
-Rule @($rule) `
-ActionType "Allow"
New-AzFirewallPolicyRuleCollectionGroupを使って、そのルールコレクションを含むルールコレクショングループを作成します。
New-AzFirewallPolicyRuleCollectionGroup `
-Name "rcg-c" `
-FirewallPolicyName "fw-policy" `
-ResourceGroupName "test-rg" `
-Priority 10000 `
-RuleCollection $collection
Get-AzFirewallPolicyRuleCollectionGroupを使って、ルールが作成され、ヘッダーが正しく設定されているか確認してください。
Get-AzFirewallPolicyRuleCollectionGroup `
-AzureFirewallPolicyName "fw-policy" `
-ResourceGroupName "test-rg" `
-Name "rcg-c"
このコマンドはルール収集グループ rcg-cの完全な構成を返します。 出力でルール名(例: app_rule_1)を検索し、そのプロパティを確認してください。
次のステップ