0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Azure】Public Network Access が Disabled なのに VNet Flow Log を保存できるのはなぜ?検証してみた

0
Posted at

【Azure】Public Network Access が Disabled なのに VNet Flow Log を保存できるのはなぜ?検証してみた

「Azure Storage Account の Public Network Accessを Disabled に設定しているのに、なぜか VNet Flow Logが問題なく保存され続けている…」

一見すると設定の矛盾のように見えますが、気になったので実際に Azure 環境で挙動を検証・調査してみました。
今回は、その検証結果と「なぜ保存できるのか」のメカニズムを解説します。


疑問のきっかけと検証環境

以下のような設定のストレージアカウントを作成し、VNet Flow Log の出力先として指定しました。

検証したストレージアカウントの構成

  • Storage Account名: vnetflowlogsa123
  • Networking(ネットワーク)設定: Public network access = Disabled

近年、Azure Portal の UI 上では「信頼された Microsoft サービスによるこのストレージ アカウントへのアクセスを許可する(Allow trusted Microsoft services...)」というチェックボックスが表示されないケースが増えています。

ポータル画面上は「パブリックアクセスが無効化されており、例外設定もない」ように見えるため、「なぜアクセスを拒否されているはずの VNet Flow Log が書き込めているのか?」という疑問が生じました。

検証結果:
StorageAccoutのPublicAccessを無効にしているのに、VnetFlowlogは以前中に保管されます。
image.png

image.png


Azure CLI で設定プロパティを確認してみた

設定の裏側を確認するため、Azure CLI を使ってストレージアカウントの内部パラメータ(JSON)を出力してみました。

az storage account show \
  -g vNETFLOWLOG \
  -n vnetflowlogsa123 \
  --query "{publicNetworkAccess:publicNetworkAccess, bypass:networkRuleSet.bypass}"

実行結果

{
  "bypass": "AzureServices",
  "publicNetworkAccess": "Disabled"
}

ここで重要になってくるのが、"bypass": "AzureServices" というパラメータです。


なぜ保存できるのか?理由とメカニズム

結論から言うと、「Public network access = Disabled」「Trusted Azure Services (bypass)」 は内部的に独立した別々の設定として管理されています。

1. bypass = AzureServices とは?

Storage Account にはファイアウォール制御の例外設定として 「Trusted Azure Services(信頼された Azure サービス)」 という仕組みが存在します。この設定が有効な場合、特定条件を満たす Azure のファーストパーティサービスは Storage ファイアウォールをバイパスしてアクセス可能です。

2. ネットワークログ機能は対象サービスに含まれる

Trusted Azure Services の対象リストには Azure Networking Services (Microsoft.Network) が含まれており、以下のサービスによるログ書き込みが許可されています。

  • Network Watcher
  • NSG Flow Log
  • VNet Flow Log

3. Disabled にしても bypass 設定は残る仕様

Microsoft Learn にも記載がありますが、Public network accessDisabled に変更しても、過去に構成されていた bypass(例外許可)設定は有効なまま保持される仕様があります。

そのため、「Disabled にしたから絶対にアクセスできない」とは言えないのが実態です。


ポータルでチェックボックスが見えない理由と確実な確認方法

現在の Azure Portal(特にストレージアカウントの「ネットワーク」ブレード)では、パブリックネットワークアクセスを「無効(Disabled)」に設定すると、例外許可のチェックボックス自体が非表示・マスクされる画面設計になっています。

そのため、画面上の見た目だけで判断せず、Azure CLI や PowerShell で直接パラメータを確認するのが一番確実です。

判定コマンド

az storage account show \
  -g <リソースグループ名> \
  -n <ストレージアカウント名> \
  --query "networkRuleSet.bypass"

  • "AzureServices" が返ってきた場合 ➔ Trusted Azure Services が有効(VNet Flow Log 保存可能)
  • "None" が返ってきた場合 ➔ Trusted Services も無効(完全遮断)

おわりに

「パブリックアクセスを無効にしたのにログが届く」という疑問から検証してみましたが、Public network access だけでなく networkRuleSet.bypass の値も合せて確認する必要があることが分かりました。

ポータルの表示だけに頼らず、CLIで内部パラメータまで追うことの大切さを再確認した検証でした!

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?