はじめに
今日は小ネタ。だらっとAWSの新着情報を眺めていたら、VPCのブロックパブリックアクセスというものがリリースされていました。
実験
簡単に実験してみます。
適当なVPCを作成したのち、VPCの画面を下にスクロールすると一番下に「設定」というものがあるのでこれをクリックします。
すると、以下のような画面が出てきてブロックパブリックアクセスの設定ができるようになります。
設定も簡単で、チェックボックスをオンにして保存するだけ。
実際にこのVPC内に作成したEC2にApache HTTPdをインストールし、ポート80番を開けた状態かつブロックパブリックアクセスがオフ(デフォルト)の状態でHTTPアクセスするとお馴染みのIt works!
が返ってきますが...
% curl xxx.xxx.xxx.xxx -m 5 <html><body><h1>It works!</h1></body></html> %
この状態のままでブロックパブリックアクセスをオンにすると、2〜3分ほど待ったのちにアクセスがタイムアウトしました。
% curl xxx.xxx.xxx.xxx -m 5 curl: (28) Connection timed out after 5003 milliseconds %
VPC全体でパブリックアクセスはブロックしたいが、一部のサブネットだけパブリックアクセスを許可したいということもできます。除外設定で特定のサブネットを指定してあげれば良いです。
除外設定を実施すると、2〜3分ほど待ったのちに再度アクセスが可能となりました。
% curl xxx.xxx.xxx.xxx -m 5 <html><body><h1>It works!</h1></body></html> %
考察
セキュリティグループなどの設定がきちんとできている場合はあまり必要性を感じない機能かもしれませんが、これらの設定を正しくできる人は思いの外少ないと感じています。「色々と制限をすると面倒臭いのでデフォルトオープンで。」というのはよく聞く話です。
そんな中、今回のブロックパブリックアクセス機能は中央集権的に設定ができるのでメリットを感じるところは多いのではないかと考えています。
今回はEC2上で立ち上げたWebサーバーという大変わかりやすい例で実験しましたが、AWSの数あるサービスでこのブロックパブリックアクセスがどれぐらい影響が出てくるのかはもう少し検証が必要な気がします。「ネットワークが繋がらない」というのはよく聞くトラブルですが、この項目を確認するというのが新しく追加された観点になってくるかと思います。
運用上の注意点としては、設定してから有効になるまで少し待つといったところでしょうか。高々数分ですが、即時有効にならない点は注意かもしれません。