AWSのSecurityGroupとNetworkACL

違い

違いは簡単にこんな感じ。

セキュリティグループ ネットワークACL
EC2インスタンスのファイアーフォール サブネットのファイアーウォール
許可のみ設定できる(ホワイトリスト形式) 許可と拒否が設定できる

ユーザーガイドの図がとてもわかりやすい。

どう使い分けるか

デフォルトのネットワークACLひとつだけ用意しておいて特に何もせず、通常はセキュリティグループを使うのが良いかも。

セキュリティグループ

  • 細かい用途ごとにたくさん作る
    • 外からのアクセス制御 -> CiderIp
      • 一般ユーザのHTTP
      • nagios
    • 内部のアクセスの制御 -> SourceSecurityGroupIdRef
      • データベースへの通信
      • Fluentdの通信

ネットワークACL

  • ネットワーク外部からのアクセスの全体制御などに(DoSアタックの防御とか)

CloudFormationでのリソース名

  • セキュリティグループ
    • 作成・ルール設定: AWS::EC2::SecurityGroup
  • ネットワークACL
    • 作成: AWS::EC2::NetworkAcl
    • ルール設定:AWS::EC2::NetworkAclEntry
    • サブネットの関連づけ: AWS::EC2::SubnetNetworkAclAssociation