AWSのFirewall機能といえば Security Group ですが、意外にシンプルな機能でプロトコル、アクセス元、ポートのレンジを指定したセットをEC2起動時に指定してアクセス制御を行うしかけになってます。このままでも運用しても良いのですが、AWSブログで3tier構成にする場合の解説があったので紹介します。
suz-lab でも解説があったとおり、セキュリティグループの設定値で Source としてセキュリティグループを指定することができます。これは指定したセキュリティグループからの特定のポートへのアクセスを許可する方法です。
これを利用することで、いわゆる Internet – DMZ – LAN 的な 3tier を作ることができます。AWSブログでは WebSG、AppSG、DBSG というセキュリティグループを作成して、WebSG → AppSG、AppSG → DBSG の接続許可をしてます。API(コマンド)では以下のとおり。
ec2-authorize WebSG -P tcp -p 80 -s 0.0.0.0/0 ec2-authorize WebSG -P tcp -p 443 -s 0.0.0.0/0 ec2-authorize WebSG -P tcp -p 22|3389 -s CorpNet ec2-authorize AppSG -P tcp|udp -p AppPort|AppPort-Range -o WebSG ec2-authorize AppSG -P tcp -p 22|3389 -s CorpNet ec2-authorize DBSG -P tcp|udp -p DBPort|DBPort-Range -o AppSG ec2-authorize DBSG -P tcp -p 22|3389 -s CorpNet ec2-authorize DBSG -P tcp -p 22|3389 -s VendorNet
(CorpNet は社内、VendorNet はDBベンダー内のこと)
ちょっと勘違いしていて知らなかったのですが、意外と簡単にオンプレミス環境と同じような構成が取れることがわかり安心しました。実環境で利用してみようと思います。
ちなみに、これも知らなかったのですが、セキュリティグループの設定に関して API で設定するのにくらべて Management Console では制限があることが書かれてました。Management Console 上で Source にセキュリティグループ指定した設定を追加すると自動的に ICMP/TCP/UDP のポートフルレンジ指定の設定へ展開されて、プロトコルとポートを指定することができません。現在対応中とのことなので近々利用可能になるでしょう。