JavaScriptを有効にしてください

複数サブスクリプションに分散型で Vnet Flow log を有効化し隊

 ·   2 分で読めます  ·   Kento

Vnet Flow log を使うと仮想ネットワークで発生するネットワークトラフィックをログとして取得することができます
仮想ネットワーク フロー ログ - Azure Network Watcher | Microsoft Learn

Vnet Flow Log は Azure Policy を使って有効化することができます
Azure Policy を使用した仮想ネットワーク フロー ログの監査とデプロイ - Azure Network Watcher | Microsoft Learn

しかし組み込みポリシーのパラメータにストレージアカウントや、Log Analyticsワークスペースを指定する必要があるため、

  • 複数の環境で一括で Vnet Flow Log を有効化したい -> ポリシーを使いたい
  • サブスクリプションごとに異なるストレージアカウントや Log Analytics ワークスペースを指定したい

というニーズを満たすことができません
言い換えると1つのポリシー割り当てだけでは 下記のように1つの Log Analyticsワークスペースにすべてのネットワーク ログを集約させてしまいます

architecture-beta

group subscription1(azure:subscriptions)[Subscription 1]
    service storage(azure:storage-accounts)[Storage Account] in subscription1
    service loganalytics(azure:log-analytics-workspaces)[Log Analytics Workspace] in subscription1

group subscription2(azure:subscriptions)[Subscription 2]
    service vnet1(azure:virtual-networks)[Vnet 1] in subscription2

group subscription3(azure:subscriptions)[Subscription 3]
    service vnet2(azure:virtual-networks)[Vnet 2] in subscription3

vnet1:L --> R:storage
vnet2:T --> B:storage
storage:T --> B:loganalytics

そこでカスタムポリシーを作りました
詳細はこちらで。AzurePolicy/CustomPolicy/vnetFlowLog at main · NakayamaKento/AzurePolicy

利用イメージは下記のようになります
それぞれのサブスクリプションに対して、それぞれのストレージアカウントや Log Analytics ワークスペースを用意し、そこにネットワークログを分散させることができます

architecture-beta

group subscription1(azure:subscriptions)[Subscription 1]
    service vnet1(azure:virtual-networks)[Vnet 1] in subscription1
    service storage1(azure:storage-accounts)[Storage Account1] in subscription1
    service loganalytics1(azure:log-analytics-workspaces)[Log Analytics Workspace1] in subscription1

group subscription2(azure:subscriptions)[Subscription 2]
    service vnet2(azure:virtual-networks)[Vnet 2] in subscription2
    service storage2(azure:storage-accounts)[Storage Account2] in subscription2
    service loganalytics2(azure:log-analytics-workspaces)[Log Analytics Workspace2] in subscription2

group subscription3(azure:subscriptions)[Subscription 3]
    service vnet3(azure:virtual-networks)[Vnet 3] in subscription3
    service storage3(azure:storage-accounts)[Storage Account3] in subscription3
    service loganalytics3(azure:log-analytics-workspaces)[Log Analytics Workspace3] in subscription3

vnet1:L --> R:storage1
storage1:T --> B:loganalytics1
vnet2:L --> R:storage2
storage2:T --> B:loganalytics2
vnet3:L --> R:storage3
storage3:T --> B:loganalytics3

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中