ネットワーク アクセス セキュリティの機能して、サービス エンドポイントを用いて許可した仮想ネットワーク (VNet) 内のサブネットのみからストレージ アカウントへのアクセスを許可/制限することが可能になっています。
ドキュメントの中で読み取りアクセス geo 冗長ストレージ (RA-GRS) の場合において設定した場合、気になる記載があったので、挙動について確認、纏めてみました。
RA-GRS に対して VNet 内のサブネットからアクセスを許可した際の挙動について
対象ドキュメントの記載内容について
上記ドキュメント内に以下の記載があり、RA-GRS の場合には VNet 内のサブネットに対してアクセス許可を設定したリージョン (以降、プライマリ リージョン) のペア リージョン (以降、セカンダリ リージョン) の読み取り専用ストレージにもアクセス可能であると読み取れます。
使用可能な仮想ネットワークのリージョン
一般に、サービス エンドポイントは、同じ Azure リージョン内の仮想ネットワークとサービス インスタンスの間で機能します。 サービス エンドポイントを Azure Storage と共に使用すると、この範囲はペアのリージョンを含むように拡張されます。 サービス エンドポイントにより、リージョンのフェールオーバー時の継続性と、読み取り専用の geo 冗長ストレージ (RA-GRS) インスタンスへのアクセスが実現されます。 仮想ネットワークからストレージ アカウントへのアクセスを許可するネットワー ルールでは、任意の RA-GRS インスタンスへのアクセスも許可します。
リージョンが停止したときのディザスター リカバリーを計画するときは、ペアのリージョン内にあらかじめ VNet を作成しておく必要があります。 これらの代替仮想ネットワークからのアクセスを許可するネットワーク ルールで、Azure Storage 用のサービス エンドポイントを有効にします。 その後、これらのルールを geo 冗長ストレージ アカウントに適用します。
また、プライマリ リージョンが停止した際のディザスター リカバリーとして、セカンダリ リージョン内に VNet およびサブネットを作成、アクセス許可しておかないと接続されているセカンダリ リージョンのリソースからアクセスできないとも読み取れるため、図にすると以下のような感じかなと思います。
実際に確認した結果が以下となり、上記の図どおりのアクセス許可/制限となったことを確認しました。
挙動確認結果 (プライマリ リージョン)
プライマリ ストレージ、読み取り専用のセカンダリ ストレージともにアクセスできることを確認しています。
挙動確認結果 (セカンダリ リージョン)
セカンダリ リージョンのリソース (ここでは VM) からアクセスした際の結果をしては、ストレージ アカウントのプライマリ/セカンダリともにアクセスが拒否されていることをかくにんしました。
セカンダリ リージョンのリソースに接続されている Vnet 内のサブネットからのアクセスを許可していないので、当然の結果ですね。
まとめ
RA-GRS に対してサービス エンドポイントを用いたアクセス許可/制限を行った場合でも、許可された VNet 内のサブネットからプライマリ ストレージ/読み取り専用のセカンダリ ストレージとにアクセスすることが可能です。
ドキュメントの内容を図にして、実際に挙動を確認してみたので理解できた。