AWS初心者学習③ ~セキュリティグループとネットワークACLについて~
前回の記事にも少し記載しましたがAWSのルーティングは仮想ルータと各種ゲーテウェイが肝です!これらを使うことでVPC内部やインターネット、オンプレミス環境などと通信できるようになります。今回は、AWS内のルーティングとセキュリティ周りを書いていきます。
・ルートテーブル
各サブネットがルートテーブルを持っていて、仮想ルータがそのルートテーブルに従って通信をさせる。
ルートテーブルには以下の特徴がある。
- 複数のサブネットで同一のルートテーブルを持つことができる。
- 一つの仮想ルータが複数のルートテーブルを持つことはできない。
- 宛先のアドレスとゲートウェイを指定する。
- VPCにはメインルートテーブルが存在し、サブネット作成時に特に指定しなければデフォルトのルートテーブルになる。
同じルートテーブルを使いまわすこともできるし、用途ごと分けることも可能ってことですねー。上の図でいうと、パブリックサブネットのWebサーバはELBとRDSのルートが必要で、プライベートサブネットのRDSはWebサーバとRDSへのルートだけ持たせておけば良いってことっですね!
余計なルートを持たせるとそれだけでリスクになってしまうので、ルートテーブルに持たせるルートは必要最小限のものにしましょう!!
・セキュリティグループ(SG)
関連付けられたAmazonEC2インスタンスのファイアーウォールとして動作し、インバウンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールする。インスタンスごとに異なるSGのセットを割り当てることができ、インスタンス作成時に何も指定しなければデフォルトのSGが紐付けられる。
つまり、webサーバ用SG,RDS用SGというようにサーバの用途別に使い分けることができる。また、特定のIPを一部サーバで許可したい場合にも使える。
※初めてインスタンスを作成したときに、こいつが原因でteratermが繋がらなくて困りました。これから触ってみようという方は、リモートアクセスできない際はまずはSGの設定をご確認ください。
・ネットワークACLについて
ネットワークACLは、関連付けられたサブネットのファイアウォールとして動作し、インバウトトラフィックとアウトバウンドトラフィックの両方をサブネットレベルでコントロールする。
セキュリティグループとネットワークACLはの違いは混同しやすく、理解するまで少し時間がかかりました。2つの機能の一番の違いは、
セキュリティグループはインスタンス単位、ネットワークACLはサブネット単位でフィルターできる点
だと思います!私は、上記の考え方を認識したときにようやく理解できました。。
おまけ
「ping通るけどサービスの通信が上手くできていないなー」とか、「そもそも通らないなー」という状況の際は以下の機能を使うとトラフィックを追うことができます。通信がどこでこけたのか、何が原因だったのかの切り分けに使うと便利です!
・フローログ
ネットワークインターフェイスとの間で行き来するIPトラフィックに関する情報をキャプチャする。VPC、サブネット、または個々のネットワークインターフェイスのフローログを作成できる。CloudWatchLogsまたはS3に発行され、過度に制限されすぎていないか制限のないSGとネットワークACLルールを見るために役に立ちます。