ネットワークセキュリティグループのルール変更のアラート機能について

khiraha

Microsoft Azure のアクティビティ ログ アラートの構成では、お客様が行ったアクティビティ(作業)に従って、アラートを上げることが可能です。しかし、ネットワークセキュリティグループ (NSG) のルール変更アラートについては、現状ポータル側で構成ができないものとなっているため、本トピックでは、ルール変更アラートの設定方法についてお知らせします。

NSG のアクテビティティ ログ アラートの構成では、NSG内部のルールの変更については、アラートが飛びません。問題としては以下の通りです。

問題

ポータルのアクティビティ ログ アラートの構成で NSG (リソースタイプ名:Microsoft.Network/networkSecurityGroups) の構成をしても、ルール (送信規則や受信規則) の変更をしても、アラートが設定した通知先に通知されない。

 


原因

ルールについては、別のリソースタイプの定義 (リソースタイプ名:Microsoft.Network/networkSecurityGroups/securityRules) であり、これが完全に一致しない場合は、アラートの機能としてアラートとして挙がらないため。もし、ルールではなく、NSG 自体の構成をした場合には、リソースタイプ名:Microsoft.Network/networkSecurityGroups のイベントが発生するため、アラートは発生します。

 


対応

現状ポータルからは、リソースタイプ名:Microsoft.Network/networkSecurityGroups/securityRules のアラート設定が対応していないため、ご利用いただく際には、PowerShellをご利用いただく必要があります。以下は簡単なサンプルです。

サンプル(新規にアクショングループを作成する場合):

$subscriptionId = "<サブスクリプションID>"

$scope = "/subscriptions/<サブスクリプションID>"

$emailReceiverName = "<メール受信の名前>"

$emailAddress = "<メールアドレス>"

$actionGroupName = "<アクショングループ名>"

$actionGroupNameShort = "<アクショングループ名(短い名前)>"

$activityAlertName = "<Activity Alert 名>"

Login-AzureRmAccount -Subscription $subscriptionId

$email_receiver = New-AzureRmActionGroupReceiver -Name $emailReceiverName -EmailReceiver -EmailAddress $emailAddress

$action = Set-AzureRmActionGroup -ResourceGroupName Default-ActivityLogAlerts -Name $actionGroupName -ShortName $actionGroupNameShort -Receiver $email_receiver

$AGAlertObject = New-Object Microsoft.Azure.Management.Monitor.Management.Models.ActivityLogAlertActionGroup

$AGAlertObject.ActionGroupId = $action.Id

$condition1 = New-AzureRmActivityLogAlertCondition -Field "category" -Equal "Administrative"

$condition2 = New-AzureRmActivityLogAlertCondition -Field "resourceType" -Equal "Microsoft.Network/networkSecurityGroups/securityRules"

$condition3 = New-AzureRmActivityLogAlertCondition -Field "status" -Equal "Accepted"

Set-AzureRmActivityLogAlert -ResourceGroupName Default-ActivityLogAlerts -Name $activityAlertName -Scope $scope -Location Global -Action $AGAlertObject -Condition $condition1,$condition2,$condition3

もし、上記は新規にアクショングループを作る方法ですが、もし既存のものを使いたい場合には、$email_receiver ... 以下の3行を以下に切り替えることで、既存のアクショングループを使うことが可能です。

$action = Get-AzureRmActionGroup -ResourceGroupName Default-ActivityLogAlerts -Name "<アクショングループ名>"

$AGAlertObject = New-Object Microsoft.Azure.Management.Monitor.Management.Models.ActivityLogAlertActionGroup

$AGAlertObject.ActionGroupId = $action.Id

以上ご参考になれば幸いです。

 


--

Microsoft Azure テクニカルサポートチーム