AWSのSecurityGroupとNetworkACL
違い
違いは簡単にこんな感じ。
| セキュリティグループ | ネットワークACL |
|---|---|
| EC2インスタンスのファイアーフォール | サブネットのファイアーウォール |
| 許可のみ設定できる(ホワイトリスト形式) | 許可と拒否が設定できる |
ユーザーガイドの図がとてもわかりやすい。
どう使い分けるか
デフォルトのネットワークACLひとつだけ用意しておいて特に何もせず、通常はセキュリティグループを使うのが良いかも。
セキュリティグループ
- 細かい用途ごとにたくさん作る
- 外からのアクセス制御 ->
CiderIp- 一般ユーザのHTTP
- nagios
- 内部のアクセスの制御 ->
SourceSecurityGroupIdでRef- データベースへの通信
- Fluentdの通信
- 外からのアクセス制御 ->
ネットワークACL
- ネットワーク外部からのアクセスの全体制御などに(DoSアタックの防御とか)
CloudFormationでのリソース名
- セキュリティグループ
- 作成・ルール設定:
AWS::EC2::SecurityGroup
- 作成・ルール設定:
- ネットワークACL
- 作成:
AWS::EC2::NetworkAcl - ルール設定:
AWS::EC2::NetworkAclEntry - サブネットの関連づけ:
AWS::EC2::SubnetNetworkAclAssociation
- 作成: