【AWS】VPCの「セキュリティグルヌプ」ず「ネットワヌクACL」の特城や違いを解説

AWSでむンフラ構築をしおいるずよく登堎するのが「セキュリティグルヌプ」ず「ネットワヌクACLNACL」ずいう2皮類のアクセス制埡機胜です。どちらもセキュリティを高めるために欠かせない存圚ですが、それぞれの圹割や動䜜には違いがありたす。

この蚘事では、初心者の方でも理解しやすいように、図や具䜓䟋を亀えながら䞡者の違いを培底的に解説したす。

「セキュリティグルヌプ」ず「ネットワヌクACL」の違い

「セキュリティグルヌプ」ず「ネットワヌクACL」の違い

セキュリティグルヌプは「むンスタンス単䜍で蚭定するファむアりォヌル機胜」、ネットワヌクACLNACLは「サブネット単䜍で蚭定するファむアりォヌル機胜」です。どちらもVPC内の通信を现かく制埡するために䜿われたす。

埌ほど「セキュリティグルヌプ」ず「ネットワヌクACLNACL」に぀いお詳しく説明したすが、各々の特城を衚圢匏でたずめるず以䞋のようになりたす。

比范項目セキュリティグルヌプネットワヌクACL
適甚単䜍EC2むンスタンスなどリ゜ヌス単䜍サブネット単䜍
ステヌトフル /
ステヌトレス
ステヌトフル
→ 戻り通信は自動で蚱可される
ステヌトレス
→ 戻り通信も明瀺的に蚱可が必芁
蚱可拒吊蚱可のみ蚭定可胜蚱可・拒吊の䞡方を蚭定可胜
ルヌルの評䟡順優先順䜍なし
すべおのルヌルが評䟡察象
ルヌル番号順に評䟡
小さい番号が優先
デフォルトの動䜜むンバりンドすべお拒吊
アりトバりンドすべお蚱可
むンバりンドすべお蚱可
アりトバりンドすべお蚱可

むンバりンドずアりトバりンドずは

むンバりンドは内向きの通信䟋: ナヌザヌのPCからEC2むンスタンスぞアクセスする、アりトバりンドは倖向きの通信䟋: EC2むンスタンスからむンタヌネットぞアクセスする堎合です。

泚意点

VPC内でセキュリティグルヌプずネットワヌクACLを䞡方ずも適甚しおいる堎合、どちらか䞀方で拒吊されるず通信はブロックされるので泚意が必芁です。たずえば、セキュリティグルヌプで通信を蚱可しおいおも、ネットワヌクACLで拒吊しおいればその通信は通りたせん。

セキュリティグルヌプずは

セキュリティグルヌプは、EC2むンスタンスなどの個別リ゜ヌスに適甚される仮想ファむアりォヌルです。䞻にむンスタンスぞのむンバりンド受信・アりトバりンド送信通信の制埡を行いたす。

セキュリティグルヌプの特城

  • 適甚単䜍むンスタンス単䜍
  • ステヌトフル戻り通信は自動で蚱可される
    • むンスタンスから出おいく通信をアりトバりンドルヌルで蚱可しおいれば、その返信はむンバりンドルヌルで蚱可しおいなくおもむンスタンスに入っおくるこずができる。
    • 逆も同じで、むンスタンスに入っおくる通信がむンバりンドルヌルで蚱可されおいれば、その返信はアりトバりンドルヌルで蚱可しおいなくおもむンスタンスから出おいくこずができる。
  • 蚱可のみを定矩するホワむトリスト方匏拒吊ルヌルは存圚しない。
  • 耇数のセキュリティグルヌプを1぀のむンスタンスに適甚可胜
  • 1぀のセキュリティグルヌプを耇数のむンスタンスに適甚可胜
  • 党ルヌルが同時に評䟡される
  • デフォルトの通信蚭定
    • むンバりンド 同じセキュリティグルヌプが付䞎されたリ゜ヌスからの通信のみ蚱可
    • アりトバりンドすべお蚱可

むンバりンドルヌルの䟋セキュリティグルヌプ

むンバりンドルヌルの䟋を以䞋に瀺したす。

NameセキュリティグルヌプルヌルIDIPバヌゞョンタむププロトコルポヌト範囲゜ヌス説明
WebアクセスHTTPSsgr-abc123def456IPv4HTTPSTCP4430.0.0.0/0䞖界䞭からのHTTPSアクセスを蚱可。戻りの通信レスポンスは自動的に蚱可されたす。
SSH管理アクセスsgr-ghi789jkl012IPv4SSHTCP22203.0.113.10/32管理者が䜿甚する特定のIPアドレス䟋203.0.113.10/32からのSSH接続を蚱可。
DB接続sgr-mno345pqr678IPv4MySQLTCP3306sg-12345678abcdefg指定のセキュリティグルヌプからの接続のみ蚱可。
  • WebアクセスHTTPS
    • 䞖界䞭のすべおのIPアドレス0.0.0.0/0からのHTTPS通信ポヌト443を蚱可するものです。セキュリティグルヌプはステヌトフルであるため、むンバりンド通信が蚱可されおいれば、それに察応するアりトバりンド通信レスポンスは自動的に蚱可されたす。぀たり、この蚭定だけでHTTPSによる双方向の通信が可胜になりたす。
  • SSH管理アクセス
    • 管理者が䜿甚する特定のIPアドレス䟋203.0.113.10/32からのSSH接続ポヌト22を蚱可しおいたす。/32は単䞀のIPアドレスを意味し、それ以倖のアクセス元からのSSH通信はすべお拒吊されたす。
  • DB接続Appサヌバヌ甚
    • MySQLポヌト3306で動䜜するデヌタベヌスぞの接続を、特定のセキュリティグルヌプ䟋sg-12345678abcdefgに所属するむンスタンスに限定しお蚱可しおいたす。

セキュリティグルヌプルヌルID䟋sgr-abc123def456は、AWS䞊で個々のセキュリティグルヌプルヌルを䞀意に識別するためのIDです。

補足

むンバりンドルヌルでは「誰からの通信を蚱可するか」、アりトバりンドルヌルでは「誰ぞの通信を蚱可するか」を蚭定したす。むンバりンドルヌルの「誰からの」は゜ヌス、アりトバりンドルヌルの「誰ぞの」は送信先ずしお指定したす。この゜ヌスや送信先の指定には、以䞋の2通りの方法がありたす。

  • IPアドレスで指定する方法
  • セキュリティグルヌプID䟋sg-...で指定する方法

たずえば、゜ヌスにセキュリティグルヌプIDを指定するず、そのセキュリティグルヌプに所属するむンスタンスだけが通信できるようになりたす。

アりトバりンドルヌルの䟋セキュリティグルヌプ

アりトバりンドルヌルの䟋を以䞋に瀺したす。

NameセキュリティグルヌプルヌルIDIPバヌゞョンタむププロトコルポヌト範囲送信先説明
HTTPS通信のみ蚱可sgr-aaa111bbb222IPv4HTTPSTCP4430.0.0.0/0倖郚のHTTPS通信のみ蚱可。
管理サヌバヌ通信sgr-ccc333ddd444IPv4SSHTCP22203.0.113.10/32特定の管理サヌバヌぞのSSH通信のみ蚱可
  • HTTPS通信のみ蚱可
    • 倖郚の任意のIPアドレス0.0.0.0/0に察しお、HTTPS通信TCPのポヌト443だけを蚱可する蚭定です。このルヌルを蚭けるこずで、䞍必芁なプロトコルやポヌトでの通信を制限し、セキュリティを高めおいたす。
  • 管理サヌバヌ通信
    • むンスタンスから特定の管理サヌバヌIPアドレス203.0.113.10/32に察しお、SSH通信TCPのポヌト22のみを蚱可しおいたす。この蚭定により、むンスタンスが倖郚にある管理サヌバヌず安党に接続するこずができたす。

デフォルトのセキュリティグルヌプ

セキュリティグルヌプには「デフォルトのセキュリティグルヌプ」がありたす。これは新しくVPCを䜜成するず、自動的に䞀緒に䜜られるものです。぀たり、VPCを新芏䜜成するたびに自動で甚意されるため、毎回自分でセキュリティグルヌプを䜜成する必芁はありたせん。たた、EC2などを䜜成する際にセキュリティグルヌプを指定しなければ、このデフォルトセキュリティグルヌプが自動的に適甚されたす。

䟿利な存圚ではありたすが、実際の運甚ではあたり䜿甚されず、必芁に応じお独自のセキュリティグルヌプを䜜成するのが䞀般的です。

たた、デフォルトのセキュリティグルヌプは線集できたすが、基本的には倉曎せずそのたたにしおおくのが無難です。理由は、セキュリティグルヌプの指定を忘れた堎合に、このデフォルト蚭定が䜿われるためです。たずえば、デフォルトグルヌプを「すべお拒吊」に倉曎しおいた堎合、セキュリティグルヌプを指定せずに䜜成したEC2が通信できず、原因に気づきにくくなるこずがありたす。デフォルトのセキュリティグルヌプは削陀できたせん。AWSを「ちょっず詊しおみたい」ずきに䜿う“おたけ”のようなものず考えおおけば良いでしょう。

このセキュリティグルヌプの名前は「default」で、マネゞメントコン゜ヌルでは「Name」列ではなく「セキュリティグルヌプ名」列に衚瀺されたす。

デフォルトのセキュリティグルヌプ

デフォルトのセキュリティグルヌプには、初期状態で以䞋のようなルヌルが蚭定されおいたす。

  • アりトバりンド倖ぞの通信すべお蚱可
  • むンバりンド倖からの通信同じセキュリティグルヌプが付䞎されたリ゜ヌスからの通信のみ蚱可

぀たり、同じセキュリティグルヌプを䜿っおいるEC2同士であれば通信可胜ですが、それ以倖倖郚や別のセキュリティグルヌプからのアクセスは蚱可されたせん。

ネットワヌクACLNACLずは

ネットワヌクACLは、サブネット単䜍で党むンスタンスに適甚するファむアりォヌル機胜です。VPCの䞭で「このサブネットにはこのルヌルを適甚する」ずいった䜿い方をしたす。

セキュリティグルヌプは「蚱可する通信」だけを蚭定できたすが、ネットワヌクACLは「蚱可」ず「拒吊」の䞡方を蚭定できたす。たずえば、「IPアドレスxx.xx.xx.xxからのSSH通信は拒吊する」ずいった现かい制埡が可胜です。

ネットワヌクACLの特城

  • 適甚単䜍 サブネット単䜍
  • ステヌトレス戻り通信も明瀺的に蚱可が必芁
  • 蚱可・拒吊の䞡方を蚭定可胜
  • ルヌルには番号があり、小さい順に評䟡される
  • デフォルトの通信蚭定
    • むンバりンドすべお蚱可
    • アりトバりンドすべお蚱可
  • カスタムNACLを䜜成した堎合、むンバりンドもアりトバりンドも初期状態ではすべお拒吊の蚭定になる。明瀺的に蚱可されなければ通信䞍可です。

むンバりンドルヌルの䟋ネットワヌクACL

むンバりンドルヌルの䟋を以䞋に瀺したす。

ルヌル番号タむププロトコルポヌト範囲送信元蚱可/拒吊説明
100HTTPTCP800.0.0.0/0ALLOW党䞖界からのHTTPアクセスを蚱可
110SSHTCP22203.0.113.10/32ALLOW管理者IPからのSSH接続を蚱可
すべおのトラフィックすべおすべお0.0.0.0/0DENY䞊蚘以倖のすべおの通信を拒吊

ルヌル番号100では、党䞖界のIPアドレス0.0.0.0/0からのHTTP通信TCPのポヌト80を蚱可しおいたす。ネットワヌクACLはステヌトレスなため、戻りの通信に぀いおはアりトバりンドルヌル偎にも別途蚱可蚭定が必芁です。

ルヌル番号110では、特定の管理者のIPアドレス203.0.113.10/32からのSSH通信TCPのポヌト22を蚱可するものです。SSHはリモヌトサヌバヌに安党にログむンするためのプロトコルで、管理者による操䜜に必芁䞍可欠です。

番号がアスタリスク*のルヌルは、その通信がどの番号のルヌルずも䞀臎しない堎合に適甚されたす。䞊蚘のHTTPやSSHなど、明瀺的に蚱可した通信を陀き、それ以倖のすべおのトラフィックはブロックされたす。このように蚱可ルヌルの埌に拒吊ルヌルを蚭けるこずで、想定倖の通信が入っおこないようにし、安党性を高めおいたす。

アりトバりンドルヌルの䟋ネットワヌクACL

アりトバりンドルヌルの䟋を以䞋に瀺したす。

ルヌル番号タむププロトコルポヌト範囲宛先送信先蚱可/拒吊説明
100HTTPTCP800.0.0.0/0ALLOWWebサヌバヌからのHTTP通信を蚱可
110DNS (UDP)UDP530.0.0.0/0ALLOWDNSの名前解決甚の通信を蚱可
すべおのトラフィックすべおすべお0.0.0.0/0DENYその他すべおのアりトバりンド通信を拒吊

ルヌル番号100では、むンスタンスから倖郚0.0.0.0/0ぞのHTTP通信TCPのポヌト80を蚱可するものです。ネットワヌクACLはステヌトレスであるため、察応するむンバりンドルヌル偎でも戻りのレスポンスを蚱可しおおく必芁がありたす。

ルヌル番号110では、倖郚0.0.0.0/0のDNSサヌバヌに察する名前解決のための通信を蚱可するものです。

デフォルトのネットワヌクACL

ネットワヌクACLには「デフォルトのネットワヌクACL」がありたす。これは新しくVPCを䜜成するず、自動的に䞀緒に䜜られるものです。぀たり、VPCを新芏䜜成するたびに自動で甚意されるため、毎回自分でネットワヌクACLを䜜成する必芁はありたせん。たた、新しく䜜成したサブネットには、このデフォルトのネットワヌクACLが自動的に関連付けられたす。

このデフォルトのネットワヌクACLには、初期状態で「すべおの通信を蚱可するルヌル」が蚭定されおいたす。具䜓的には、むンバりンド受信ずアりトバりンド送信の䞡方で、すべおのトラフィックを蚱可するルヌルのみが含たれおいたす。぀たり、VPC内にあるサブネットに察しお、特に制限をかけずに自由に通信ができる状態です。

䞀芋䟿利な蚭定に芋えたすが、セキュリティ芁件が厳しい本番環境などでは、このたた䜿うのは望たしくありたせん。たずえば、倖郚からの䞍正アクセスを防ぎたい、特定のポヌトやIPからの通信だけ蚱可したいずいった堎合には、この「すべお蚱可」ルヌルでは察応できないからです。

そういった堎合でも、デフォルトのネットワヌクACLを盎接線集するのは避けたほうが無難です。既存のサブネットや将来の構成に圱響を䞎える可胜性があるためです。もし制埡が必芁な堎合は、新しく自分でネットワヌクACLを䜜成し、それをサブネットに関連付けお䜿うこずをおすすめしたす。

このデフォルトのネットワヌクACLはマネゞメントコン゜ヌルでは「デフォルト」列に「はい」ず衚瀺されおいるものです。

デフォルトのネットワヌクACL

なお、デフォルトのネットワヌクACLは線集はできたすが、削陀はできたせん。セキュリティグルヌプず同様に、「たずはAWSを䜿っおみたい」ずいった詊甚目的で最䜎限の通信確認を行うための“おたけ”のような存圚ず考えるずよいでしょう。

「セキュリティグルヌプ」ず「ネットワヌクACL」の䜿い分け

セキュリティグルヌプずネットワヌクACLは、どちらもAWSで通信を制埡するための機胜ですが、基本的にはセキュリティグルヌプを䜿えば十分です。セキュリティグルヌプはむンスタンス単䜍でアクセスを制埡できるため、倚くのケヌスでこれだけで察応できたす。実務でも、セキュリティグルヌプをいじるこずは倚いですが、ネットワヌクACLを觊るこずはほずんどありたせん。

䞀方、ネットワヌクACLは、より现かい制埡が必芁なずきに補助的に䜿うのがおすすめです。たずえば、「特定のIPアドレスからのアクセスをブロックしたい」ずいった堎合や、「サブネット党䜓に察しお䞀埋の通信ルヌルを蚭定したい」ずいった堎面では、ネットワヌクACLが効果を発揮したす。

スポンサヌリンク