おれさまラボ

実際に手を動かして理解を深めるブログ。

AWS Security Group の挙動を確認してみた

はじめに

セキュリティグループの挙動について実験してみました。

やりたいこと

同じセキュリティグループを割り当てられたインスタンス同士の通信がどうなるのかを確認します。

f:id:naoto408:20200524151239p:plain

実験 インバウンドルール アウトバウンドルール
タイプ プロトコル ポート範囲 ソース タイプ プロトコル ポート範囲 送信先
実験1 N/A N/A N/A N/A すべてのトラフィック すべて すべて 0.0.0.0/0
実験2 すべての ICMP - IPv4 ICMP すべて 10.255.1.0/24 すべてのトラフィック すべて すべて 0.0.0.0/0
実験3 すべての ICMP - IPv4 ICMP すべて sg-xxxxx すべてのトラフィック すべて すべて 0.0.0.0/0

実験1の結果

インバウンドを何も許可していないので ping は通りません。

[ssm-user@ec2-b bin] $ ping 10.255.1.71
PING 10.255.1.71 (10.255.1.71) 56(84) bytes of data.
^C
--- 10.255.1.71 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1027ms
[ssm-user@ec2-a bin]$ ping 10.255.1.197
PING 10.255.1.197 (10.255.1.197) 56(84) bytes of data.
^C
--- 10.255.1.197 ping statistics ---
12 packets transmitted, 0 received, 100% packet loss, time 11258ms

このことから、同じセキュリティグループがついていたとしても、送信先NICに着信した段階でトラフィックが評価されることがわかります。

実験2の結果

インスタンスが配置されているサブネットからの ICMP 通信を許可したところ、Ping 疎通が取れました。

[ssm-user@ec2-b bin]$ ping 10.255.1.71
PING 10.255.1.71 (10.255.1.71) 56(84) bytes of data.
64 bytes from 10.255.1.71: icmp_seq=1 ttl=255 time=0.519 ms
64 bytes from 10.255.1.71: icmp_seq=2 ttl=255 time=0.457 ms
^C
--- 10.255.1.71 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1012ms
rtt min/avg/max/mdev = 0.457/0.488/0.519/0.031 ms
[ssm-user@ec2-a bin]$ ping 10.255.1.197
PING 10.255.1.197 (10.255.1.197) 56(84) bytes of data.
64 bytes from 10.255.1.197: icmp_seq=1 ttl=255 time=0.408 ms
64 bytes from 10.255.1.197: icmp_seq=2 ttl=255 time=0.425 ms
^C
--- 10.255.1.197 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1015ms
rtt min/avg/max/mdev = 0.408/0.416/0.425/0.022 ms

実験3の結果

インスタンスに関連付けている SG をソースとする ICMP 通信を許可したところ、実験2と同様に Ping 疎通がとれました。

[ssm-user@ec2-b bin]$ ping 10.255.1.71
PING 10.255.1.71 (10.255.1.71) 56(84) bytes of data.
64 bytes from 10.255.1.71: icmp_seq=1 ttl=255 time=0.706 ms
64 bytes from 10.255.1.71: icmp_seq=2 ttl=255 time=0.453 ms
^C
--- 10.255.1.71 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1028ms
rtt min/avg/max/mdev = 0.453/0.579/0.706/0.128 ms
[ssm-user@ec2-a bin]$ ping 10.255.1.197
PING 10.255.1.197 (10.255.1.197) 56(84) bytes of data.
64 bytes from 10.255.1.197: icmp_seq=1 ttl=255 time=3.58 ms
64 bytes from 10.255.1.197: icmp_seq=2 ttl=255 time=3.31 ms
^C
--- 10.255.1.197 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 3.311/3.447/3.584/0.148 ms

おわりに

んなこと知ってるわ!と叱られそうな実験で、当たり前と言えば当たり前の挙動ですが、実際にやってみることに意義があると思っているので、想定通りの結果が得られて良かったです。

以上