困っていること
セキュリティの要件が厳しいため、セキュリティグループのアウトバウンドルールで特定の IP アドレス以外の通信をしないような設計が必要です。
設計中における調査にて、EC2 からインスタンスメタデータを取得するために 169.254.169.254 への通信が必要との記載がありました。
インスタンスメタデータへの通信を行う際に、セキュリティグループのアウトバウンドルールでの許可は必要であるかを確認したいです。
どう解決すればいいの?
インスタンスメタデータへの通信を行う際にセキュリティグループでの許可は不要です。
その他、下記宛先のトラフィックはセキュリティグループではフィルターされません。
- Amazon ドメインネームサービス (DNS)
- VPC の CIDR に2をプラスした値(例:10.0.0.0/16 → 10.0.0.2, 172.31.0.0/16 → 172.31.0.2)
- 169.254.169.253
- Amazon Dynamic Host Configuration Protocol (DHCP)
- サブネットの CIDR に 1 をプラスした値(例:172.31.32.0/20 → 172.31.32.1)
- Amazon EC2 インスタンスメタデータ
- 169.254.169.254
- Amazon ECS タスクメタデータエンドポイント
- 169.254.170.2
- Windows インスタンスのライセンスアクティベーション
- 169.254.169.250
- Amazon Time Sync Service
- 169.254.169.123
おまけ
CIDR 範囲 172.31.32.0/20 のサブネットに EC2(Amazon Linux 2) を起動した際の、dhclient--eth0.lease
を調べてみました。
なお、172.31.44.38
は EC2 のプライベート IP です。
$ cat dhclient--eth0.lease
lease {
interface "eth0";
fixed-address 172.31.44.38;
option subnet-mask 255.255.240.0;
option routers 172.31.32.1;
option dhcp-lease-time 3600;
option dhcp-message-type 5;
option domain-name-servers 172.31.0.2;
option dhcp-server-identifier 172.31.32.1;
option interface-mtu 9001;
option broadcast-address 172.31.47.255;
option host-name "ip-172-31-44-38";
option domain-name "ap-northeast-1.compute.internal";
renew 3 2024/01/17 03:07:35;
rebind 3 2024/01/17 03:33:40;
expire 3 2024/01/17 03:41:10;
}
option dhcp-server-identifier
がサブネットの CIDR に 1 をプラスした値になっていました。
/var/log/messages にも、172.31.32.1 から DHCPACK が送られているログがありました。
/var/log/messages
Jan 17 02:41:10 ip-172-31-44-38 dhclient[1999]: DHCPACK from 172.31.32.1 (xid=0x6ebde855)
参考資料
セキュリティグループを使用して AWS リソースへのトラフィックを制御する - Amazon Virtual Private Cloud
VPCデフォルトのDNSサーバへの通信はSecurity GroupのOutboundルールで制御できないことを確認してみた | DevelopersIO
タスクメタデータエンドポイントバージョン 2 - Amazon Elastic Container Service
Amazon EC2 Windows インスタンスでの Windows アクティベーションの失敗を解決する | AWS re:Post