Ide Dasar
- Tuan rumah yang akan dikonfigurasi harus memiliki sertifikat yang diinstal (dengan kunci pribadi).
- Saat mengatur manajer konfigurasi lokal node target (LCM), Anda harus menentukan Thumbprint sertifikat tersebut. Ini memberitahu LCM sertifikat lokal mana (atau lebih tepatnya kunci priv sertifikat mana) yang akan digunakan untuk mendekripsi kredensial.
- Konfigurasi DSC Anda harus mengarah ke file yang hanya berisi sertifikat (kunci publik) dari sertifikat yang sama. Ini dilakukan dalam data konfigurasi, sehingga Anda dapat menentukan sertifikat berbeda untuk setiap node, jika Anda bermaksud menggunakan konfigurasi yang sama untuk masing-masing node.
- Ketika MOF dihasilkan, kunci publik digunakan oleh mesin yang menghasilkan MOF untuk meng - enkrip kredensial.
- Ketika LCM pada node target mengambil konfigurasi dari server tarik (dalam bentuk MOF), ia menggunakan kunci pribadi sertifikat yang diidentifikasi oleh cap jempol untuk mendekripsi objek kredensial.
Dalam Beberapa Detail
Kunci publik tidak dapat digunakan untuk mendekripsi, dan Anda tidak membagikan kunci pribadi dengan generasi konfigurasi atau mesin distribusi.
Sepertinya Anda sedang mempertimbangkan alur kerja seolah-olah ada satu sertifikat yang digunakan untuk semua kredensial. Anda bisa melakukan itu, tetapi saya pikir idenya adalah bahwa setiap node memiliki pasangan kunci sendiri.
"Pengguna biasa" yang saya maksudkan adalah pengguna non-administratif, tidak dapat mengekspor kunci pribadi sertifikat (kecuali diberikan izin), dan karena Anda tidak akan memindahkan kunci ini, ada sedikit peluang untuk itu terkena. Jika pengguna adalah administrator, maka tentu saja mereka memiliki akses.
Jauh lebih mungkin bahwa menyimpan kredensial teks biasa dalam konfigurasi akan diekspos apakah itu melalui konfigurasi powershell yang belum diproses, atau MOF yang dihasilkan. Jika tidak dienkripsi, maka Anda harus mengamankan:
- Lokasi sistem file / jaringan berbagi tempat konfigurasi disimpan
- Fs / bagikan tempat MOF yang dihasilkan disimpan
- Fs / bagikan tempat Anda menyimpan MOF di server tarik
- Pastikan server penarik berjalan di atas SSL (Anda harus tetap melakukannya)
- Pastikan ada otentikasi di server Tarik, jika tidak, kueri anonim apa pun dapat mengambil konfigurasi dengan kredensial terbuka.
Saya pikir kredensial aman di DSC dilakukan dengan cukup baik, tapi itu sedikit cobaan untuk mengaturnya pada awalnya.
AD PKI membuat ini lebih mudah
Jika Anda menggunakan Enterprise PKI di lingkungan AD Anda, ada kemungkinan besar bahwa setiap mesin diatur untuk pendaftaran otomatis dengan CA, sehingga sudah memiliki sertifikat khusus mesin yang memperbarui sendiri. Ini memiliki pengaturan yang diperlukan untuk digunakan untuk tujuan ini.
Bagaimana Saya Menerapkan Ini
Karena alat ini sangat kosong untuk DSC sekarang, kemungkinan Anda akan membuat alur kerja Anda sendiri untuk menghasilkan konfigurasi dan menulis skrip untuk membantu.
Dalam kasus saya, saya punya skrip terpisah untuk menghasilkan LCM meta MOF dan untuk menghasilkan konfigurasi aktual node, jadi langkah-langkah saya untuk mengamankan kredensial dibagi di antara keduanya.
Dalam skrip generasi LCM, saya sebenarnya meminta CA untuk domain untuk menemukan sertifikat yang sesuai dengan nama host mesin yang sedang dikonfigurasi. Saya mengambil sertifikat (CA tidak memiliki kunci pribadi, hanya publik) dan menyimpannya ke jalur untuk digunakan nanti. Meta MOF dikonfigurasikan untuk menggunakan cap jempol dari sertifikat.
Dalam skrip konfigurasi simpul saya mengatur data konfigurasi untuk menggunakan file cert (hanya kunci publik saja). Ketika MOF dihasilkan, kredensial dienkripsi dengan sertifikat itu dan hanya dapat didekripsi dengan kunci pribadi pada node tertentu.
Referensi
Saya merujuk pengalaman saya sendiri di atas, tetapi artikel ini sangat membantu di sepanjang jalan:
https://devblogs.microsoft.com/powershell/want-to-secure-credentials-in-windows-powershell-desired-state- konfigurasi
Saya harus mengisi beberapa lubang sendiri. Satu hal yang perlu diperhatikan dalam contoh yang ditampilkan, adalah bahwa mereka menyediakan Thumprint
konfigurasi node. Ini tidak diperlukan untuk konfigurasi simpul; mereka hanya membuat konfigurasi dan LCM meta config secara bersamaan dan menggunakan data konfigurasi untuk menyimpan cap jempol untuk digunakan di sana.
Paragraf terakhir itu mungkin membingungkan, tetapi lebih masuk akal dalam konteks artikel. Jika Anda tidak membuat kedua konfigurasi sekaligus, contohnya tampak aneh. Saya mengujinya; Thumbprint
tidak diperlukan dalam data konfigurasi untuk mengenkripsi kredensial. CertificateFile
diperlukan, dan itu harus dalam data konfigurasi, jadi jika Anda tidak menggunakan data konfigurasi sebelumnya, Anda akan sekarang.