🤔

たまに出会う Azure のセキュリティグループに関する誤解

2021/05/29に公開

最近も出会ってしまった。こんな誤解。

セキュリティグループ、正確に言えば Network Security Groups。AWS のセキュリティグループと同じで、ネットワークインターフェースに割り当てて使う仮想ファイアウォール。こちらの NSG なんですが、ちょっと AWS と違うのは、NSG の割当先として NIC とサブネットの 2 つから選べる点。

そして MS から推奨されているのは、運用管理をシンプルにするということで個別の NIC ごとに NSG を割り当てるではなく、サブネットに NSG を割り当てる、です。なので、ふつうに設計を進めていくと用途ごとにサブネットを分けて、サブネットに NSG を割り当てていくことになるんですよね、、、と、ここで誤解が生じるんです。

そう、サブネットに NSG を割り当てるってそのまま聞くと動き的には、いわゆる AWS でいうネットワーク ACL のような感じになるんじゃなかろうか、と。ちなみに、AWS のネットワーク ACL っていうのは、サブネットへの入出力のところでチェックをかけるっていうやつですよね。なので、サブネット内通信はネットワーク ACL は制御できないので、サブネット内は何でも OK なノーガード状態になるわけです。

でも Azure でサブネットに NSG を割り当てた時の正しい動きは、「サブネットに NSG を割り当てると自動的にサブネット配下の NIC すべてに当該 NSG が適用される」なので、サブネット内通信もしっかり NSG でガードされます。Azure 有識者だと当たり前なんですが言葉通りにサブネットに NSG を割り当てるだと、サブネット内はザルの方を想像される方が多いようです。特にネットワークに詳しいエンジニアさんの方が誤解される傾向にあるかもしれないです。

もう頭の中ではサブネット内通信はザルと思っているから、サブネットに NSG を割り当てて実際に動かしてみると「あれ、通信できないんですけどーーーー!!」ということで慌てられるケースもあったりなかったり。ということで、Azure を利用する際は少しだけお気を付けを。

Discussion