ストレージアカウントのファイアウォールの罠
仮想マシンと同じリージョンにストレージアカウントを作り、Azure Filesでマウントしようとした。
このようなケースはよくあることだが、仮想マシンとストレージアカウントの通信を知らなかったがためにドツボにハマった話。
図にするとこんな感じ。

ストレージアカウント側は、マウントする仮想マシンとだけつながるようにネットワークの設定で制限をかけるのが一般的。
ストレージアカウントにはパブリックIPでアクセスするものと思っていて、仮想マシンにパブリックIPアドレスを割り当て、そのIPアドレスをストレージアカウントのネットワーク設定でホワイトリストに登録した。
が、仮想マシンからマウントできない。なんで??
実は同じリージョンにある仮想マシンとストレージアカウントは「プライベート」で通信している。
以下マイクロソフトのドキュメントにも書かれている。

つまり仮想マシンからストレージアカウントにアクセスするとき、仮想マシンのパブリックIPアドレスは使われておらず、Azure内のプライベートIPアドレスが使われているので、仮想マシンのパブリックIPアドレスを許可したところで意味がないということ。
この場合、ストレージアカウントのネットワーク設定では、仮想マシンが配置されている仮想ネットワークとサブネットを許可するのが正解。すなわち「サービスエンドポイント」。具体的には以下のネットワーク画面で設定する。
