セキュリティグループやネットワークACLのOutboundで許可していないにも関わらず、フィルタされないトラフィックがあるらしい。
と、VPCのドキュメントに書いてあったのに知らなかった…
Lambdaは例外ぽい(後述)。
Amazon セキュリティグループとネットワーク ACL では、リンクローカルアドレス(169.254.0.0/16)との間のトラフィック、または AWS 予約済みアドレス(各サブネットの最初の 4 つの IP アドレスと最後の 1 つのアドレス)との間のトラフィックをフィルタしません。
VPC のセキュリティ
具体的には下記のサービスがそれにあたる。
これらのトラフィックはVPCフローログにもでない。
- DNS (AmazonProvidedDNS)
- DHCP
- Amazon EC2 インスタンスメタデータ
- KMS (Windowsインスタンスのライセンス管理)
- サブネットでのルーティング
Lambdaの場合
ただし、LambdaからVPC内のAmazonProvidedDNSで名前解決しようとするとリジェクトされた。
また、リジェクトされたトラフィックがVPCフローログに残るようだった。
LambdaからAmazonProvidedDNSを使って名前解決したい時は、Lambdaに設定したセキュリティグループのOutboundで明示的にDNSの設定を追加してやる必要がある。