Satu penggunaan Cassandra tidak mempunyai satu rangkaian pangkalan data sejagat. Aplikasi bercakap dengan perkhidmatan klien, ahli kelompok bercakap sesama sendiri, dan pengendali menggunakan antara muka pentadbiran, dan ketiga-tiga kumpulan itu tidak sepatutnya mewarisi jangkauan satu sama lain. Laluan peribadi seperti VPN ialah titik permulaan yang baik, tetapi ia bukan identiti pengguna pangkalan data dan bukan dasar penyulitannya. Layan keputusan ketersambungan dan keputusan kebenaran sebagai dua semakan berasingan.

Setiap daripada tiga kumpulan mendapat jawapannya sendiri, dan bahagian di bawah membincangkannya mengikut urutan pendedahan.

Tiga kumpulan, tiga keputusan

Kenal pasti apa yang setiap kumpulan benar-benar perlukan sebelum anda menyentuh sesuatu peraturan. Klien memerlukan pendengar klien dan maklumat yang cukup untuk mencapai setiap nod yang mungkin diberikan kepada mereka, nod rakan memerlukan satu sama lain pada port antara nod, dan pengendali memerlukan antara muka pengurusan untuk apa yang runbook benar-benar perlukan. Tiga senarai, tiga kumpulan, tiga tahap kepercayaan.

Kesilapan biasa ialah membina satu segmen peribadi rata dan menganggap sempadan VPN melakukan selebihnya. Di dalamnya, aplikasi yang boleh mencapai port klien biasanya boleh mencapai port antara nod juga, dan alat pentadbiran pengendali sering duduk pada hos lompat yang sama dengan aplikasi. Meratakan semuanya bersama bermakna identiti aplikasi yang terjejas sudah mempunyai jangkauan lebih besar daripada pertanyaannya sendiri. Lukis ketiga-tiga kumpulan sebagai tiga baris dalam dokumen reka bentuk, setiap satu dengan peraturan yang membenarkannya, dan jurang itu menjadi kelihatan sebelum sesiapa membinanya.

Apa yang klien perlukan, dan tidak lebih

Benarkan sumber aplikasi yang dimaksudkan mencapai titik akhir klien untuk versi yang digunakan, dan kekalkan perkhidmatan kelompok serta pengurusan yang tidak berkaitan di luar jangkauan itu. Kemudian semak bagaimana pemacu menemui nod. Titik hubungan awal yang boleh dicapai tidak membuktikan bahawa setiap alamat nod yang dipilih pemacu selepas itu boleh dicapai daripada konteks klien tersebut, kerana pemacu meminta rakan daripada kelompok dan kemudian bersambung ke alamat yang diiklankan oleh kelompok.

Itulah sebabnya satu ketidakpadanan alamat peribadi menghasilkan corak yang biasa: sambungan pertama berjaya diikuti tamat masa. Konfigurasikan alamat yang diiklankan dan penghalaan klien dengan sengaja; menerbitkan seluruh kelompok ke internet untuk membaiki satu ketidakpadanan menukar pepijat penghalaan dengan pendedahan yang tidak boleh anda tarik balik.

Kekalkan juga pengesahan pangkalan data aplikasi dan kebenaran peranan. Alamat VPN yang dikongsi dan diterjemah boleh mewakili ramai pengguna atau perkhidmatan, jadi ia tidak pernah menggantikan identiti pangkalan data yang berbeza.

Sulitkan klien-ke-nod dan antara nod secara berasingan

Dokumentasi keselamatan Apache menganggap penyulitan klien-ke-nod dan antara nod sebagai konfigurasi berasingan, dan mendayakan satu tidak mendayakan yang lain. Perbezaan itu masih terpakai di dalam VPN, kerana terowong melindungi segmennya sendiri dan tidak memanjang secara automatik daripada proses aplikasi ke proses pangkalan data atau antara setiap pasangan ahli kelompok.

Konfigurasi yang menghidupkan kedua-duanya secara jelas, bukannya mewarisi lalai templat, kelihatan lebih kurang seperti ini:

client_encryption_options:
  enabled: true
  optional: false
server_encryption_options:
  internode_encryption: all

Pada konfigurasi pelayan yang membenarkan penyulitan klien pilihan, menerima TLS boleh wujud bersama menerima sambungan tidak tersulit, jadi baca dasar yang berkesan dan bukan niatnya. Rancang nama sijil, pengagihan kepercayaan dan pembaharuan untuk titik akhir yang benar-benar dihubungi setiap klien; menggantikan nama hos dengan alamat IP mengubah pemeriksaan identiti klien, bukan hanya laluannya.

Kekalkan pentadbiran pada laluannya sendiri

Trafik antara nod memerlukan set rakan yang dibenarkan dan dasar perlindungannya sendiri. Akses pentadbiran, termasuk JMX di tempat ia digunakan, memerlukan kumpulan berasingan dan pengesahannya sendiri. Aplikasi yang dibenarkan mengeluarkan pertanyaan biasa tidak dengan itu memerlukan setiap keupayaan pengurusan, dan sebaliknya lebih teruk: laluan pentadbiran yang terdedah kepada segmen aplikasi ialah laluan terpendek daripada pepijat kepada pembinaan semula. Tulis kedua-dua kumpulan itu secara berasingan, dan namakan pemiliknya, kerana biasanya ia pasukan berbeza yang peraturannya digabungkan secara tidak sengaja.

Kekalkan peraturan awan yang berkesan, peraturan hos dan konfigurasi pendengar selaras. Pendengar peribadi masih boleh terdedah melalui terjemahan atau proksi yang tidak disengajakan, dan peraturan awam yang luas boleh duduk diam-diam di sebelah peraturan VPN yang sempit sehingga seseorang mengaudit kedua-duanya sekali gus.

Di mana pengendali benar-benar memerlukan laluan pengurusan, berikan pemilik bernama dan jangka hayat kelayakan yang lebih pendek daripada aplikasi. Itu mengekalkan pendelegasian kelihatan apabila orang seterusnya mewarisi kelompok.

Apa yang dijanjikan oleh reka bentuk

Sahkan ketiga-tiga janji dengan peranan sebenar dan bukan hanya dengan ujian ketersambungan. Aplikasi yang diluluskan harus menyelesaikan kerja yang dibenarkan dan tidak lebih, sumber yang dikecualikan harus gagal di pintu masuk klien, dan identiti aplikasi harus ditolak pada laluan pentadbiran yang dikhaskan. Tambahkan penyambungan semula klien dan pemilihan nod pada ujian pelancaran yang sama, kerana di situlah kesilapan penemuan muncul.

Akhiri dengan tiga ayat dalam dokumen reka bentuk: klien mana yang boleh membuat pertanyaan, nod mana yang boleh berkomunikasi dan pengendali mana yang boleh mentadbir. Berada di belakang VPN ialah maklumat topologi yang berguna, tetapi ia bukan jawapan kepada mana-mana daripada tiga soalan itu.

Artikel berkaitan