ネットワーク セキュリティ グループのリソース ログ
ネットワーク セキュリティ グループ (NSG) には、仮想ネットワーク サブネットとネットワーク インターフェイスのどちらか一方または両方へのトラフィックを許可または拒否するルールが含まれています。
NSG に対するログを有効にすると、次の種類のリソース ログ情報を収集できます。
- イベント: MAC アドレスに基づいて、仮想マシンに適用される NSG ルールに関するエントリがログに記録されます。
- ルール カウンター: トラフィックを許可または拒否するために各 NSG ルールが適用された回数に関するエントリが含まれます。 これらのルールの状態は、300 秒ごとに収集されます。
リソース ログは、Azure Resource Manager デプロイ モデルでデプロイされた NSG についてのみ使用できます。 クラシック デプロイ モデルでデプロイした NSG についてはリソース ログを有効にできません。 詳細については、デプロイメント モデルに関する記事を参照してください。
リソース ログは、診断データの収集対象とする "個々の" NSG に対して個別に有効にします。 "アクティビティ" または "操作" ログについては、「Azure プラットフォーム ログの概要」を参照してください。 NSG を通過する IP トラフィックについては、「ネットワーク セキュリティ グループのフロー ログ」を参照してください。
ログの有効化
Azure portal、Azure PowerShell、または Azure CLI を使用して、リソース ログを有効にすることができます。
Azure portal
Azure ポータルにサインインします。
Azure portal の上部にある検索ボックスに、「ネットワーク セキュリティ グループ」と入力します。 検索結果から [ネットワーク セキュリティ グループ] を選択します。
ログを有効にする NSG を選択します。
[監視] で、[診断設定] を選択し、[診断設定を追加する] を選択します。
[診断設定] で、「myNsgDiagnostic」などの名前を入力します。
[ログ] で、"allLogs" を選択するか、ログの個々のカテゴリを選択します。 各カテゴリの詳細については、「ログのカテゴリ」を参照してください。
[宛先の詳細] で、1 つ以上の宛先を選択します。
- Log Analytics ワークスペースに送信する
- ストレージ アカウントへのアーカイブ
- イベント ハブへのストリーム
- パートナー ソリューションへの送信
詳しくは、「ログの保存先」をご覧ください。
[保存] を選択します。
ログを表示して分析します。 詳しくは、「ログの表示と分析」をご覧ください。
Azure PowerShell
注意
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
このセクションのコマンドは、Azure Cloud Shell で、またはコンピューターから PowerShell を実行することで実行できます。 Azure Cloud Shell は無料の対話型シェルです。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
お使いのコンピューターから PowerShell を実行する場合は、Azure PowerShell モジュール、バージョン 1.0.0 以降が必要です。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 ローカルで PowerShell を実行する場合、必要なアクセス許可を持つアカウントで、Connect-AzAccount コマンドレットを実行して Azure にサインインする必要もあります。
リソース ログを有効にするには、既存の NSG の ID が必要です。 既存の NSG がない場合は、New-AzNetworkSecurityGroup コマンドレットを使用して作成します。
Get-AzNetworkSecurityGroup コマンドレットを使用して、リソース ログを有効にするネットワーク セキュリティ グループを取得します。 後で使用するために変数に NSG を格納します。 たとえば、myResourceGroup という名前のリソース グループに存在する myNsg という名前の NSG を取得するには、次のコマンドを入力します。
$Nsg=Get-AzNetworkSecurityGroup `
-Name myNsg `
-ResourceGroupName myResourceGroup
異なる種類の宛先にリソース ログを書き込むことができます。 詳しくは、「ログの保存先」をご覧ください。 この記事では、"Log Analytics ワークスペース" の宛先にログを送信します。 既存のワークスペースがない場合は、New-AzOperationalInsightsWorkspace コマンドレットを使用して作成できます。
Get-AzOperationalInsightsWorkspace コマンドレットを使用して、既存の Log Analytics ワークスペースを取得します。 たとえば、myWorkspaces という名前のリソース グループにある myWorkspace という名前の既存のワークスペースを取得して格納するには、次のコマンドを入力します。
$Oms=Get-AzOperationalInsightsWorkspace `
-ResourceGroupName myWorkspaces `
-Name myWorkspace
有効にすることができるログのカテゴリは 2 つあります。 詳しくは、「ログのカテゴリ」をご覧ください。 New-AzDiagnosticSetting コマンドレットを使用して、NSG のリソース ログを有効にします。 以下の例では、イベントとカウンターの両方のカテゴリのデータを、NSG のワークスペースにログします。 前のコマンドで取得した NSG とワークスペースの ID を使用します。
New-AzDiagnosticSetting `
-Name myDiagnosticSetting `
-ResourceId $Nsg.Id `
-WorkspaceId $Oms.ResourceId
Log Analytics ワークスペース以外の宛先にログを記録する場合は、コマンドで適切なパラメーターを使用します。 詳細については、Azure リソース ログに関するページを参照してください。
設定の詳細については、「New-AzDiagnosticSetting」を参照してください。
ログを表示して分析します。 詳しくは、「ログの表示と分析」をご覧ください。
Azure CLI
このセクションのコマンドは、Azure Cloud Shell で、またはコンピューターから Azure CLI を実行することで実行できます。 Azure Cloud Shell は無料の対話型シェルです。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
コンピューターから CLI を実行する場合は、バージョン 2.0.38 以降が必要です。 コンピューターで az --version
を実行して、インストールされているバージョンを確認してください。 アップグレードする必要がある場合は、「Azure CLI のインストール」を参照してください。 ローカルで CLI を実行する場合、必要なアクセス許可を持つアカウントで az login
を実行して Azure にサインインする必要もあります。
リソース ログを有効にするには、既存の NSG の ID が必要です。 既存の NSG がない場合は、az network nsg create を使用して作成します。
az network nsg show を使用して、リソース ログを有効にするネットワーク セキュリティ グループを取得して格納します。 たとえば、myResourceGroup という名前のリソース グループに存在する myNsg という名前の NSG を取得するには、次のコマンドを入力します。
nsgId=$(az network nsg show \
--name myNsg \
--resource-group myResourceGroup \
--query id \
--output tsv)
異なる種類の宛先にリソース ログを書き込むことができます。 詳しくは、「ログの保存先」をご覧ください。 この記事では、例として "Log Analytics ワークスペース" の宛先にログを送信します。 詳しくは、「ログのカテゴリ」をご覧ください。
az monitor diagnostic-settings create を使用して、NSG に対するリソース ログを有効にします。 次の例では、myWorkspaces というリソース グループ内に存在する myWorkspace という既存のワークスペースに、イベントとカウンターの両方のカテゴリのデータをログします。 前のコマンドを使用して保存した NSG の ID を使用します。
az monitor diagnostic-settings create \
--name myNsgDiagnostics \
--resource $nsgId \
--logs '[ { "category": "NetworkSecurityGroupEvent", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "NetworkSecurityGroupRuleCounter", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
--workspace myWorkspace \
--resource-group myWorkspaces
既存のワークスペースがない場合は、Azure portal または Azure PowerShell を使用して作成します。 2 つのログ カテゴリでログを有効にすることができます。
あるカテゴリまたは他のカテゴリのデータのみをログに記録する場合は、前のコマンドでデータをログに記録しないカテゴリを削除します。 Log Analytics ワークスペース以外の宛先にログを記録する場合は、適切なパラメーターを使用します。 詳細については、Azure リソース ログに関するページを参照してください。
ログを表示して分析します。 詳しくは、「ログの表示と分析」をご覧ください。
ログの保存先
次のオプションに診断データを送信できます。
ログのカテゴリ
次のログ カテゴリの JSON 形式データが書き込まれます: イベントとルール カウンター。
イベント
イベント ログには、MAC アドレスに基づいて、仮想マシンに適用される NSG ルールに関する情報が含まれます。 各イベントについて、次のようなデータがログに記録されます。 次の例では、IP アドレスが 192.168.1.4 で MAC アドレスが 00-0D-3A-92-6A-7C の仮想マシンのデータが記録されます。
{
"time": "[DATE-TIME]",
"systemId": "[ID]",
"category": "NetworkSecurityGroupEvent",
"resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION-ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
"operationName": "NetworkSecurityGroupEvents",
"properties": {
"vnetResourceGuid":"[ID]",
"subnetPrefix":"192.168.1.0/24",
"macAddress":"00-0D-3A-92-6A-7C",
"primaryIPv4Address":"192.168.1.4",
"ruleName":"[SECURITY-RULE-NAME]",
"direction":"[DIRECTION-SPECIFIED-IN-RULE]",
"priority":"[PRIORITY-SPECIFIED-IN-RULE]",
"type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
"conditions":{
"protocols":"[PROTOCOLS-SPECIFIED-IN-RULE]",
"destinationPortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
"sourcePortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
"sourceIP":"[SOURCE-IP-OR-RANGE-SPECIFIED-IN-RULE]",
"destinationIP":"[DESTINATION-IP-OR-RANGE-SPECIFIED-IN-RULE]"
}
}
}
ルール カウンター
ルール カウンター ログには、リソースに適用される各ルールに関する情報が含まれます。 ルールが適用されるたびに、次の例のようなデータが記録されます。 次の例では、IP アドレスが 192.168.1.4 で MAC アドレスが 00-0D-3A-92-6A-7C の仮想マシンのデータが記録されます。
{
"time": "[DATE-TIME]",
"systemId": "[ID]",
"category": "NetworkSecurityGroupRuleCounter",
"resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
"operationName": "NetworkSecurityGroupCounters",
"properties": {
"vnetResourceGuid":"[ID]",
"subnetPrefix":"192.168.1.0/24",
"macAddress":"00-0D-3A-92-6A-7C",
"primaryIPv4Address":"192.168.1.4",
"ruleName":"[SECURITY-RULE-NAME]",
"direction":"[DIRECTION-SPECIFIED-IN-RULE]",
"type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
"matchedConnections":125
}
}
Note
通信の送信元 IP アドレスは記録されません。 NSG の NSG フロー ログを有効にすることができます。このログでは、すべてのルール カウンター情報と、通信を開始した送信元 IP アドレスが記録されます。 NSG フロー ログ データは Azure Storage アカウントに書き込まれます。 Azure Network Watcher の トラフィック分析機能を使って、データを分析することができます。
ログの表示と分析
診断データの送信先に応じて、次のようになります。
Azure Monitor ログ: ネットワーク セキュリティ グループ分析ソリューションを使って、詳細な分析情報を取得できます。 このソリューションは、仮想マシン内のネットワーク インターフェイスのトラフィックを MAC アドレスに従って許可または拒否する NSG ルールの視覚化を提供します。
Azure Storage アカウント: データは PT1H.json ファイルに書き込まれます。 各ログは次のパスで見つかります。
- 次のパスにあるイベント ログ: insights-logs-networksecuritygroupevent/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
- 次のパスにあるルール カウンター ログ: insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
リソース ログのデータを表示する方法については、Azure プラットフォーム ログの概要に関するページを参照してください。
次のステップ
アクティビティ ログの詳細については、「Azure プラットフォーム ログの概要」を参照してください。
どちらの Azure デプロイ モデルで作成された NSG に対しても、アクティビティ ログが既定で有効になります。 NSG で完了した操作を確認するには、アクティビティ ログで次のリソース タイプを含むエントリを探します。
- Microsoft.ClassicNetwork/networkSecurityGroups
- Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
- Microsoft.Network/networkSecurityGroups
- Microsoft.Network/networkSecurityGroups/securityRules
診断情報をログに記録する方法については、「Azure portal を使用して仮想マシンへの送受信ネットワーク トラフィックをログに記録する」を参照してください。