PowerShellでAzure Firewallのログを集約しTraffic Analyticsで可視化する方法

Azureのネットワークセキュリティを強化するためには、Azure Firewallのログを活用してトラフィックを詳細に把握することが重要です。本記事では、PowerShellを使用してAzure Firewallのログを収集し、それをTraffic Analyticsで可視化する方法を解説します。これにより、ネットワークトラフィックの異常を迅速に検出し、運用効率を向上させることができます。初心者でも実践できる具体的な手順と自動化のヒントも紹介しますので、ぜひ参考にしてください。

目次

Azure Firewallのログ収集の重要性


Azure Firewallは、クラウド環境で高度なネットワーク保護を提供する重要なサービスです。そのログは、ネットワークトラフィックの詳細な記録を提供し、セキュリティ管理や運用の最適化に役立ちます。

Azure Firewallログの特徴


Azure Firewallログは、以下のような重要な情報を含んでいます。

  • トラフィックフローの記録:受信・送信トラフィックの詳細な情報。
  • 脅威の検出:不審なアクセスやセキュリティイベントの特定。
  • 規則適用の監視:Firewallポリシーが適切に動作しているか確認可能。

ログ収集の利点


ログを収集し、分析することで得られるメリットは以下の通りです。

  • 異常検知:不審なトラフィックや潜在的な脅威を早期に発見可能。
  • コンプライアンス遵守:規制要件に基づいたログの保存や報告が容易。
  • 運用の効率化:トラフィックデータに基づいた問題解決の迅速化。

Azure Firewallログを適切に管理することで、ネットワークのセキュリティと運用効率を大幅に向上させることが可能です。

PowerShellによるAzureログ設定の準備

Azure Firewallのログを収集するために、まずPowerShell環境を整え、Azureアカウントへの接続を行う必要があります。このセクションでは、必要なツールのインストールと基本的なセットアップ手順を説明します。

Azure PowerShellモジュールのインストール


PowerShellを使用してAzure環境を操作するには、Azure PowerShellモジュールが必要です。以下のコマンドを使用してインストールします。

# 既存のバージョンを更新する場合は一度アンインストール
Uninstall-Module -Name Az -AllVersions -Force

# Azureモジュールをインストール
Install-Module -Name Az -AllowClobber -Scope CurrentUser

インストール後の確認


以下のコマンドでインストールが成功したか確認します。

Get-Module -Name Az -ListAvailable

Azureアカウントへのログイン


Azureアカウントにログインするには、以下のコマンドを使用します。

Connect-AzAccount

ログイン後、アカウント情報と関連するサブスクリプションが表示されます。複数のサブスクリプションを使用している場合、対象のサブスクリプションを選択する必要があります。

サブスクリプションの設定


サブスクリプションを切り替えるには、次のコマンドを使用します。

Set-AzContext -SubscriptionId "サブスクリプションID"

Azureリソースの事前確認


ログ設定を進める前に、以下のリソースが揃っていることを確認してください。

  • Azure Firewall
  • Log Analyticsワークスペース

これらが不足している場合は、AzureポータルやPowerShellを使用して作成してください。準備が整ったら、次のステップに進みます。

Azure Firewallで診断設定を有効化する方法

Azure Firewallのログを収集するためには、診断設定を有効化し、適切な出力先を設定する必要があります。このセクションでは、AzureポータルとPowerShellを使用して診断設定を構成する手順を解説します。

診断設定の概要


診断設定を有効にすると、以下の種類のログを収集できます。

  • AzureFirewallApplicationRuleLog: アプリケーションルールの動作ログ。
  • AzureFirewallNetworkRuleLog: ネットワークルールの動作ログ。
  • AzureFirewallDnsProxyLog: DNSプロキシのクエリログ。

これらのログをLog Analyticsやストレージアカウントに送信することで、効率的な分析が可能になります。

Azureポータルで診断設定を有効化する手順

  1. Azureポータルにサインイン
    Azureポータルにアクセスし、Azure Firewallリソースを選択します。
  2. [診断設定]を選択
    Firewallの設定画面で「診断設定」をクリックします。
  3. 新しい診断設定を作成
    「診断設定を追加」をクリックし、以下を設定します:
  • 名前: 任意の診断設定名を入力。
  • カテゴリ: 収集するログ(例: ApplicationRuleLog, NetworkRuleLog, DnsProxyLog)を選択。
  • 宛先: Log Analytics、ストレージアカウント、またはイベントハブのいずれかを選択。
  1. 設定を保存
    「保存」をクリックして設定を有効化します。

PowerShellを使用して診断設定を有効化する方法


以下のスクリプトを使用して診断設定を構成します。

# リソース情報の設定
$firewallName = "YourFirewallName"
$resourceGroupName = "YourResourceGroupName"
$workspaceResourceId = "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.OperationalInsights/workspaces/your-log-analytics"

# 診断設定を作成
Set-AzDiagnosticSetting -Name "FirewallDiagnostics" `
    -ResourceId "/subscriptions/your-subscription-id/resourceGroups/$resourceGroupName/providers/Microsoft.Network/azureFirewalls/$firewallName" `
    -WorkspaceId $workspaceResourceId `
    -Enabled $true `
    -Logs @(
        @{
            Category = "AzureFirewallApplicationRuleLog"
            Enabled = $true
        },
        @{
            Category = "AzureFirewallNetworkRuleLog"
            Enabled = $true
        },
        @{
            Category = "AzureFirewallDnsProxyLog"
            Enabled = $true
        }
    )

設定後の確認


診断設定が正常に構成されたか確認するには、以下のコマンドを使用します。

Get-AzDiagnosticSetting -ResourceId "/subscriptions/your-subscription-id/resourceGroups/$resourceGroupName/providers/Microsoft.Network/azureFirewalls/$firewallName"

これで、Azure Firewallのログ収集の準備が整いました。次はLog Analyticsワークスペースの構成を進めましょう。

Log Analyticsワークスペースの作成と構成

Traffic Analyticsを活用するには、Azure Firewallのログを送信するLog Analyticsワークスペースが必要です。このセクションでは、Log Analyticsワークスペースの作成と適切な設定方法について説明します。

Log Analyticsワークスペースの概要


Log Analyticsワークスペースは、Azure Monitorの一部であり、ログデータを収集・格納・クエリするための環境を提供します。このワークスペースを使用することで、Azure Firewallのログを詳細に分析し、Traffic Analyticsを利用してネットワークトラフィックを可視化できます。

AzureポータルでLog Analyticsワークスペースを作成する方法

  1. Azureポータルにサインイン
    Azureポータル にアクセスします。
  2. Log Analyticsリソースを検索
    検索バーに「Log Analytics」と入力し、「Log Analyticsワークスペース」を選択します。
  3. 新しいワークスペースの作成
    「+ 作成」をクリックし、以下の情報を入力します:
  • サブスクリプション: 対象のサブスクリプションを選択。
  • リソースグループ: 新規作成または既存のリソースグループを選択。
  • 名前: ワークスペースの一意の名前を入力。
  • リージョン: 使用するリージョンを選択。
  1. 確認と作成
    入力内容を確認し、「作成」をクリックします。ワークスペースのデプロイが完了するまで待ちます。

PowerShellでLog Analyticsワークスペースを作成する方法


以下のスクリプトを使用してLog Analyticsワークスペースを作成します。

# パラメータ設定
$resourceGroupName = "YourResourceGroupName"
$workspaceName = "YourWorkspaceName"
$location = "EastUS"

# Log Analyticsワークスペースの作成
New-AzOperationalInsightsWorkspace -ResourceGroupName $resourceGroupName `
    -Name $workspaceName `
    -Location $location `
    -Sku Standard

Azure Firewallログの送信先にLog Analyticsを設定


作成したLog AnalyticsワークスペースのリソースIDを取得し、Azure Firewallの診断設定に適用します。以下のようにリソースIDを取得します:

# ワークスペースのリソースIDを取得
$workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $resourceGroupName -Name $workspaceName
$workspace.ResourceId

取得したリソースIDを使い、診断設定を構成します(詳細はa4を参照)。

Traffic Analyticsの前提条件の確認


Traffic Analyticsを有効にするには、Log Analyticsワークスペースが以下の要件を満たしている必要があります:

  • ネットワークセキュリティグループ(NSG)のフローログが有効化されている
  • データ保持期間が30日以上に設定されている

これで、Log Analyticsワークスペースの作成と構成が完了しました。次はTraffic Analyticsを有効化して可視化を進めます。

Traffic Analyticsの有効化と設定

Traffic Analyticsを使用することで、Azure Firewallを通過するネットワークトラフィックのパターンを可視化し、セキュリティリスクの特定や運用効率の向上を図ることができます。このセクションでは、Traffic Analyticsを有効化する手順を解説します。

Traffic Analyticsの概要


Traffic Analyticsは、Azure Monitorに組み込まれたツールであり、以下の機能を提供します:

  • トラフィックの可視化:送信元・送信先のIPやポートの特定。
  • セキュリティ分析:潜在的なセキュリティリスクの検出。
  • トラフィックパターン分析:トレンドや異常値の発見。

Traffic Analyticsを有効化する手順

1. ネットワークセキュリティグループ(NSG)フローログを有効化


Traffic Analyticsを使用するには、NSGフローログを有効化する必要があります。以下の手順で設定します。

Azureポータル:

  1. Azureポータルで「ネットワークセキュリティグループ」を開きます。
  2. 設定画面から「診断設定」を選択します。
  3. 「診断設定を追加」をクリックし、以下を設定:
  • フローログのバージョン: 2を選択。
  • 宛先: Log Analyticsワークスペースを指定。
  1. 設定を保存します。

PowerShell:

# NSGフローログの有効化
$resourceGroupName = "YourResourceGroupName"
$nsgName = "YourNSGName"
$workspaceId = "YourLogAnalyticsWorkspaceResourceId"

Set-AzNetworkWatcherConfigFlowLog -ResourceGroupName $resourceGroupName `
    -NetworkSecurityGroupName $nsgName `
    -Enabled $true `
    -WorkspaceResourceId $workspaceId `
    -TrafficAnalyticsInterval 10

2. Traffic Analyticsを有効化


Traffic Analyticsを有効化するには、Log Analyticsワークスペースの設定を行います。

Azureポータル:

  1. 「Log Analyticsワークスペース」を開きます。
  2. 「設定」メニューから「Traffic Analytics」を選択します。
  3. 「有効化」をクリックし、データ保持期間を確認(最低30日)。
  4. 設定を保存します。

PowerShell:

# Traffic Analyticsの有効化
Set-AzTrafficAnalyticsConfiguration -WorkspaceId $workspaceId -Enabled $true

Traffic Analyticsの確認


Traffic Analyticsが正常に有効化されたか確認するには、Azureポータルの「Traffic Analytics」ダッシュボードをチェックします。以下のような情報が表示されます:

  • トラフィックフロー:ネットワークの送信元と送信先。
  • セキュリティリスク:異常なトラフィックの検出。
  • パフォーマンスメトリック:帯域幅使用率や遅延。

推奨される活用方法

  • トラフィックの異常値を定期的にレビューする。
  • セキュリティポリシーの改善に役立てる。
  • リソースの使用状況を監視し、コストを最適化する。

Traffic Analyticsの設定が完了したら、ネットワークの可視化と分析を実施してみましょう。次のセクションでは、PowerShellスクリプトを使った設定の自動化方法を解説します。

PowerShellスクリプトによる自動化例

Azure Firewallログの収集やTraffic Analyticsの設定を手動で行うと、時間がかかる場合があります。ここでは、PowerShellスクリプトを使用してこれらの設定を自動化する方法を紹介します。このスクリプトを活用することで、設定ミスを減らし、作業効率を向上させることができます。

自動化スクリプトの概要


以下のスクリプトは、Azure Firewallの診断設定を構成し、Log Analyticsワークスペースにログを送信し、Traffic Analyticsを有効化するプロセスを自動化します。

スクリプトの準備


PowerShell環境で以下の手順を実行するため、事前にAzure PowerShellモジュールをインストールし、Azureアカウントにログインしてください(詳細はa3参照)。

スクリプト例

# パラメータ設定
$resourceGroupName = "YourResourceGroupName"
$firewallName = "YourFirewallName"
$nsgName = "YourNSGName"
$workspaceName = "YourWorkspaceName"
$location = "EastUS"

# Log Analyticsワークスペースの作成
Write-Host "Creating Log Analytics Workspace..."
$workspace = New-AzOperationalInsightsWorkspace -ResourceGroupName $resourceGroupName `
    -Name $workspaceName `
    -Location $location `
    -Sku Standard

# Azure Firewall診断設定の有効化
Write-Host "Enabling Diagnostics for Azure Firewall..."
$firewallResourceId = "/subscriptions/your-subscription-id/resourceGroups/$resourceGroupName/providers/Microsoft.Network/azureFirewalls/$firewallName"
Set-AzDiagnosticSetting -Name "FirewallDiagnostics" `
    -ResourceId $firewallResourceId `
    -WorkspaceId $workspace.ResourceId `
    -Enabled $true `
    -Logs @(
        @{
            Category = "AzureFirewallApplicationRuleLog"
            Enabled = $true
        },
        @{
            Category = "AzureFirewallNetworkRuleLog"
            Enabled = $true
        },
        @{
            Category = "AzureFirewallDnsProxyLog"
            Enabled = $true
        }
    )

# NSGフローログの有効化
Write-Host "Enabling NSG Flow Logs..."
Set-AzNetworkWatcherConfigFlowLog -ResourceGroupName $resourceGroupName `
    -NetworkSecurityGroupName $nsgName `
    -Enabled $true `
    -WorkspaceResourceId $workspace.ResourceId `
    -TrafficAnalyticsInterval 10

# Traffic Analyticsの有効化
Write-Host "Enabling Traffic Analytics..."
Set-AzTrafficAnalyticsConfiguration -WorkspaceId $workspace.ResourceId -Enabled $true

Write-Host "Automation completed successfully!"

スクリプトの動作概要

  1. Log Analyticsワークスペースの作成
    指定したリソースグループとリージョンにLog Analyticsワークスペースを作成します。
  2. Azure Firewall診断設定の有効化
    Firewallのログを収集するため、Log Analyticsワークスペースへのログ送信設定を構成します。
  3. NSGフローログの有効化
    Traffic Analyticsが利用できるように、ネットワークセキュリティグループ(NSG)のフローログを有効化します。
  4. Traffic Analyticsの有効化
    Traffic AnalyticsをLog Analyticsワークスペースで有効にし、トラフィックの可視化を設定します。

カスタマイズと実行

  • スクリプト内の変数(リソースグループ名、ファイアウォール名、NSG名など)を環境に合わせて変更してください。
  • PowerShellスクリプトを実行する際は、管理者権限で実行することをお勧めします。

このスクリプトを活用すれば、手動操作を最小限に抑えつつ、一貫性のある設定が可能です。次は記事のまとめに進みます。

まとめ

本記事では、PowerShellを活用してAzure Firewallのログを収集し、Traffic Analyticsを有効化する手順を解説しました。具体的には、Azure Firewallの診断設定の有効化、Log Analyticsワークスペースの構成、Traffic Analyticsの設定、そして自動化スクリプトの活用方法について紹介しました。

これらの手法を実践することで、ネットワークトラフィックの可視化やセキュリティリスクの特定が容易になり、運用効率を大幅に向上させることができます。PowerShellを用いた自動化により、設定ミスの軽減や作業時間の短縮も実現可能です。

本記事を参考に、Azure Firewallを効果的に管理し、クラウド環境のセキュリティをさらに強化してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次