Dua URL boleh kelihatan sama dari pelayar rakan dan tetap bermaksud perkara yang sangat berbeza bagi tembok api. Satu menunjuk kepada perkhidmatan yang mendengar pada hos itu sendiri. Satu lagi menunjuk kepada alamat hos yang portnya diterbitkan ke rangkaian kontena, di mana langkah terjemahan menyerahkan sambungan kepada IP lain. Dalam mesh rakan-ke-rakan yang mengawal akses rangkaian setempat dengan kebenaran setiap rakan, perbezaan itulah keseluruhan semakan.

Kebenaran itu tentang titik akhir hos, terjemahan itu tentang Docker, dan log masuk itu tentang aplikasi. Tiga keputusan, tiga tempat untuk dilihat.

Ikuti destinasi selepas penerbitan

Ambil hos Linux Docker yang menerbitkan port 80 kontena pada port 8080 hos. Rakan menyambung ke alamat mesh hos pada 8080, hos menerima sambungan itu, dan terjemahan destinasi menulis semulanya ke alamat jambatan kontena, biasanya sesuatu seperti 172.17.0.2 pada port 80.

Apabila sesuatu peraturan memeriksa aliran itu, destinasi yang menarik ialah kontena, bukan hos. Dasar yang hanya menaakul tentang «perkhidmatan pada mesin ini» menaakul tentang objek yang salah. Permintaan itu mendarat pada hos, tetapi ia dihantar di tempat lain.

Itulah sebabnya dokumentasi mesh menyenaraikan kontena Docker antara sumber yang dikawal oleh kebenaran rangkaian setempat pada Linux. Kebenaran itu bukan sinonim entri senarai benaran VPN biasa, dan kedua-dua kawalan tidak saling menggantikan. Satu menentukan sama ada rakan boleh mencapai sumber setempat sama sekali; satu lagi menentukan destinasi mana yang dibawa oleh laluan terowong.

Tentukan berapa banyak akses setempat yang diberikan oleh kebenaran

Memberi akses rangkaian setempat kepada rakan bukan keputusan tentang satu kontena. Ia boleh mendedahkan perkhidmatan terbitan lain pada hos yang sama, dan ia boleh mencapai lebih jauh bergantung pada cara hos memajukan. Semak skop berkesan sebelum menekan suis untuk satu papan pemuka.

Kemudian lihat di mana Docker menerbitkan port. Penerbitan pada 0.0.0.0 mencipta pendengar pada setiap alamat hos, yang boleh menambah entri LAN biasa di samping entri mesh. Jika keperluannya hanya mesh, ikat penerbitan itu kepada alamat atau antara muka tertentu yang anda maksudkan, dan anggap ikatan yang lebih luas sebagai penemuan berasingan dan bukan kemudahan.

Kekalkan dasar pemajuan hos dan pengesahan aplikasi itu sendiri cukup sempit untuk perkhidmatan. URL yang kelihatan peribadi bukan kawalan akses, dan kontena yang mempercayai setiap sumber pada rangkaian jambatannya tidak dilindungi oleh fakta bahawa rakan mesh telah diluluskan. Pengesahan aplikasi ialah keputusan ketiga, dan hanya itulah yang tahu siapa penggunanya. Kebenaran peringkat hos tidak boleh menyediakan pengetahuan itu.

Uji kebenaran itu, bukan hanya URL

Dari rakan yang diluluskan, buka perkhidmatan yang tepat dan sahkan ia berfungsi. Kemudian cuba destinasi yang sepatutnya kekal ditolak dan sahkan ia tidak berfungsi. Menguji hanya laluan gembira memberitahu anda kebenaran telah diberikan; ia tidak memberitahu anda sempadan itu di tempat yang anda sangka.

Bandingkan perkhidmatan asli hos secara berasingan. Jika pangkalan data mendengar pada hos dan papan pemuka berjalan dalam kontena, kedua-duanya mengikut laluan berbeza melalui kebenaran yang sama dan mungkin tidak dikawal sama oleh dasar pemajuan hos. Catat mana yang mana sebelum menulis nota semakan.

Jangan kosongkan jadual Docker atau peraturan klien mesh untuk «menetapkan semula» akses. Kedua-dua produk memasang integrasi dasar mereka sendiri, dan memadamnya menghasilkan hos yang kelihatan berfungsi sambil memintas kawalan yang diminta anda menilai. Jika sesuatu peraturan kelihatan salah, baca dan ubah peraturan itu sahaja. Jika anda tidak dapat menjelaskan apa yang dilakukan oleh sesuatu peraturan, itulah penemuannya, bukan sebab untuk memadamnya.

Tulis penemuan itu dalam istilah sistem itu sendiri

Yang penting ialah perbezaan yang sebenarnya dikuatkuasakan oleh produk, bukan yang ada dalam templat semakan: kebenaran mencapai titik akhir hos, kebenaran mencapai sumber peribadi yang dilaluan, dan kebenaran menggunakan aplikasi. Menerbitkan port membiarkan ketiga-tiga keputusan itu tepat di tempatnya, dan penyemak yang menganggapnya sebagai satu akan meluluskan skop yang salah.

Nyatakan alamat hos, port yang diterbitkan, destinasi kontena dan kebenaran rakan dalam ayat yang sama. Ayat itu boleh diuji oleh orang lain, dan itulah yang menjadikannya penemuan dan bukan pendapat.

Artikel berkaitan