【AWS】セキュリティグループを設定してみた(そして関連する用語を調べてみた)

More than 1 year has passed since last update.


セキュリティグループとは

AWSのファイアウォール機能の一つ。(他には、後述するACLなどがある)

プロトコル、ポート範囲、送信元/送信先IPアドレスによるパケットフィルターが可能。

インスタンス単位に適用することができる。

殻で覆ってそこに穴をあけるイメージ。

セキュリティグループを作って何も設定しなければ何も通信を通さない。

許可したい通信に応じて許可ルールを作成することでそこに穴を開ける。

(→拒否ルールは設定できない)


セキュリティグループの設定方法


マネジメントコンソールから設定する場合

1.「AWSマネジメントコンソール」に入る

2.「EC2」を選択する

3.「セキュリティグループ」を選択する

4.「セキュリティの作成」を選択する

5.セキュリティグループ名をつけ、VPC(後述)を選択し、インバウンド、アウトバウンド(後述)それぞれで許可ルールを設定する

--以下はセキュリティグループを適用する手順--

6.「インスタンス」を選択する

7.セキュリティグループを追加したいインスタンスを選択する

8.「ネットワーキング」を選択する

9.「セキュリティグループの変更」を選択する

10.適用したいセキュリティグループを選択する


AWS CLIから設定する場合


セキュリティグループの作成

$ aws ec2 create-security-group

--description <value>
--group-name <value>
[--vpc-id <value>]
[--dry-run | --no-dry-run]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]


セキュリティグループの確認

$ aws ec2 describe-security-groups 

--group-id <value>


セキュリティグループのルール追加

# インバウンドのSSHポート22を開けるとき

$ aws ec2 authorize-security-group-ingress
--group-id <value>
--protocol tcp
--port 22
--cidr 0.0.0.0/0


セキュリティグループに関連する用語


インバウンド、アウトバウンド


インバウンドルール

そのセキュリティグループに関連付けられたインスタンスにアクセスできるトラフィックを規制するルール


アウトバウンドルール

そのセキュリティグループに関連付けられたインスタンスからどの送信先にトラフィックを送信できるか(トラフィックの送信先と送信先ポート)を制御するルール


→応答パケットについて

セキュリティグループは「ステートフル」なので、アウトバウンドルールにかかわらず、許可されたインバウンドトラフィックのアウトバウンドへの通信、またその逆を許可する応答を出す。

→つまり、AWS上のwebサーバのポート80にクライアントPCのポート49152からアクセスしてきたとして、アウトバウンドでポート49152をわざわざ開けなくても動的にポートが開いて応答を出す。


ACL

ネットワークアクセスコントロールリストの略。

セキュリティグループとの違いは

・サブネットレベルで動作する

・ルールの許可と拒否設定が可能である

・ステートレスである

以上です。