Berbagi file Compose VPN? Hapus rahasia dari salinan hasil render
Kunci privat bisa berada di YAML, di nilai env, atau di keluaran hasil resolusi yang tidak dilihat siapa pun. Periksa salinan yang benar-benar Anda lampirkan.
Setiap kali Anda membagikan file Compose, ada dua artefak: yang Anda tulis dan yang dirender alat setelah mengganti variabel. Yang kedua sering lebih sensitif daripada yang pertama, dan itulah yang orang tempelkan ke laporan masalah tanpa membacanya. Jika Anda hanya meninjau file sumber, Anda meninjau dokumen yang salah.
Bandingkan apa yang bisa dimuat tiap salinan sebelum memutuskan apa yang harus dihapus.
Model hasil render adalah dokumen yang berbeda
Compose menyelesaikan variabel lingkungan, menggabungkan file penimpa, dan menghasilkan konfigurasi efektif yang tidak lagi bisa dibedakan pembaca dari nilai yang ditulis tangan. Referensi seperti nama variabel di sumber menjadi token akun itu sendiri di keluaran. Struktur yang membuat file berguna untuk diagnosis bertahan melewati transformasi itu; begitu juga segala hal yang seharusnya tidak pernah ada di dalamnya.
Render sendiri file itu sebelum Anda melampirkannya, dan perlakukan keluaran tersebut sebagai artefak yang sedang ditinjau. Jika Anda tidak bisa merendernya, Anda tidak bisa tahu apa yang akan Anda terbitkan.
Rahasia ada di lebih banyak tempat daripada kolom kunci
Mulai dari yang jelas: kunci privat, kunci yang dibagikan sebelumnya, token, kata sandi, dan URL koneksi yang menyematkan kredensial. Lalu lihat semua yang ditunjuk file, karena referensi bukan redaksi. File env yang di-mount ke layanan, file konfigurasi yang di-bind-mount dari host, label yang membawa token, dan argumen perintah yang memuat kata sandi semuanya ikut terbawa penerapan bahkan ketika YAML terlihat bersih. Kunci yang ditempel ke variabel dengan nama yang menenangkan tetap kunci.
Jalur host dan nama layanan membocorkan jenis informasi kedua. Nama direktori rumah, nama host internal, atau rentang jaringan dapat mengidentifikasi seseorang atau organisasi tanpa memuat satu pun kredensial, dan konteks itu layak dihapus karena alasan yang sama.
Deklarasi rahasia bukanlah rahasianya
Objek rahasia Compose memisahkan deklarasi dari materinya: layanan mendapat jalur atau target, dan isinya hidup di tempat lain. Mempertahankan deklarasi sambil mengganti materinya biasanya adalah pertukaran yang tepat, karena peninjau perlu melihat bahwa sebuah rahasia ada dan bagaimana ia di-mount. Yang tidak boleh bertahan adalah isinya sendiri.
Label dan komentar layak mendapat perlakuan yang sama. Komentar yang menyebutkan jalur vault mana yang menyimpan kunci produksi memberi tahu penyerang ke mana harus melihat meski tidak memuat kunci apa pun.
Pertahankan bentuknya agar file tetap bisa mendiagnosis
Redaksi yang menghapus mode jaringan, versi image, atau pengaturan kapabilitas menghasilkan file yang tidak bisa di-debug siapa pun. Ganti nilai sensitifnya dan pertahankan hubungannya: layanan mana me-mount apa, ke jaringan mana ia bergabung, perangkat mana yang ia butuhkan. Itulah bagian yang dipakai pembaca untuk menjelaskan rute yang hilang atau perangkat yang tidak tersedia. Itu juga versi yang bisa dibandingkan rekan kerja dengan penerapan mereka yang berjalan.
docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml
Jangan terapkan salinan yang sudah diredaksi seolah-olah itu aslinya yang berjalan. Itu adalah deskripsi, dan deskripsi yang diedit agar terlihat aman akan gagal dengan cara yang tampak seperti bug konfigurasi.
Jika materi sudah terekspos, ganti materi itu
Menghapus lampiran tidak menghapus salinan yang sudah dibuat orang lain, dan mirror serta cache menyimpan salinan sendiri. Gunakan proses pencabutan dan penggantian dari penerbit untuk apa pun yang bocor, lalu perbarui penerapannya. Urutannya penting, karena mengganti lebih dulu dan mencabut kemudian meninggalkan jendela dengan dua kredensial yang sah.
Di utas dukungan, awali dengan galat yang tepat, versi image, mode jaringan, dan satu pengaturan non-rahasia yang penting. Kombinasi itu menjelaskan perangkat yang hilang atau rute yang rusak jauh lebih sering daripada kuncinya.