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

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

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

我能够检查被这个实例上运行的所有代码所调用的url,但是我认为这不是一个好的方法给IPv6地址(可能),或一些奇怪的URI编码,将parsing成元数据IP(169.254 .169.254),或者一些没有logging的(看起来像) http://instance-data/

防火墙closures。

 iptables -A OUTPUT -m owner ! --uid-owner root -d 169.254.169.254 -j DROP 

此规则仅允许root用户打开到169.254.169.254的连接。