#プログラミング勉強日記
2021年5月10日
#セキュリティグループ
インスタンスへのトラフィックのアクセス可否を設定する。なので、EC2のアクセス制御はセキュリティグループによって行う。EC2に対する権限の設定はIAMで行うが、どこのPCが・どのユーザがサーバーにアクセスできるのかということはセキュリティグループが通信の制御をしている。
例えば、EC2インスタンスをWebサーバーにしてホームページを作った場合、HTTPのトラフィックのアクセスが許可されていないとみることができない。以下のような設定だと、セキュリティグループはポート22のSSHのみを許可している。つまり、ホームページを作ってもホームページにアクセスできない設定状況になっている。EC2インスタンスの内部の操作をするためにはSSHプロトコルを使ってアクセスをする。
それぞれのEC2インスタンスに対して1つずつセキュリティグループを設定する。同じ設定であれば1つのセキュリティグループで複数のEC2インスタンスに共有して使うこともできる。
#ネットワークACL
トラフィック制御の1つでサブネットに対するトラフィック制御を実施する。要するに、仮想ネットワーク自体に制御するためにはネットワークACLを使う。
#セキュリティグループとネットワークACLの違い
トラフィック設定はセキュリティグループかネットワークACLを使う。
セキュリティグループ設定 | ネットワークACLs設定 |
---|---|
サーバー単位で適用する | VPC/サブネット単位で適用する |
ステートフル(インバウンド※1 のみの設定でアウトバウンド※2 も許可される) | ステートレス(インバウンド設定のみではアウトバウンドは許可されない) |
許可のみをin/outで指定 | 許可と拒否をin/outで指定 |
デフォルトではセキュリティグループ内通信のみ許可 | デフォルトではすべての通信を許可 |
すべてのルールを適用 | 番号の順序通りに適用(複数の通信制御を設定した場合、上のだけ適用されて後ろは適用されないこともある) |
※1 インバウンド:トラフィック制御の入り口(外からEC2インスタンスにくるトラフィック)
※2 アウトバウンド:外部に通信を出すこと(EC2インスタンスから外に通信を出す)