はじめに
Azure 仮想マシンはパブリックIPアドレスを設定しない場合でも外部へと通信が行えます。
これは暗黙的にSNAT(既定の送信アクセス)が行われるためです。そのため、NATを構成する必要がないことや、課金が発生しないため便利な反面、外部へ通信が行えること自体がセキュリティポリシーなどで問題になる場合があります。
ここでは完全に外部と遮断する方法を紹介します。
-
Azure での既定の送信アクセス - Azure Virtual Network | Microsoft Learn
Azure での既定の送信アクセスについて説明します。
docs.microsoft.com
通信の遮断
SNAT(既定の送信アクセス)を無効にする方法として下記で紹介されていますがこれは通信の遮断を目的としたものではありません。明示的に他の方法に切り替えるだけです。
-
Azure での既定の送信アクセス - Azure Virtual Network | Microsoft Learn
Azure での既定の送信アクセスについて説明します。
docs.microsoft.com
通信を遮断するにはNSGを設定する必要があります。仮想ネットワークのサブネットに適用するか、仮想マシンに適用します。
下記のような環境になります。
仮想ネットワーク
新たにNSGを作成します。
送信セキュリティ規則に追加します。
- 宛先:Service Tag
- 宛先サービスタグ:Internet
- サービス:Custom
- 宛先ポート範囲:*
- プロトコル:Any
- アクション:拒否
作成後にサブネットへ適用します。
SNAT(既定の送信アクセス)が行われている仮想マシンからtcppingで確認を行います。SNAT(既定の送信アクセス)ではpingが利用できません。
-
[Tips] tcppingをインストールする。クラウドでは使うケースが意外と多い。 - 技術的な何か。
Tips クラウドではtcppingを利用するケースが多いです。 なにせ、Pingが通らないケースが多いためです。セキュリティグループとかに穴をあけないとだめですもんね。構成変更が必要になるのでできま
level69.net
設定後に通信が遮断されることが確認できました。
仮想マシン
仮想ネットワークと同様にNSGに送信セキュリティ規則を追加し適用します。
設定後にtcppingで遮断されていることを確認します。
まとめ
既定の送信アクセスは実際のところ見落としがちです。この機能が他のプロバイダーでは存在せずAzure固有の特徴でもあるためです。セキュリティ要件としてパブリックIPアドレスは割り当ていという話はよくあります。しかし、単に割り当てないだけだと外部へのアクセスが可能であることに注意が必要で、完全に遮断するにはNSGの設定を行いましょう。