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
- 作成: