AWSのVPCに登場するネットワークACLは、サブネット単位で機能するファイアウォールである。
ネットワークACLは、EC2のENI単位で設定するセキュリティーグループに対して比較されることが資格試験では多い。セキュリティーグループと比較した時の違いとして、セキュリティーグループがステートフル、つまりインバウンドの通信に対して、アウトバウンドの通信ルールを考慮する必要がないのに対し、ネットワークACLは、インバウンドとアウトバウンドの通信ルールを設定するステートレスの仕組みになっている…と説明されるのだが。ちょっと待って!
…そのまま丸暗記するの辛くないですか?なんでそうなっているの?と思いませんか。
私は思っていました。なんでこんな仕組みなんだろう?言ってしまえばネットワークACLレベルの制御って癖があるよね。
これには実は理由があるようで、セキュリティーグループがOSI参照モデルのうち、第7層~第4層すなわちアプリケーション層、プレゼンテーション層、セッション層、トランスポート層で機能する。
すなわち、通信の行きと返りを制御する層におけるファイアウォール機能だからということになるんですね。
逆に、ネットワークACLはOSI参照モデルのうち、第3層~第1層すなわちネットワーク層、データリンク層、物理層で機能する。
早い話が、通信の行きと帰りを制御しないというよりできないレベルでの領域で動くから。サブネットそのものがIPで制御される…つまり第3層レベルで動作する通信プロトコル。
よくよく考えてみれば当然なのです。
ネットワークACL=ネットワーク層レベル=インターネット・プロトコルの制御だからステートレス(≒)ネットワークの行きと戻りを考慮した制御ができない。
このように類推ができていれば、忘れにくい気がします。
コメント