5月にこの記事を書いた時には、AzureのプレビューポータルでAzureFirewallのページに「メンテナンス」という項目が出てきていた状態で、設定してみてもデプロイは失敗しましたが、ついにメンテナンスの時間指定ができるようになった(GAされた)みたいです。
改めて、AzureFirewallでのメンテナンスの時間指定を試してみました。
結果、(GA直後だからかもですが)GUIではエラーとなりCLIでは問題なく設定できました。
CLIで設定することをお勧めします!
1.AzureFirewallのメンテナンスの時間を指定する(GUI)
1.AzureFirewallのページに移動し、設定から[メンテナンス]を選択し、[+Add a configration]をクリックします。
![AzureFirewallのページに移動し、設定から[メンテナンス]を選択し、[+Add a configration]をクリック](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-031.png)
2.[Configure maintenance control] というポップアップが出てくるので「Create new」をクリックし、名前を入力して、「Edit schedule」をクリックします。
![[Configure maintenance control] というポップアップが出てくるので「Create new」をクリックし、名前を入力して、「Edit schedule」をクリック](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-032.png)
3.[スケジュールの追加または変更] という画面になるので、スケジュールを登録していきます。
今回は以下のキャプチャように設定を入れてみました。
![[スケジュールの追加または変更] という画面になるので、スケジュールを登録する](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-033.png)
公式ドキュメントにも詳細の説明はないですが、上記の設定である場合は、以下の設定になる理解です。
- 8/1 00:00(JST) からスケジュールを開始する
- メンテナンス可能期間は5時間とする(つまり00:00~05:00に実行される)
- 終了日は設定しない
- 次以降の3回のメンテナンスは8/1と8/2と8/3を予定している
毎日メンテナンスがスケジュールされているのと、メンテナンスの時間の幅が最小5時間なのが少し解せないですが、メンテナンスの時間帯を深夜帯にできるメリットはありそうです。
4.[スケジュールの追加または変更] 画面で「保存」をクリックし、[Configure maintenance control] の画面に戻ったら「OK」をクリックして構成を作成し、「Enable」をクリックして作成を完了させます。
その後、メンテナンスの画面に作成した構成が出てくれば完了です。
が、私はエラーが出て作成できませんでした。
エラーが出た!(Assignment failed)→GUIで設定できない!
上記の手順で作成すると、「Assignment failed」という通知が来ており、エラーとなりました。
ただ、エラー内容を見ると「Assignment failed」の前に「Configuration deployment succeeded」が表示されているので構成自体は作成完了していますが、AFWへの紐づけが失敗したように見えます。

そこで、再度 [+Add a configration] をクリックして、作成された構成を選択しようとしますが、選択肢に出てきません。
![再度 [+Add a configration] をクリックして、作成された構成を選択しようとしますが、選択肢に出てこない](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-035.png)
やはり、構成自体が作成されなかったことになっているようですので再度同じ手順で実行しましたが、再度実施してもエラーとなりました。。

これ以上はよくわからないので、GUIでは設定できないものとして、一旦あきらめてCLIで構成します。
参考:「開始日」と「メンテナンス期間」と「終了日」にバリデーションがある
「開始日」と「メンテナンス期間」と「終了日」にバリデーションがありました。

「開始日」は過去日は設定できません。
「メンテナンス期間」は5~24の間の数字しか入れられません。つまり最小の指定可能期間は5時間です。
「終了日」は「開始日」から1分以上後ろの値でないと入力できません。

2.AzureFirewallのメンテナンスの時間を指定する(CLI)
以下のコマンドでGUIで設定した内容と同じ内容を設定していきます。
今回はAzureCLIを利用してPowershellで設定しました。
# リソースプロバイダーの登録
az provider register --namespace Microsoft.Maintenance
# 登録の状況確認
$status = az provider show -n Microsoft.Maintenance | ConvertFrom-Json
$status.registrationState
## 「Registered」となったら次のコマンドを実行。「Registering」の場合は待つ。
# パラメータの指定(構成作成用)
$location = "japaneast"
$rg_name = "RG-Test-AFW"
$config_name = "test-configration-02"
# 構成の作成
az maintenance configuration create `
--location $location `
--maintenance-scope "Resource" `
--maintenance-window-duration "05:00" `
--maintenance-window-start-date-time "2025-08-01 00:00" `
--maintenance-window-recur-every "Day" `
--maintenance-window-time-zone "Tokyo Standard Time" `
--namespace "Microsoft.Maintenance" `
--visibility "Custom" `
--resource-group "$rg_name" `
--resource-name "$config_name" `
--extension-properties maintenanceSubScope=NetworkSecurity
# パラメータの指定(AFW割り当て用)
$config_info = az maintenance configuration show --resource-name $config_name -g $rg_name | ConvertFrom-Json
$config_resource_id = $config_info.id
$assignment_name = "afw-01"
$fw_name = "afw-test"
# AFWへの構成の割り当て
az maintenance assignment create `
--maintenance-configuration-id $config_resource_id `
--name $assignment_name `
--provider-name "Microsoft.Network" `
--resource-group $rg_name `
--resource-name $fw_name `
--resource-type "azureFirewalls"
2-1.作成後の確認
作成後に確認してみますが、コマンドで「az network firewall show」や「az maintenance configuration show」で確認してもAFWにメンテナンス構成が割り当てされていることを確認することはできませんでした。
# AFWの構成情報確認
az network firewall show -n $fw_name -g $rg_name
# メンテナンス構成の構成情報確認
az maintenance configuration show --resource-name $config_name -g $rg_name
なのでAzureポータルの画面でも確認してみます。

設定されていることが確認できました。
CLIでは問題なく設定できるようです!
参考:タイムゾーンの確認方法
以下のコマンドで一覧を出すことができます。
# すべてのタイムゾーンを表示する
Get-TimeZone -ListAvailable
# 特定の文字が入っているタイムゾーンを表示する(今回は東京/大阪/札幌)
Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*Tokyo*"}
[参考] Microsoftの公式ドキュメント
AzureFirewallのメンテナンス時間指定に関するMicrosoft公式ドキュメントは以下です。

[参考] プレビューポータルでの設定(2025年5月に試した時)
参考として5月にプレビューポータルで試した時の記事も残しておきます。
プレビューポータルは https://preview.portal.azure.com/ からログインすることで利用可能なプレビュー機能を利用できるAzureポータルです。
[参考] AzureFirewallのメンテナンスの時間を指定する
・AzureFirewallの画面から「メンテナンス」を選択し、[Add a configuration] をクリックします。
![AzureFireWallの画面から「メンテナンス」を選択し、[Add a configuration] をクリック](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-001-800x398.png)
・[create new] をクリックします。
![[create new] をクリック](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-002-800x482.png)
・コンフィグ名を入力し、[Edit Schedule] をクリックします。
![コンフィグ名を入力し、[Edit Schedule] をクリック](https://bonjiri-blog.com/wp-content/uploads/specify-azurefw-maintenance-time-003.png)
・スケジュール設定画面で開始日を設定します。
それぞれの設定値の意味があまりわかりませんが、とりあえず開始日に今日の日付を入れて「保存」を押します。

先ほどの画面に戻るので「OK」をクリックしたらデプロイは完了です。
デプロイは失敗。。
結果の通知がすぐに来てデプロイが失敗しました。

エラーの詳細もないのでよくわかりませんし、設定値自体が少なく設定値に誤りがあったということもないと思いますので、今時点(2025年5月時点)では設定ができないのだと思います。