はじめに
Azure Firewallを使用してみて
躓いたポイント、気づきづらかったこと等を踏まえて情報をまとめました。
具体的な手順は一切含まず、概念的な説明を中心としています。
これからAzure Firewallを試す方のお役に立てたら嬉しいです。
Azure Firewallとは
概要はこちらでまとめました
使い方
Azure Firewallの適用範囲やUDRについて
Azure Firewallの保護範囲
Azure Firewallはデプロイされたらどこを守ってくれるのでしょうか?
答えは「Subnet単位」になります。
『守る』という表現が適切かどうかは微妙ですが、AzureFirewallSubnetに来た通信を検査するようなイメージになります。
デプロイしただけでは何も守られていません。
ルーティングの設定(UDR)
ではどうしたらよいのか
ルートテーブルの設定例として『0.0.0.0/0⇒Azure Firewall』のようにルートを作成します。この設定により、すべての通信がAzure Firewallを経由するようになります。
例えば「Spoke-1-Subnet」のVMに直接通信しようとしても、UDRに従ってVMに通信が到達する前にAzure Firewallへ通信が転送されます。
AzureFirewallPolicyの設定
Azure Firewallはデプロイすると「Azure Firewall」と「Azure Firewall ポリシー」の2つのリソースが作成されます。※厳密にはpipとかもあるのですが、省略。
Azure Firewallはデフォルトで全ての通信を拒否していますので、
「Azure Firewall ポリシー」にて許可する通信を記載します。
基本的には下記の2つどちらかに許可する通信を記載していきます。
- ネットワーク規則
- アプリケーション規則
費用関係
こちらは費用に関する部分を記載します。
SKUがStandard(標準)の場合、月額約13万円です。
さらにデプロイしてからはVMのように「停止」ができません。
検証時のコスト負担を軽減する方法(その1)
Firewall本体を削除してFirewallPolicyだけ保持しておくことが可能です。
つまり、検証時だけAzure Firewallを立てることができます。
検証目的であれば、使用しない時間は削除して節約しましょう。
FirewallPolicyは新規作成時に選択することが可能です。
Azure Firewallはデプロイ完了までに体感10~20分ほど時間がかかります。
※厳密に計測したわけではありません。
検証時のコスト負担を軽減する方法(その2)
とあるかたに教えていただきました。
サービスを落とさずとも、PowerShellから停止可能です。
パラメータをご自身のリソース名に置き換えて使用してみてください!
◆ログイン
Connect-AzAccount
◆停止
# Stop an existing firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
◆起動(管理NIC有効でない場合)
# Start the firewall
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$vnet = Get-AzVirtualNetwork -ResourceGroupName "RG Name" -Name "VNet Name"
$publicip1 = Get-AzPublicIpAddress -Name "Public IP1 Name" -ResourceGroupName "RG Name"
$azfw.Allocate($vnet,@($publicip1))
Set-AzFirewall -AzureFirewall $azfw
◆確認方法
- Azure Firewallのリソース画面:IPが消えていたら停止
- Azure Firewallのリソース画面:IPが見えていたら起動
- プロビジョニング状態:Succeededになっていることを確認※
※更新中はUpdatingと表示される
公式ドキュメントはこちら
⇒「Azure Firewallの停止と起動の方法を教えてください」という欄に記載があります
こちらも起動に体感10~20分ほど時間がかかります。
※厳密に計測したわけではありません。
可用性の選択による費用変動
結論としては、SKUの選択以外での費用変動はありません。
Azure Firewallの可用性ゾーンを選択する画面で「課金額変わるのか?」と思ってたどり着いた記事をご紹介
記事時点ではAZ間の課金開始前だったようですので、AZ間課金がどうなるかを見てみましたが無償のようです。↓
- Azure Firewallは可用性ゾーンの選択で費用が変動しない
- 稼働中のマシンの数は変わっても料金は固定
その他分かりづらかった点
DNS設定
DNSの設定をしたかった時のことです。
Azure Firewall の [設定] で、 [DNS 設定] を選択します。
こう記載されていたのでAzure Firewall側で設定するものだと思い込んでまあまあ探しました。
詳細を確認すると、以下の注意書きが記載されていました。
注意
Azure Firewall Manager を使用して管理される Azure Firewall インスタンスの場合、DNS 設定は関連する Azure Firewall ポリシー内に構成されます。
DNS設定画面がない場合はAzure Firewallを作成する際 「Firewall Manager NIC 」を有効にしていた場合上記に該当します。
FirewallPolicy側の設定画面を探すとDNS設定が可能です。
DNS設定が見当たらない場合はFirewallPolicyにあります。
少し踏み込んだ話
Azure Firewallを使用して検証していることがあり、
UDRの設定、pip通信の制御についてもう少し詳しく整理した記事後日投稿予定です。
参考文献
↓公式デプロイ方法です。
↓デプロイ手順について参考にしたブログです。
↓ARMテンプレートを使った節約方法が紹介されているブログです。