¿Cómo evitar / llamadas de firewall a la API de metadatos de instancia de AWS EC2?


14

La API de metadatos de instancia de AWS EC2 ofrece muchas funciones útiles. Cualquier persona en la instancia EC2 real puede hacer una llamada http://169.254.169.254/y ver metadatos para la instancia desde la que se realizó la llamada. La seguridad de la API es tal que solo comprueba que la llamada se origina en la instancia. Por lo tanto, si estoy permitiendo que alguien ejecute el código en mi instancia, me gustaría saber cómo bloquear mejor el acceso a esa URL en particular mientras conservo el acceso.

Como punto culminante, me sorprendió descubrir que también se puede acceder a la API de metadatos a través de http://instance-data/(que encontré por accidente en alguna parte).

Puedo inspeccionar las URL que llama todo el código que se ejecuta en esta instancia, pero supongo que este no es un buen enfoque dadas las direcciones IPv6 (posiblemente), o algunas codificaciones de URI extrañas que se resolverían en la IP de metadatos (169.254 .169.254), o algunas URL no documentadas (parece) como http://instance-data/.

Respuestas:


25

Cortafuegos.

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

Esta regla prohíbe a cualquier usuario que no sea el usuario raíz abrir conexiones a 169.254.169.254.


Esto no impedirá el uso "normal" de este servicio. Por lo general, el servicio es llamado por / obo el usuario EC2 que casi nunca es la raíz.
Sam-T

@ Sam-T Si necesita que el usuario ec2 acceda a él, ciertamente puede escribir una regla para permitirlo también.
Michael Hampton

Si evita en el nivel de firewall, para permitir solo root, no estoy seguro de cómo lo habilitaría para el usuario de EC2 (simplemente no lo sé). Por usuario de EC2, es decir, quien inició la instancia, entiendo que los metadatos son accedidos por este (y cualquier otro) usuario de EC2 en la instancia. ¿Podría dar un ejemplo
Sam-T
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.