Bagaimana cara mencegah / firewall menelepon ke AWS EC2 Instance Metadata API?


14

The AWS EC2 Instance Metadata API menyediakan banyak fungsi yang berguna. Siapa pun di instance EC2 yang sebenarnya dapat melakukan panggilan ke http://169.254.169.254/dan melihat metadata untuk instance panggilan itu dibuat. Keamanan API sedemikian rupa sehingga hanya memeriksa bahwa panggilan berasal dari instance. Oleh karena itu, jika saya mengizinkan seseorang untuk menjalankan kode pada contoh saya, saya ingin tahu cara terbaik memblokir akses ke url tertentu sambil mempertahankan akses sendiri.

Sebagai highlight, saya terkejut menemukan bahwa API Metadata juga dapat diakses melalui http://instance-data/(yang saya temukan secara tidak sengaja di suatu tempat).

Saya dapat memeriksa url yang dipanggil oleh semua kode yang berjalan pada contoh ini, tetapi saya berasumsi bahwa ini bukan pendekatan yang baik mengingat alamat IPv6 (mungkin), atau beberapa pengkodean URI aneh yang akan menyelesaikan ke dalam Metadata IP (169.254 .169.254), atau beberapa URL yang tidak berdokumen (sepertinya) http://instance-data/.

Jawaban:


25

Matikan firewall.

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

Aturan ini melarang pengguna selain pengguna root untuk membuka koneksi ke 169.254.169.254.


Apakah ini tidak akan mencegah penggunaan "normal" dari layanan ini. Biasanya layanan ini dipanggil oleh / obo pengguna EC2 yang hampir tidak pernah menjadi root.
Sam-T

@ Sam-T Jika Anda memerlukan pengguna ec2 untuk mengaksesnya, Anda tentu dapat menulis aturan untuk memperbolehkannya juga.
Michael Hampton

Jika Anda mencegah di level firewall - untuk mengizinkan hanya root, tidak yakin bagaimana Anda akan mengaktifkannya untuk pengguna EC2 (Saya hanya tidak tahu). Oleh pengguna EC2 - Maksud saya siapa pun yang memulai instance- pemahaman saya adalah metadata diakses oleh pengguna EC2 ini (dan lainnya) pada instance. Bisakah Anda memberi contoh
Sam-T
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.