Saya tahu topik ini telah dibahas cukup banyak tetapi saya tidak dapat menemukan jawaban untuk situasi khusus saya.
Saat ini, saya menggunakan .gitignore
untuk mengecualikan konten sensitif dan menjaganya (file konfigurasi, dll) secara terpisah. Saat basis kode saya berkembang menjadi semakin banyak proyek, ini menjadi sangat sulit untuk dikelola dan saya juga tidak memiliki cara nyata untuk melacak perubahan atau membuat cadangan file dengan benar.
Ada beberapa alat untuk masalah ini, seperti git-secret
, Hashicorp Vault
dan git-crypt
tetapi tidak ada yang bekerja dengan Windows, di mana saya melakukan semua pengembangan saya (karena berbagai alasan).
Saat ini, saya adalah satu-satunya pengembang yang bekerja di perusahaan saya tanpa rencana untuk berkembang. Kontrol sumber (Gitlab) terutama digunakan untuk referensi saya sendiri dan kemampuan untuk merekam perubahan. Apakah mendorong beberapa koneksi string atau mengkonfigurasi file ke dalam kontrol sumber menjadi masalah atau risiko besar? Informasi itu saat ini duduk di drive jaringan, tidak aman (kecuali untuk izin NTFS)
Saya mendapatkan ide bahwa praktik terbaik bukan untuk mendorong hal ini ke kontrol sumber tetapi saya memiliki contoh Gitlab yang di-host secara pribadi yang tidak dapat diakses di luar jaringan lokal - apakah ini berarti ada risiko yang lebih kecil?
Jawaban:
Memikirkan hal ini secara holistik, ada beberapa hal yang perlu dipertimbangkan:
Perhatian pertama berkaitan dengan kebijakan. Jika perangkat lunak akan digunakan untuk jaringan yang terpisah, Anda dapat mengalami masalah kebijakan bahkan jika konfigurasi Anda dienkripsi.
Menghindari informasi sensitif
Lebih spesifik tentang apa yang sensitif. Misalnya, nama domain server mungkin tidak sensitif, tetapi alamat IP-nya mungkin (atau asosiasi keduanya). Biasanya nama pengguna dan kata sandi sensitif, serta clientId dan kunci rahasia (OAuth2).
Pilihan terbaik Anda adalah:
Beberapa database memungkinkan Anda memiliki string koneksi di mana nama pengguna dan kata sandi bukan bagian dari konten. Misalnya, Anda dapat menjalankan aplikasi di bawah akun layanan domain untuk terhubung ke SQL Server menggunakan keamanan terintegrasi. Atau Anda dapat menggunakan Dompet Oracle untuk merahasiakan nama pengguna / kata sandi di mesin target. Beberapa layanan OAuth2 memungkinkan Anda untuk menggunakan file .csv atau .json yang disimpan pada mesin di lokasi standar.
Dengan kata lain, lakukan apa pun yang Anda bisa untuk menghindari menyimpan informasi sensitif di tempat yang bukan miliknya. Jika Anda harus membuat perubahan pada aplikasi Anda untuk melihat lokasi pada disk untuk membaca bit sensitif Anda dapat mengaturnya sekali pada setiap server target dan hanya membacanya dari aplikasi Anda.
Server Konfigurasi
Steeltoe telah memindahkan pustaka integrasi Spring tertentu ke C #, dan mereka bahkan memiliki dukungan untuk server Spring Cloud Config . Server Spring Cloud Config memang membutuhkan repositori Git di jaringan penyebaran , tetapi memungkinkan Anda untuk menyesuaikan konfigurasi di tempat yang seharusnya. Jika aplikasi Anda cukup kompleks (mis. Layanan mikro) maka ini akan menjadi sesuatu yang layak untuk dijaga agar nama server tetap terlindungi dalam lingkungan yang sama dengan lokasi server.
Intinya
Anda hanya ingin menghindari kebutuhan akan informasi sensitif sebanyak mungkin, tetapi pertahankan konfigurasi yang tidak sensitif dalam kontrol sumber. Jika Anda tidak dapat menghindari nama pengguna / kata sandi dalam file konfigurasi Anda (yaitu database yang berbeda yang tidak memiliki keamanan yang setara dengan yang terintegrasi), maka muatkan sedikit saja dari file eksternal.
sumber
Tempat terbaik untuk menyimpan informasi sensitif adalah toko yang dibuat khusus seperti
Hashicorp Vault
yang mendukung Windows.Jika (untuk alasan apa pun) Anda tidak dapat menggunakan ini, Anda juga dapat menggunakan
git-secret
yang juga mendukung Windows. Dukungan untuk Windows ditambahkan kegit-secret
dalam PR ini: https://github.com/sobolevn/git-secret/pull/123git-crypt
juga memiliki dukungan eksperimental untuk Windows:https://github.com/AGWA/git-crypt/wiki/Instalasi
/programming/43040370/how-to-install-git-crypt-in-windows
sumber