Mengelola kredensial keamanan IAM untuk beberapa wadah buruh pelabuhan

11

Dalam lingkungan EC2 sederhana, mengelola akses ke sumber daya AWS lainnya cukup mudah dengan peran dan kredensial IAM (secara otomatis diambil dari metadata misalnya). Bahkan lebih mudah dengan CloudFormation, di mana Anda dapat membuat peran saat Anda menetapkan peran aplikasi tertentu untuk sebuah instance.

Jika saya ingin bermigrasi ke Docker dan memiliki semacam penyebaran M-ke-N, di mana saya memiliki mesin M, dan aplikasi N berjalan di atasnya, bagaimana saya harus membatasi akses ke sumber daya AWS per-aplikasi? Metadata instance dapat diakses oleh siapa saja di host, jadi saya ingin setiap aplikasi dapat melihat / memodifikasi data setiap aplikasi lain dalam lingkungan penyebaran yang sama.

Apa praktik terbaik untuk memasok kredensial keamanan ke wadah aplikasi yang berjalan di lingkungan seperti itu?

Alex B
sumber

Jawaban:

5

Ada proyek ini: https://github.com/dump247/docker-ec2-metadata

Ini bertindak sebagai proksi ke titik akhir meta-data instance, mengembalikan peran khusus ke wadah. Saya belum pernah menggunakannya sebelumnya, tetapi tampaknya untuk memecahkan kasus penggunaan yang Anda gambarkan.

pbitty
sumber
1

Menerapkan hak istimewa paling sedikit menggunakan Peran dan Grup Keamanan (meskipun Anda tidak menyebutkannya) di AWS dengan EC2 adalah praktik terbaik untuk menyediakan lingkungan yang aman untuk aplikasi hosting Anda, terutama saat menggunakan CloudFormation. Namun, ketika Anda melapisi lingkungan Docker multi-tenant di atasnya adalah saat semuanya mulai berantakan.

Jawaban terbaik saat ini untuk terus mendapatkan manfaat dari Peran sambil menerapkan hak istimewa paling tidak adalah dengan tidak menggunakan pendekatan multi-tenant. Pada dasarnya, gunakan pemetaan satu-ke-satu antara instance EC2 dan aplikasi, tetapi Anda masih bisa menggunakan cluster / ASG. Docker masih merupakan alat yang sangat berguna dan kuat yang dapat Anda gunakan untuk mengelola dan menggunakan aplikasi Anda, tetapi untuk saat ini Peran berlaku pada instance EC2 dan bukan wadah. Itu berarti menggunakan VM terpisah untuk setiap aplikasi untuk saat ini.

Jika multi-tenant lebih penting daripada Peran maka jawabannya adalah tidak menggunakan Peran dan mendistribusikan kredensial AWS ke aplikasi Anda menggunakan beberapa metode lain.

Sayangnya tidak satu pun dari solusi ini yang sangat diinginkan dan saya berharap titik nyeri khusus ini akan ditangani oleh AWS di masa depan terutama karena semakin populernya wadah.

JaredHatfield
sumber