はじめに
業務で使用しているAzure Firewallがある日動かなくなりました。
VMからFirewallにpingを飛ばしても応答が返ってこず、、、。
結局、どういう状態になっているか分からず、対策も打てなかったので、
やむを得ずFirewallを停止→起動することで問題を解消しました。
本記事では、Firewallに何らかの問題が発生し、私のように停止・起動する以外に手を打てない状況になった方々に向けて、
Firewallの停止・起動方法を記載したいと思います。
使用するPCの環境
今回使用するPCの情報を下記に記載いたします。
OS:Windows 11
PowerShellのバージョン:5.1
Azure PowerShellモジュールのバージョン:10.4.1
方法
Azure Firewallの停止・起動はAzure PowerShellで行います。
(Azure Portal上では出来ないんです。。。)
端末のPowerShellに、Azure PowerShellモジュールをインストールしていない場合は、
以下のコマンドを実行してモジュールをインストールします。
Install-Module -Name Az -Repository PSGallery -Force
Azure Firewallを停止
以下のコマンドを実行してFirewallを停止します。
当該Firewallリソースに対してDeallocate()メソッドを実行します。
# Azureへのログイン
Connect-AzAccount
# Firewallを停止
$azfw = Get-AzFirewall -Name "<Azure Firewallのリソース名>" -ResourceGroupName "<Azure Firewallが所属するリソースグループ名>"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
正常に実行されると、以下のような出力結果が表示されます。
対象Firewallの情報(リソースグループ、リソース名、リージョン)が表示されます。
Azure Portal上で対象Firewallを確認すると、下図のように、
停止状態ではパブリックIPやプライベートIPが未割り当ての状態になります。
このとき、プロビジョニング状態がSucceededとなっていることを確認しておきましょう。
Azure Firewallを起動
以下のコマンドを実行してFirewallを起動します。
当該Firewallリソースに対してAllocate()メソッドを実行します。
Allocate()メソッドの引数には以下を指定します。
Firewall配置先Vnet
Firewallに割り当てるパブリックIPリソース(配列で指定)
# Azureへのログイン
Connect-AzAccount
# Firewallを起動
$azfw = Get-AzFirewall -Name "<Azure Firewallのリソース名>" -ResourceGroupName "<Azure Firewallが所属するリソースグループ名>"
$vnet = Get-AzVirtualNetwork -ResourceGroupName "<Firewall配置先VNetが所属するリソースグループ名>" -Name "<Firewall配置先VNetのリソース名>"
$publicip1 = Get-AzPublicIpAddress -Name "<Azure Firewallに割り当てるパブリックIPのリソース名>" -ResourceGroupName "<パブリックIPリソースが所属するリソースグループ名>"
$azfw.Allocate($vnet,@($publicip1))
Set-AzFirewall -AzureFirewall $azfw
Deallocate()メソッド実行時と同様、正常に実行されると
Firewallリソースの情報が出力結果に表示されます。
また、Azure Portalでは、下図のように起動状態ではパブリックIPやプライベートIPが割り当てられた状態になります。
プロビジョニング状態がSucceededとなっていることを確認しましょう。
参考資料
・Azure Firewallの停止・起動方法(中段に記載)
https://learn.microsoft.com/ja-jp/azure/firewall/firewall-faq