Назад | Перейти на главную страницу

Как предотвратить вызовы / брандмауэр для API метаданных AWS EC2?

В API метаданных экземпляров AWS EC2 предоставляет множество полезных функций. Любой человек в реальном экземпляре EC2 может позвонить в http://169.254.169.254/ и просмотреть метаданные для экземпляра, из которого был сделан вызов. Безопасность API такова, что он проверяет только то, что вызов исходит от экземпляра. Поэтому, если я разрешаю кому-то запускать код на моем экземпляре, я хотел бы знать, как лучше всего заблокировать доступ к этому конкретному URL-адресу, сохранив при этом доступ сам.

В качестве основного момента я был удивлен, обнаружив, что к API метаданных также можно получить доступ через http://instance-data/ (которую я где-то случайно нашел).

Я могу проверить URL-адреса, вызываемые всем кодом, запущенным в этом экземпляре, но я предполагаю, что это не лучший подход, учитывая адреса IPv6 (возможно) или некоторые странные кодировки URI, которые будут преобразованы в IP-адрес метаданных (169.254 .169.254) или некоторые недокументированные (кажется) URL-адреса, например http://instance-data/.

Брандмауэр выключен.

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

Это правило запрещает любому пользователю, кроме пользователя root, открывать соединения с 169.254.169.254.