セキュリティグループとネットワークACL
VPCの仮想ファイアウォールとして、セキュリティグループとネットワークACLがある。ファイアウォールとは、ネットワークへのデータの出入りをコントロールする仕組み。
セキュリティグループとネットワークACLは、インバウンドトラフィック(データが入ること)とアウトバウンドトラフィック(データが出ること)をコントロールする。必ず両方、何かしらの設定が必要なので、明示的に設定しない場合は、デフォルトの設定が適用される。
セキュリティグループとネットワークACLの特徴
項目 | セキュリティグループ | ネットワークACL |
---|---|---|
動作の範囲 | インスタンスに対して動作する(最大5つのセキュリティグループを割り当てが可能) | サブネットに対して動作する |
ルール | ルールの許可のみ | ルールの許可の拒否 |
動作 | ステートフル (ルールに関係がなく、返されたトラフィックが自動的に許可される) | ステートレス (返されたトラフィックはルールによって毎時的に許可される) |
ルールの適用順序 | すべてのルールを確認して、トラフィックの可/不可を決める | 順番にルールを処理しながらトラフィックの可/不可を決める |
両者の違いは動作するレベルと許可の範囲。
特に大きいのは、ネットワークACLは、サブネット単位で動作するので、ここのインスタンスに設定する必要がない点。
万が一インスタンスにセキュリティグループを設定し忘れても、ネットワークACLで対応できる。
1つのネットワークACLは複数のサブネットに紐付けることはできるが、1つのサブネットに複数のネットワークACLを紐付けることはできない。
ネットワークACLを設定済みのサブネットに新たなネットワークACLを設定すると、上書きされる。
vインバウンドとアウトバウンドの設定とウェルノウンポート
トラフィックは、インバウンドとアウトバウンドそれぞれに対し、ポート単位で許可・不許可を設定する。ポートは'25','80'などのポート番号で指定する。
ポートとは「通信の口」のこと。Web、メール、FTPなどサーバー上で何かのデーモン(サービス)が動いているときには、そのサービスに対応したポートが待ち受けている状態になっている。
サービスごとに良く使われているポート(well-known ports)の番号が決まっていて、特殊な事情がない限りそのポートを使う。
デフォルトの設定では、セキュリティグループはインバウンドを不許可、アウトバウンドを許可していて、ネットワークACLは両方許可をしている。そこから、必要に応じて、セキュリティグループの必要なポートだけを開ける設定が一般的。
主なポート番号(ウェルノウンポート)
ポート番号 | サービス | 内容 |
---|---|---|
25 | SMTP | メールの送信 |
110 | POP3 | メールの受信 |
143 | IMAP4 | メールの受信 |
80 | HTTP | Webの送受信 |
443 | HTTPS | Webの送受信 |
22 | SSH | SSHでの通信 |
1433 | SQL Server | データベースの通信 |
1521 | Oracle Database | データベースの通信 |
3306 | MySQL | データベースの通信 |
5432 | PostgreSQL | データベースの通信 |
20と21 | FTP | ファイル転送での通信(AWSでは使用することが少ない) |
53 | DNS | ドメイン管理での通信(AWSでは使用することが少ない) |
3389 | RDP | リモートデスクトップでの通信 |
32768-65535 | AWSの場合のアウトバウンド応答 |
余談
デーモンとは
パソコンの電源が入っているときに、常に動き続けてるソフトウェアのこと。
このように常駐するソフトウェアのことをUNIX系のOSでは「デーモン」、Windowsでは「サービス」という。WordやExcelのようなソフトウェアはデーモンと言わない。