はじめに
どうも、ぷっちょボール食べたくてAmazonで12個買ったら2つ目で飽きた男です。
今回は、以前書いたAWSのVPC上にコンテナサービスを置いて、セキュアなアーキテクチャを作成した際に、セキュリティグループの謎についてまとめました。
この謎について詳しく書いていきたいと思います。
お付き合いください。
セキュリティグループとは
まずセキュリティグループについて簡単におさらいしましょう。
セキュリティグループとはVPC内におけるAWSリソースまたはサービス間のトラフィックを制御するためのルールのことです。
たとえば、VPC内の負荷分散のためにロードバランサーを設置したとします。このロードバランサーでECSで実行したタスクにアクセスを分散させる場合、このタスクはロードバランサーからのトラフィックを許可する必要があります。
この許可をプロトコルやポート番号、IPアドレスなどを指定することで、セキュアな設計ができるのです。
社内でWebアプリケーションを展開したいというときも、このセキュリティグループに社内のIPアドレスを指定することで社内の人間しかアクセスできない環境を作ることができます。
セキュリティグループの設定の仕方
セキュリティグループは基本的にVPC内に1つ以上作成します。
設定の方法としては、TCPやHTTPなどのプロトコルを選択するタイプ
という欄は最適なものを選んでください。
わたしはすべてのトラフィックを選択しております。
そして、ソース
の欄でマイIPを選択してください。
以前の記事ではマイIPってなんぞや?って感じでしたが、
マイIPとは、現在AWSクラウドにアクセスしているIPアドレスをそのまま指定できるという、大変便利なものとなっております。
つまり、社内のサーバーからAWSコンソールにアクセスし、セキュリティグループの設定でマイIPを選択すると…
社内IPアドレスが指定できます。
めちゃくちゃ便利ですね!!!
一瞬でセキュアな制御が可能になります。
続いて、マイIPを指定したら一度セキュリティグループを保存します。
そしてすぐに保存したセキュリティグループのインバウンドルールを編集してください。
ここで、ソース
の欄でカスタムを選択し、IPアドレス記入欄から先ほど作成したセキュリティグループを選択してください。
何やってんの???って感じですよね。
私もそう思います。
しかし、この設定がないとVPC内のリソースが動きません。
はじめにセキュリティグループの説明をした際に、VPC内のAWSリソースまたはサービス間のトラフィックを制御すると言いました。
つまり、このセキュリティグループをアーキテクチャ上ですべて1つに統一した場合、すべてのリソース、サービスにこのセキュリティグループを設定することになるので、このセキュリティグループ自体を許可する設定をする必要があるということです。
もっとわかりやすく説明します。
例えば、タスクAに対してセキュリティグループAを設定し、タスクBに対してセキュリティグループBを設定したとします。そして、このタスクAとタスクBがやり取りを行う際、タスクAからのトラフィックをセキュリティグループBは許可しなければなりません。つまり、セキュリティグループBにセキュリティグループAを設定する必要があるのです。
では、今回のケースを見てみましょう。セキュリティグループは1つですよね?そういうことです。セキュリティグループのインバウンドルールに自身を設定する必要があるということです。
ややこしいですね…
まとめ
今回はセキュリティグループの設定方法についてご説明しました。
間違えている部分ございましたらご指摘いただけますと幸いです。
まあ、AWSのソリューションアーキテクトの方のお墨付きなんで多分大丈夫です!!!
他にもWAFなどで、さらにセキュアに構築することもできますが、ひとまずはこれでOKだと思います。
AWS関連で有益な情報がありましたら随時共有しようと思いますので、よろしくお願いいたします。
それでは!!!