はじめに
セキュリティグループの挙動について実験してみました。
やりたいこと
同じセキュリティグループを割り当てられたインスタンス同士の通信がどうなるのかを確認します。
実験 | インバウンドルール | アウトバウンドルール | ||||||
タイプ | プロトコル | ポート範囲 | ソース | タイプ | プロトコル | ポート範囲 | 送信先 | |
実験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
おわりに
んなこと知ってるわ!と叱られそうな実験で、当たり前と言えば当たり前の挙動ですが、実際にやってみることに意義があると思っているので、想定通りの結果が得られて良かったです。
以上