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的连接。