‫Saya menggunakan rahasia Docker untuk kata sandi saya, tetapi
‫ini hanya membuat file RAM di dalam wadah.
‫Jika seseorang meretas wadah, mereka dapat
‫melihat file seperti aplikasi saya.
‫Iya dan tidak.
‫Bagus. Kami akan terus berbicara. Apakah ada cara
‫yang lebih baik untuk melakukan ini? Enkripsikan isi rahasianya?
‫Kemudian dekripsi di dalam aplikasi dengan cara yang tidak bisa
‫diketahui oleh peretas.
‫Kenyataannya di sini
‫adalah bahwa aplikasi Anda harus memiliki rahasianya di suatu tempat,
‫dan mereka tidak akan dienkripsi dalam memori, kan.
‫Semua yang saya tahu adalah mendekripsi hal-hal terenkripsi, itu
‫mendekripsi ke dalam memori. Jika seorang hacker
‫memiliki root di wadah Anda, maka
‫itu akan bisa mendapatkan hal itu.
‫Jika mereka cukup cerdas, mereka akan bisa mendapatkan
‫barang itu, benar.
‫Langkah pertama adalah jangan menjalankan aplikasi Anda sebagai
‫root di wadah.
‫Kemudian, mereka tidak bisa bercanda dengan apa pun
‫di luar aplikasi. Mereka tidak dapat menjalankan utilitas
‫sistem lain dalam wadah yang mungkin bisa membaca semua memori, kan.
‫Hal kedua adalah benar-benar, cara paling aman
‫yang saya pikir telah kita lihat adalah sesuatu seperti lemari besi
‫dan satu kali kata sandi di mana mereka dibuat,
‫mereka digunakan oleh aplikasi Anda, dan kemudian mereka
‫dibuang dan tidak lagi baik. Kenyataannya adalah kebanyakan orang tidak
‫siap untuk itu. Sebagian besar aplikasi orang tidak bisa mengatasinya.
‫Anda tahu, Anda tidak dapat memutar kunci Twitter API setiap lima
‫menit untuk setiap aplikasi yang diluncurkan, benar.
‫Hal-hal seperti ini. Hal terbaik berikutnya
‫adalah mencegah file itu tidak pernah ada di disk
‫secara permanen.
‫Keamanan Kubernetes
‫dan keamanan Docker, ... rahasia maaf, rahasia Kubernetes,
‫dan rahasia Swarm adalah beberapa cara terbaik
‫yang pernah saya lihat dengan cara
‫menyimpan kata sandi pada file
‫palsu di RAM. Anda dapat mengatur izin tersebut sehingga
‫hanya dapat dibaca oleh aplikasi Anda, bukan.
‫Jadi, jika seseorang masuk entah bagaimana dengan pengguna yang berbeda,
‫bukan berarti Anda akan memiliki pengguna
‫yang berbeda dalam wadah, tetapi Anda dapat mengunci mereka sehingga mereka hanya
‫membaca, bahwa mereka hanya dapat dibaca oleh pengguna itu
‫aplikasi kamu. Semacam itu, benar.
‫Jadi, benar-benar itu.
‫Satu-satunya hal yang saya lihat lebih baik masih menyimpannya dalam
‫memori, masih menyimpannya tidak terenkripsi.
‫Hanya saja tidak menyimpannya secara lokal.
‫Jadi, Anda harus menggunakan API jarak jauh
‫seperti Vault, HashiCorp's Vault, atau sistem lain yang memberikan kata
‫sandi satu kali. Tetapi sekali lagi, hal-hal itu harus
‫dibangun di seluruh sistem Anda. Anda harus merancang
‫semuanya. Dan itu banyak pekerjaan, benar.
‫Sedangkan, menggunakan rahasia di Kubernetes dan Swarm,
‫Anda biasanya bisa menyelesaikannya di hari yang
‫sama, bukan. Anda dapat menerapkannya untuk
‫hampir semua aplikasi, bahkan jika harus menetapkannya sebagai variabel lingkungan karena
‫aplikasi yang lebih lama membutuhkan hal-hal dalam variabel lingkungan.
‫Jadi, Anda dapat memilikinya dalam rahasia dan kemudian, pada
‫saat runtime, minta rahasia itu dibuang ke variabel
‫lingkungan jika Anda harus. Tapi, saya katakan 99%
‫dari waktu, klien konsultasi saya, mereka berurusan dengan aplikasi warisan.
‫Ketika saya mengatakan warisan, saya benar-benar bermaksud segalanya sebelum
‫wadah, yang merupakan sebagian besar aplikasi, benar.
‫Kami telah menghabiskan 30 tahun membuat aplikasi
‫tanpa wadah sebelum memilikinya.
‫Jadi, kami punya banyak barang reguler.
‫Jadi, sebagian besar tim hanya mencari cara memasukkan barang ke
‫dalam wadah dan menyimpannya dienkripsi di disk, benar.
‫Jika mereka di disk, mereka dienkripsi.
‫Kubernetes dan Swarm dapat melakukannya.
‫Saya pikir jika Anda menggunakan rahasia, Anda sudah lebih
‫baik dari 99% orang yang saya lihat, karena sangat sedikit
‫orang yang menggunakan orkestrasi dan juga menggunakan rahasia.
‫Itu adalah kelompok yang sangat, sangat kecil, sekelompok orang.
‫Jadi, ya, saya pikir Anda cukup baik di sana.