Azure Firewall と Web カテゴリの確認
Azure Firewall Premium はカテゴリベースの Web フィルタをサポートしています。ただしこれまでは「FQND がどのカテゴリに属しているかを確認したうえで、ベンダの判定に異議を申し立てる仕組み」がありませんでした。カテゴリベースのフィルタリング機能をサポートするベンダは、当然のようにこの機能を提供しています。
- https://www.fortiguard.com/webfilter
- https://sitereview.bluecoat.com/#/
- https://urlfiltering.paloaltonetworks.com/query/
ですが先日、Azure Firewall でもこの機能がプレビューになりました。Azure Portal 上で FQDN を入力することで、カテゴリの確認と異議申し立てを実施できます。
Upgrade your network protection with Azure Firewall Premium
試しに blog.aimless.jp を調べてみたところ General として判定されたので、Personal sites で異議申し立てしてみました。
![](../../../../images/2021/2021-11-01-001.png)
申請画面
申請すると、申請に対して ID が割り当てられて ポータル上で次のメッセージのとおり ID が表示されます。
You can check the status of your report by searching for this Token ID: 6ca7d825761cfe8192b253b7e0176fb1
FQDN の代わりにこの ID を調べることで、異議申し立ての進捗を確認できます。
![](../../../../images/2021/2021-11-01-002.png)
申請画面
API でカテゴリをチェックする
複数の FQDN のカテゴリをポータルで一つずつ調べるのは手間です。2021年10月31日現在、PowerShell や Azure CLI ではカテゴリを調べられなさそうです。ですが。Azure Portal が providers/Microsoft.Network/azureWebCategories/GetWebCategoryForUrl?api-version=2021-02-01
を叩いているので、この API を利用すれば CLI によるカテゴリのチェックが可能です。サンプルコードは次の通り。
$subID = "<Your subscription Id>"
$fqdns = @(
"www.yahoo.co.jp",
"www.google.co.jp",
"www.jra.go.jp",
"mail.google.com",
"outlook.office.com"
)
$fqdns | ForEach-Object {
$body = @{
"url" = $_
} | ConvertTo-Json
$res = Invoke-AzRest -Method POST -Path "/subscriptions/$subId/providers/Microsoft.Network/azureWebCategories/GetWebCategoryForUrl?api-version=2021-02-01" -Payload $body
$result = $res.Content | ConvertFrom-Json
Write-Output "$_ is $($result.categories[0].group) > $($result.categories[0].name)"
}
www.yahoo.co.jp is BusinessUse > SearchEnginesAndPortals
www.google.co.jp is BusinessUse > SearchEnginesAndPortals
www.jra.go.jp is Liability > Gambling
mail.google.com is BusinessUse > WebBasedEmail
outlook.office.com is BusinessUse > WebBasedEmail
まとめ
Azure Firewall に実装されたカテゴリを確認する機能を API 経由で利用する方法をまとめました。いずれ PowerShell や Azure CLI 経由でこの機能を使るようになると思うので、それまでのつなぎにご利用ください。