ネットワークセキュリティグループのルール変更のアラート機能について
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 テクニカルサポートチーム