TL; DR
Ada sejumlah alasan untuk menggunakan variabel lingkungan alih-alih file konfigurasi, tetapi dua yang paling umum untuk diabaikan adalah nilai utilitas dari konfigurasi out-of-band dan peningkatan pemisahan antara server, aplikasi, atau peran organisasi. Daripada menyajikan daftar lengkap semua alasan yang mungkin, saya hanya membahas dua topik ini dalam jawaban saya, dan menyentuh ringan pada implikasi keamanannya.
Konfigurasi Keluar-Band: Memisahkan Rahasia dari Kode Sumber
Jika Anda menyimpan semua rahasia Anda di file konfigurasi, Anda harus mendistribusikan rahasia itu ke setiap server. Itu berarti memeriksa rahasia menjadi kontrol revisi di samping kode Anda, atau memiliki repositori atau mekanisme distribusi yang sepenuhnya terpisah untuk rahasia.
Enkripsi rahasia Anda tidak benar-benar membantu menyelesaikan masalah ini. Yang perlu dilakukan hanyalah mendorong masalah ke satu penghapusan, karena sekarang Anda juga harus khawatir tentang manajemen dan distribusi utama!
Singkatnya, variabel lingkungan adalah pendekatan untuk memindahkan data per-server atau per-aplikasi dari kode sumber ketika Anda ingin memisahkan pengembangan dari operasi. Ini sangat penting jika Anda telah menerbitkan kode sumber!
Tingkatkan Pemisahan: Server, Aplikasi, dan Peran
Meskipun Anda tentu bisa memiliki file konfigurasi untuk menyimpan rahasia Anda, jika Anda menyimpan rahasia dalam kode sumber Anda memiliki masalah kekhususan. Apakah Anda memiliki cabang atau repositori terpisah untuk setiap set rahasia? Bagaimana Anda memastikan set rahasia sampai ke server yang tepat? Atau apakah Anda mengurangi keamanan dengan memiliki "rahasia" yang sama di mana-mana (atau dapat dibaca di mana-mana, jika Anda memiliki semuanya dalam satu file), dan karenanya merupakan risiko yang lebih besar jika kontrol keamanan satu sistem gagal?
Jika Anda ingin memiliki rahasia unik di setiap server, atau untuk setiap aplikasi, variabel lingkungan akan menghilangkan masalah karena harus mengelola banyak file. Jika Anda menambahkan server, aplikasi, atau peran baru, Anda tidak perlu membuat file baru atau memperbarui yang lama: Anda cukup memperbarui lingkungan sistem yang dimaksud.
Berpisah Pikiran tentang Keamanan
Walaupun eksplorasi menyeluruh terhadap keamanan kernel / memori / file berada di luar cakupan untuk jawaban ini, ada baiknya menunjukkan bahwa variabel lingkungan per-sistem yang diterapkan dengan benar tidak kalah aman daripada rahasia "terenkripsi". Dalam kedua kasus, sistem target masih harus menyimpan rahasia yang didekripsi dalam memori di beberapa titik untuk menggunakannya.
Ini juga layak menunjukkan bahwa ketika nilai disimpan dalam memori yang mudah menguap pada node yang diberikan, tidak ada file pada disk yang dapat disalin dan diserang secara offline. Ini umumnya dianggap sebagai keuntungan bagi rahasia di dalam memori, tetapi ini tentu saja tidak konklusif.
Masalah variabel lingkungan vs teknik manajemen rahasia lainnya benar-benar lebih tentang keamanan dan kegunaan pertukaran daripada tentang absolut. Jarak tempuh Anda mungkin beragam.