ネットワーク セキュリティ グループのリソース ログResource logging for a network security group

ネットワーク セキュリティ グループ (NSG) には、仮想ネットワーク サブネットとネットワーク インターフェイスのどちらか一方または両方へのトラフィックを許可または拒否するルールが含まれています。A network security group (NSG) includes rules that allow or deny traffic to a virtual network subnet, network interface, or both.

NSG に対するログを有効にすると、次の種類のリソース ログ情報を収集できます。When you enable logging for an NSG, you can gather the following types of resource log information:

  • イベント: MAC アドレスに基づいて、VM に適用される NSG ルールに関するエントリがログに記録されます。Event: Entries are logged for which NSG rules are applied to VMs, based on MAC address.
  • ルール カウンター: トラフィックを拒否または許可するために各 NSG ルールが適用された回数に関するエントリが含まれます。Rule counter: Contains entries for how many times each NSG rule is applied to deny or allow traffic. これらのルールの状態は、300 秒ごとに収集されます。The status for these rules is collected every 300 seconds.

リソース ログは、Azure Resource Manager デプロイ モデルでデプロイされた NSG についてのみ使用できます。Resource logs are only available for NSGs deployed through the Azure Resource Manager deployment model. クラシック デプロイ モデルでデプロイされた NSG についてはリソース ログを有効にできません。You cannot enable resource logging for NSGs deployed through the classic deployment model. 2 つのモデルについて理解を深めるには、Azure デプロイ モデルの理解に関する記事をご覧ください。For a better understanding of the two models, see Understanding Azure deployment models.

リソース ログは、診断データの収集対象とする "個々の" NSG に対して個別に有効にします。Resource logging is enabled separately for each NSG you want to collect diagnostic data for. アクティビティ (操作) ログに関心がある場合は、Azure の アクティビティ ログに関するページをご覧ください。If you're interested in activity (operational) logs instead, see Azure activity logging.

ログの有効化Enable logging

Azure portalPowerShell、または Azure CLI を使用して、リソース ログを有効にすることができます。You can use the Azure Portal, PowerShell, or the Azure CLI to enable resource logging.

Azure portalAzure Portal

  1. ポータルにサインインします。Sign in to the portal.

  2. [すべてのサービス] を選び、「ネットワーク セキュリティ グループ」と入力します。Select All services, then type network security groups. 検索結果に [ネットワーク セキュリティ グループ] が表示されたら、それを選びます。When Network security groups appear in the search results, select it.

  3. ログを有効にする NSG を選択します。Select the NSG you want to enable logging for.

  4. 次の図に示すように、 [監視][診断ログ] を選び、 [診断をオンにする] を選びます。Under MONITORING, select Diagnostics logs, and then select Turn on diagnostics, as shown in the following picture:

    診断の有効化

  5. [診断設定] で、次の情報を入力するか選んだ後、 [保存] を選びます。Under Diagnostics settings, enter, or select the following information, and then select Save:

    設定Setting Value
    名前Name 任意の名前です。A name of your choosing. 例: myNsgDiagnosticsFor example: myNsgDiagnostics
    ストレージ アカウントへのアーカイブイベント ハブへのストリームLog Analytics への送信Archive to a storage account, Stream to an event hub, and Send to Log Analytics 必要なだけいくつでも保存先を選択できます。You can select as many destinations as you choose. それぞれについて詳しくは、「ログの保存先」をご覧ください。To learn more about each, see Log destinations.
    LOGLOG いずれか一方または両方のログ カテゴリを選びます。Select either, or both log categories. 各カテゴリでログに記録されるデータについて詳しくは、「ログのカテゴリ」をご覧ください。To learn more about the data logged for each category, see Log categories.
  6. ログを表示して分析します。View and analyze logs. 詳しくは、「ログの表示と分析」をご覧ください。For more information, see View and analyze logs.

PowerShellPowerShell

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。This article has been updated to use the Azure Az PowerShell module. Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。The Az PowerShell module is the recommended PowerShell module for interacting with Azure. Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。To get started with the Az PowerShell module, see Install Azure PowerShell. Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

以下のコマンドは、Azure Cloud Shell で、またはコンピューターから PowerShell を実行することで実行できます。You can run the commands that follow in the Azure Cloud Shell, or by running PowerShell from your computer. Azure Cloud Shell は無料の対話型シェルです。The Azure Cloud Shell is a free interactive shell. 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。It has common Azure tools preinstalled and configured to use with your account. お使いのコンピューターから PowerShell を実行する場合は、Azure PowerShell モジュール、バージョン 1.0.0 以降が必要です。If you run PowerShell from your computer, you need the Azure PowerShell module, version 1.0.0 or later. コンピューターで Get-Module -ListAvailable Az を実行して、インストールされているバージョンを確認してください。Run Get-Module -ListAvailable Az on your computer, to find the installed version. アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。If you need to upgrade, see Install Azure PowerShell module. PowerShell をローカルで実行している場合、必要なアクセス許可を持つアカウントで Connect-AzAccount を実行して Azure にサインインする必要もあります。If you are running PowerShell locally, you also need to run Connect-AzAccount to sign in to Azure with an account that has the necessary permissions.

リソース ログを有効にするには、既存の NSG の ID が必要です。To enable resource logging, you need the Id of an existing NSG. 既存の NSG がない場合は、New-AzNetworkSecurityGroup を実行して作成できます。If you don't have an existing NSG, you can create one with New-AzNetworkSecurityGroup.

Get-AzNetworkSecurityGroup を使用して、リソース ログを有効にするネットワーク セキュリティ グループを取得します。Retrieve the network security group that you want to enable resource logging for with Get-AzNetworkSecurityGroup. たとえば、myResourceGroup という名前のリソース グループに存在する myNsg という名前の NSG を取得するには、次のコマンドを入力します。For example, to retrieve an NSG named myNsg that exists in a resource group named myResourceGroup, enter the following command:

$Nsg=Get-AzNetworkSecurityGroup `
  -Name myNsg `
  -ResourceGroupName myResourceGroup

3 種類の保存先にリソース ログを書き込むことができます。You can write resource logs to three destination types. 詳しくは、「ログの保存先」をご覧ください。For more information, see Log destinations. この記事では、例として Log Analytics の保存先にログを送信します。In this article, logs are sent to the Log Analytics destination, as an example. Get-AzOperationalInsightsWorkspace を使用して、既存の Log Analytics ワークスペースを取得します。Retrieve an existing Log Analytics workspace with Get-AzOperationalInsightsWorkspace. たとえば、myWorkspaces という名前のリソース グループに存在する myWorkspace という名前の既存のワークスペースを取得するには、次のコマンドを入力します。For example, to retrieve an existing workspace named myWorkspace in a resource group named myWorkspaces, enter the following command:

$Oms=Get-AzOperationalInsightsWorkspace `
  -ResourceGroupName myWorkspaces `
  -Name myWorkspace

既存のワークスペースがない場合は、New-AzOperationalInsightsWorkspace を使用して作成できます。If you don't have an existing workspace, you can create one with New-AzOperationalInsightsWorkspace.

2 つのカテゴリのログを有効にすることができます。There are two categories of logging you can enable logs for. 詳しくは、「ログのカテゴリ」をご覧ください。For more information, see Log categories. Set-AzDiagnosticSetting を使用して、NSG に対するリソース ログを有効にします。Enable resource logging for the NSG with Set-AzDiagnosticSetting. 次の例では、NSG の ID と前に取得したワークスペース を使って、NSG のイベントとカウンター カテゴリ データの両方をワークスペースに記録します。The following example logs both event and counter category data to the workspace for an NSG, using the IDs for the NSG and workspace you retrieved previously:

Set-AzDiagnosticSetting `
  -ResourceId $Nsg.Id `
  -WorkspaceId $Oms.ResourceId `
  -Enabled $true

両方ではなくどちらか一方のカテゴリのデータだけを記録したい場合は、前のコマンドに -Categories オプションを追加し、続けて NetworkSecurityGroupEvent または NetworkSecurityGroupRuleCounter を指定します。If you only want to log data for one category or the other, rather than both, add the -Categories option to the previous command, followed by NetworkSecurityGroupEvent or NetworkSecurityGroupRuleCounter. Log Analytics ワークスペース以外の保存先にログを記録したい場合は、Azure ストレージ アカウントまたは Event Hub の適切なパラメーターを使います。If you want to log to a different destination than a Log Analytics workspace, use the appropriate parameters for an Azure Storage account or Event Hub.

ログを表示して分析します。View and analyze logs. 詳しくは、「ログの表示と分析」をご覧ください。For more information, see View and analyze logs.

Azure CLIAzure CLI

以下のコマンドは、Azure Cloud Shell で、またはコンピューターから Azure CLI を実行することで実行できます。You can run the commands that follow in the Azure Cloud Shell, or by running the Azure CLI from your computer. Azure Cloud Shell は無料の対話型シェルです。The Azure Cloud Shell is a free interactive shell. 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。It has common Azure tools preinstalled and configured to use with your account. コンピューターから CLI を実行する場合は、バージョン 2.0.38 以降が必要です。If you run the CLI from your computer, you need version 2.0.38 or later. コンピューターで az --version を実行して、インストールされているバージョンを確認してください。Run az --version on your computer, to find the installed version. アップグレードする必要がある場合は、「Azure CLI のインストール」を参照してください。If you need to upgrade, see Install Azure CLI. CLI をローカルで実行している場合、必要なアクセス許可を持つアカウントで az login を実行して Azure にサインインする必要もあります。If you are running the CLI locally, you also need to run az login to sign in to Azure with an account that has the necessary permissions.

リソース ログを有効にするには、既存の NSG の ID が必要です。To enable resource logging, you need the Id of an existing NSG. 既存の NSG がない場合は、az network nsg create を使用して作成できます。If you don't have an existing NSG, you can create one with az network nsg create.

az network nsg show を使用して、リソース ログを有効にするネットワーク セキュリティ グループを取得します。Retrieve the network security group that you want to enable resource logging for with az network nsg show. たとえば、myResourceGroup という名前のリソース グループに存在する myNsg という名前の NSG を取得するには、次のコマンドを入力します。For example, to retrieve an NSG named myNsg that exists in a resource group named myResourceGroup, enter the following command:

nsgId=$(az network nsg show \
  --name myNsg \
  --resource-group myResourceGroup \
  --query id \
  --output tsv)

3 種類の保存先にリソース ログを書き込むことができます。You can write resource logs to three destination types. 詳しくは、「ログの保存先」をご覧ください。For more information, see Log destinations. この記事では、例として Log Analytics の保存先にログを送信します。In this article, logs are sent to the Log Analytics destination, as an example. 詳しくは、「ログのカテゴリ」をご覧ください。For more information, see Log categories.

az monitor diagnostic-settings create を使用して、NSG に対するリソース ログを有効にします。Enable resource logging for the NSG with az monitor diagnostic-settings create. 次の例では、myWorkspaces というリソース グループ内に存在する myWorkspace という既存のワークスペースに対するイベントとカウンター カテゴリ データの両方と、以前に取得した NSG の ID をログに記録します。The following example logs both event and counter category data to an existing workspace named myWorkspace, which exists in a resource group named myWorkspaces, and the ID of the NSG you retrieved previously:

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 または PowerShell を使って作成できます。If you don't have an existing workspace, you can create one using the Azure portal or PowerShell. 2 つのカテゴリのログを有効にすることができます。There are two categories of logging you can enable logs for.

あるカテゴリまたは他のカテゴリのデータのみをログに記録する場合は、前のコマンドでデータをログに記録しないカテゴリを削除します。If you only want to log data for one category or the other, remove the category you don't want to log data for in the previous command. Log Analytics ワークスペース以外の保存先にログを記録したい場合は、Azure ストレージ アカウントまたは Event Hub の適切なパラメーターを使います。If you want to log to a different destination than a Log Analytics workspace, use the appropriate parameters for an Azure Storage account or Event Hub.

ログを表示して分析します。View and analyze logs. 詳しくは、「ログの表示と分析」をご覧ください。For more information, see View and analyze logs.

ログの保存先Log destinations

診断データは次のようにすることができます。Diagnostics data can be:

ログのカテゴリLog categories

次のログ カテゴリの JSON 形式データが書き込まれます。JSON-formatted data is written for the following log categories:

EventEvent

イベント ログには、MAC アドレスに基づいて、VM に適用される NSG ルールに関する情報が含まれます。The event log contains information about which NSG rules are applied to VMs, based on MAC address. 各イベントについて、次のようなデータがログに記録されます。The following data is logged for each event. 次の例では、IP アドレスが 192.168.1.4 で MAC アドレスが 00-0D-3A-92-6A-7C の仮想マシンのデータが記録されます。In the following example, the data is logged for a virtual machine with the IP address 192.168.1.4 and a MAC address of 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]"
            }
        }
}

ルール カウンターRule counter

ルール カウンター ログには、リソースに適用される各ルールに関する情報が含まれます。The rule counter log contains information about each rule applied to resources. ルールが適用されるたびに、次の例のようなデータが記録されます。The following example data is logged each time a rule is applied. 次の例では、IP アドレスが 192.168.1.4 で MAC アドレスが 00-0D-3A-92-6A-7C の仮想マシンのデータが記録されます。In the following example, the data is logged for a virtual machine with the IP address 192.168.1.4 and a MAC address of 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
        }
}

注意

通信の送信元 IP アドレスは記録されません。The source IP address for the communication is not logged. ただし、NSG の NSG フロー ログを有効にすることができます。このログでは、すべてのルール カウンター情報だけでなく、通信を開始した送信元 IP アドレスも記録されます。You can enable NSG flow logging for an NSG however, which logs all of the rule counter information, as well as the source IP address that initiated the communication. NSG フロー ログ データは Azure Storage アカウントに書き込まれます。NSG flow log data is written to an Azure Storage account. Azure Network Watcher の トラフィック分析機能を使って、データを分析することができます。You can analyze the data with the traffic analytics capability of Azure Network Watcher.

ログの表示と分析View and analyze logs

リソース ログのデータを表示する方法については、Azure プラットフォーム ログの概要に関するページを参照してください。To learn how to view resource log data, see Azure platform logs overview. 診断データの送信先に応じて、次のようになります。If you send diagnostics data to:

  • Azure Monitor ログ: ネットワーク セキュリティ グループ分析ソリューションを使って、詳細な分析情報を取得できます。Azure Monitor logs: You can use the network security group analytics solution for enhanced insights. このソリューションは、仮想マシン内のネットワーク インターフェイスのトラフィックを MAC アドレスに従って許可または拒否する NSG ルールの視覚化を提供します。The solution provides visualizations for NSG rules that allow or deny traffic, per MAC address, of the network interface in a virtual machine.
  • Microsoft Azure Storage アカウント:データは PT1H.json ファイルに書き込まれます。Azure Storage account: Data is written to a PT1H.json file. 各ログは次のパスで見つかります。You can find the:
    • イベント ログ: 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]Event log in the following path: 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]Rule counter log in the following path: 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]

次のステップNext steps

  • アクティビティ ログの詳細について説明します。Learn more about Activity logging. どちらの Azure デプロイ モデルで作成された NSG に対しても、アクティビティ ログが既定で有効になります。Activity logging is enabled by default for NSGs created through either Azure deployment model. NSG で完了した操作を確認するには、アクティビティ ログで次のリソース タイプを含むエントリを探します。To determine which operations were completed on NSGs in the activity log, look for entries that contain the following resource types:
    • Microsoft.ClassicNetwork/networkSecurityGroupsMicrosoft.ClassicNetwork/networkSecurityGroups
    • Microsoft.ClassicNetwork/networkSecurityGroups/securityRulesMicrosoft.ClassicNetwork/networkSecurityGroups/securityRules
    • Microsoft.Network/networkSecurityGroupsMicrosoft.Network/networkSecurityGroups
    • Microsoft.Network/networkSecurityGroups/securityRulesMicrosoft.Network/networkSecurityGroups/securityRules
  • 診断情報に各フローの送信元 IP アドレスを含める方法については、NSG フロー ログに関するページをご覧ください。To learn how to log diagnostic information, to include the source IP address for each flow, see NSG flow logging.