如何防止/防火墙调用 AWS EC2 实例元数据 API?

Tri*_*tan 15 ip amazon-ec2 metadata

AWS EC2实例元数据API提供了很多有用的功能。实际 EC2 实例上的任何人都可以调用http://169.254.169.254/并查看发出调用的实例的元数据。API 的安全性在于它只检查调用是否来自实例。因此,如果我允许某人在我的实例上运行代码,我想知道如何最好地阻止对该特定 url 的访问,同时自己保留访问权限。

作为亮点,我惊讶地发现元数据 API 也可以通过http://instance-data/(我在某处偶然发现的)访问。

我能够检查在此实例上运行的所有代码所调用的 url,但我认为这不是一个好方法,因为 IPv6 地址(可能)或一些奇怪的 URI 编码会解析为元数据 IP (169.254 .169.254),或一些未记录(似乎)的 URL,如http://instance-data/.

Mic*_*ton 25

关闭防火墙。

iptables -A OUTPUT -m owner ! --uid-owner root -d 169.254.169.254 -j DROP
Run Code Online (Sandbox Code Playgroud)

此规则禁止 root 用户以外的任何用户打开与 169.254.169.254 的连接。