Mengikuti kerentanan OpenSSL yang baru-baru ini menyentuh hati , saya ingin menjaga mesin-mesin EC2 saya diperbarui secara teratur. Pendekatan naif akan menetapkan pekerjaan cron per jam untuk pembaruan keamanan ( sudo apt-get update && sudo unattended-upgrade
).
Apakah ada risiko melakukan itu? Apakah ada mekanisme pembaruan yang disarankan untuk mesin EC2?
sumber
Kami telah menggunakan
unattended-upgrades
dari 2015 hingga 2020 tanpa masalah. Kami memiliki pengaturan kecil (di DigitalOcean) dengan:nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
Berdasarkan kinerja masa lalu yang baik, melakukan pembaruan dengan cara ini terasa lebih aman daripada tidak melakukannya. Tapi itu belum tentu jaminan untuk masa depan!
Ini mungkin bukan ide yang bagus untuk itu
apache
, berdasarkan laporan dari pengguna lain, dan pengalamanapache
pembaruan saya yang lalu . [Lihat di atas, dan di sini ]Dengan
unattended-upgrades
, intervensi manual masih akan diperlukan ketika rilis mendekati EOL .(Selain dari pertanyaan: Dalam pengalaman saya dengan TWiki, WordPress dan Jenkins, menjaga agar aplikasi-aplikasi ini tetap mutakhir sebenarnya merupakan masalah yang lebih besar daripada OS itu sendiri, meskipun tentu saja kita harus benar-benar melakukan keduanya. Untuk ketenangan pikiran, Anda bisa memberi kotak pasir pada aplikasi yang menghadap Internet sebagai proses non-root yang berjalan di dalam wadah Docker.)
Tetapi karena Anda bertanya tentang praktik terbaik , pendekatan utama yang direkomendasikan dalam dokumentasi AWS adalah:
Ini dapat dilakukan sebagai bagian dari strategi penyebaran biru-hijau . Keuntungannya di sini adalah Anda dapat menjalankan tes terhadap server baru Anda sebelum mengalihkan lalu lintas. Jika pengujian Anda menyeluruh, maka secara teori pembaruan Anda dapat sepenuhnya otomatis, diverifikasi sebelum ditayangkan, dan tanpa downtime.
Keuntungan lain:
Tes ini dapat memberi Anda peringatan lanjutan jika diperlukan perhatian manusia (berbeda dengan
unattended-upgrades
, ketika peringatan hanya datang dari pengguna Anda setelah masalahnya hidup!)Jika sistem Anda dikompromikan, atau Anda memutuskan untuk beralih penyedia, pendekatan ini akan membuatnya mudah untuk meluncurkan penyebaran baru. Strategi penyebaran Anda ditulis, bukan memori kuno.
Tetapi tentu saja ada lebih banyak pengaturan yang diperlukan untuk pendekatan ini daripada hanya menginstal
unattended-upgrades
, dan lebih banyak kerumitan, sehingga masih ada ruang untuk kesalahan.AWS juga menyebutkan melakukan "Update Dependencies stack command", yang tampaknya merupakan cara resmi mereka untuk melakukan sesuatu yang serupa
unattended-upgrades
. Tampaknya itu dapat dipicu dari antarmuka Instans mereka, tetapi saya tidak yakin apakah itu dapat otomatis.sumber