Rumah >Tutorial sistem >LINUX >Sepuluh aspek untuk mengukuhkan keselamatan kontena Linux
Penyelesaian keselamatan kontena perlu mempertimbangkan susunan teknologi yang berbeza dan peringkat kitaran hayat kontena yang berbeza. - 1. Sistem pengendalian kontena dan berbilang penyewaan - 2. Kandungan kontena (menggunakan sumber yang dipercayai) - 3. Pendaftaran kontena (akses disulitkan kepada imej kontena) - 4. Bina keselamatan proses - 5. Kawal apa yang boleh digunakan dalam kelompok - 6. Orkestrasi Kontena: Memperkukuh keselamatan platform kontena - 7. Pengasingan rangkaian - 8. Storan - 9. Pengurusan API, keselamatan titik akhir dan daftar masuk tunggal (SSO) - 10. Peranan dan pengurusan kawalan akses
Bekas menyediakan cara mudah untuk membungkus aplikasi dan menggunakan aplikasi tersebut dengan lancar daripada persekitaran pembangunan dan ujian kepada persekitaran pengeluaran. Ia membantu memastikan konsistensi merentas pelbagai persekitaran, termasuk pelayan fizikal, mesin maya (VM) atau awan peribadi atau awam. Organisasi terkemuka dengan pantas menggunakan bekas berdasarkan faedah ini untuk membangunkan dan mengurus aplikasi yang menambah nilai perniagaan dengan mudah.
Aplikasi perusahaan memerlukan keselamatan yang kukuh Sesiapa yang menjalankan perkhidmatan asas dalam bekas akan bertanya: "Adakah bekas selamat?", "Bolehkah aplikasi kami mempercayai bekas?"
Mengamankan bekas sangat serupa dengan mengamankan sebarang proses berjalan. Sebelum menggunakan dan menjalankan bekas, anda perlu mempertimbangkan keselamatan keseluruhan tindanan teknologi penyelesaian anda. Anda juga perlu mempertimbangkan keselamatan sepanjang kitaran hayat penuh aplikasi dan bekas anda.Sila cuba perkukuhkan keselamatan bekas pada tahap yang berbeza, susunan teknologi yang berbeza dan peringkat kitaran hayat yang berbeza dalam 10 aspek ini.
Bekas ialah proses Linux yang mengasingkan dan mengekang sumber, membolehkan anda menjalankan aplikasi kotak pasir dalam kernel hos kongsi. Anda harus mengamankan bekas anda dengan cara yang sama seperti anda mengamankan sebarang proses berjalan di Linux. Melepaskan keistimewaan adalah penting dan kekal sebagai amalan terbaik. Pendekatan yang lebih baik adalah untuk mencipta bekas dengan keistimewaan sesedikit mungkin. Bekas harus dijalankan sebagai pengguna biasa, bukan root. Seterusnya, selamatkan bekas anda dengan memanfaatkan pelbagai peringkat ciri keselamatan yang tersedia dalam Linux: ruang nama Linux, Linux Dipertingkatkan Keselamatan (SELinux), cgroup, keupayaan dan Mod Pengiraan Selamat (seccomp).
Dalam persekitaran berkonten, pembinaan perisian ialah peringkat keseluruhan kitaran hayat dan kod aplikasi perlu disepadukan dengan masa jalan. Menguruskan proses binaan ini adalah kunci untuk memastikan keselamatan timbunan perisian anda. Patuhi konsep "bina sekali, gunakan di mana-mana" untuk memastikan bahawa produk dalam proses binaan adalah betul-betul produk yang digunakan dalam pengeluaran. Ini juga sangat penting untuk mengekalkan kestabilan kontena yang berterusan. Sama ada anda bekerja dalam industri yang sangat dikawal atau hanya ingin mengoptimumkan kerja pasukan anda, anda perlu mereka bentuk pengurusan imej kontena anda dan membina proses untuk memanfaatkan lapisan kontena untuk mencapai pengasingan kawalan supaya:
Pasukan operasi dan penyelenggaraan menguruskan imej asas
Pasukan seni bina menguruskan perisian tengah, masa jalan, pangkalan data dan penyelesaian lain
Pasukan pembangunan hanya menumpukan pada lapisan aplikasi dan kod
Akhir sekali, tandatangani bekas tersuai anda untuk memastikan ia tidak diganggu antara binaan dan penggunaan.
Sekiranya sebarang isu berlaku semasa proses binaan, atau kelemahan ditemui selepas menggunakan imej, tambahkan satu lagi lapisan keselamatan dengan penggunaan automatik berasaskan dasar.
Mari kita lihat tiga lapisan imej bekas yang digunakan untuk membina aplikasi: teras, perisian tengah dan aplikasi. Jika masalah ditemui dalam imej teras, imej itu akan dibina semula. Setelah binaan selesai, imej akan ditolak ke pelayan pendaftaran platform kontena. Platform boleh mengesan perubahan pada imej. Untuk binaan yang bergantung pada imej ini dan telah menentukan pencetus, platform akan membina semula aplikasi secara automatik dan menyepadukan perpustakaan tetap.
Setelah binaan selesai, imej akan ditolak ke pelayan pendaftaran dalaman platform kontena. Perubahan pada imej dalam pelayan pendaftaran dalaman dikesan serta-merta, dan imej yang dikemas kini secara automatik digunakan melalui pencetus yang ditakrifkan dalam aplikasi, memastikan bahawa kod yang dijalankan dalam pengeluaran sentiasa sama dengan imej yang paling terkini dikemas kini. Semua ciri ini berfungsi bersama untuk menyepadukan keupayaan keselamatan ke dalam proses penyepaduan berterusan dan penggunaan berterusan (CI/CD) anda.
Sudah tentu, permohonan jarang dihantar dalam satu bekas. Malah aplikasi mudah biasanya mempunyai bahagian hadapan, hujung belakang dan pangkalan data. Menggunakan aplikasi perkhidmatan mikro moden dalam bekas selalunya bermakna menggunakan berbilang bekas, kadangkala pada hos yang sama dan kadangkala diedarkan merentasi berbilang hos atau nod, seperti yang ditunjukkan dalam rajah.
Apabila menguruskan penggunaan kontena secara berskala, anda perlu mempertimbangkan:
Bekas yang manakah harus digunakan pada hos mana?
Hos manakah yang mempunyai kapasiti lebih besar?
Bekas yang manakah perlu mengakses satu sama lain? Bagaimanakah mereka akan menemui satu sama lain?
Bagaimana untuk mengawal akses dan pengurusan sumber yang dikongsi, seperti rangkaian dan storan?
Bagaimana untuk memantau status kesihatan kontena?
Bagaimana untuk mengembangkan keupayaan aplikasi secara automatik untuk memenuhi permintaan?
Bagaimana untuk membolehkan pembangun memenuhi keperluan keselamatan semasa layan diri?
Memandangkan pelbagai keupayaan yang dimiliki oleh pembangun dan pengendali, kawalan capaian berasaskan peranan yang kukuh ialah elemen utama platform kontena. Sebagai contoh, pelayan pengurusan orkestrasi ialah titik pusat akses dan harus menerima pemeriksaan keselamatan tahap tertinggi. API adalah kunci kepada pengurusan kontena automatik pada skala, digunakan untuk mengesahkan dan mengkonfigurasi data untuk bekas, perkhidmatan dan pengawal replikasi melaksanakan pengesahan projek pada permintaan masuk dan menggunakan pencetus pada komponen sistem utama yang lain;
Menetapkan aplikasi perkhidmatan mikro moden dalam bekas selalunya bermakna menggunakan berbilang bekas yang diedarkan merentasi berbilang nod. Dengan mempertimbangkan pertahanan rangkaian, anda memerlukan cara untuk mengasingkan aplikasi dalam kelompok.
Perkhidmatan awan awam biasa, seperti Google Container Engine (GKE), Azure Container Services atau Amazon Web Services (AWS) Container Service, ialah perkhidmatan penyewa tunggal. Mereka membenarkan bekas yang dijalankan pada kelompok VM yang anda lancarkan. Untuk mencapai keselamatan kontena berbilang penyewa, anda memerlukan platform kontena yang membolehkan anda memilih satu kelompok dan segmen trafik untuk mengasingkan pengguna, pasukan, aplikasi dan persekitaran yang berbeza dalam kelompok tersebut.
Dengan ruang nama rangkaian, setiap koleksi bekas (dipanggil "POD") mendapat IP dan julat pengikatan portnya sendiri, dengan itu mengasingkan rangkaian POD pada nod.
Secara lalai, POD daripada ruang nama (projek) berbeza tidak boleh menghantar atau menerima paket daripada POD atau perkhidmatan dalam projek berbeza, kecuali dengan pilihan yang diterangkan di bawah. Anda boleh menggunakan ciri ini untuk mengasingkan persekitaran pembangun, ujian dan pengeluaran dalam kelompok walau bagaimanapun, pengembangan alamat IP dan port ini menjadikan rangkaian lebih kompleks. Melabur dalam alatan untuk mengendalikan kerumitan ini. Alat pilihan ialah menggunakan platform kontena rangkaian yang ditentukan perisian (SDN), yang menyediakan rangkaian kluster bersatu untuk memastikan komunikasi antara bekas dalam keseluruhan kluster.
Volume Berterusan (PV) boleh dipasang pada mana-mana hos yang disokong oleh pembekal sumber. Pembekal akan mempunyai keupayaan yang berbeza dan mod akses setiap PV boleh ditetapkan kepada mod tertentu yang disokong oleh volum tertentu. Contohnya, NFS boleh menyokong berbilang klien baca/tulis, tetapi PV NFS tertentu boleh dieksport hanya sebagai baca sahaja pada pelayan. Setiap PV mempunyai set mod akses sendiri yang mentakrifkan metrik prestasi khusus PV, seperti ReadWriteOnce, ReadOnlyMany dan ReadWriteMany.
9 Pengurusan API, Keselamatan Titik Akhir dan Log Masuk Tunggal (SSO)API ialah komponen utama aplikasi perkhidmatan mikro. Aplikasi perkhidmatan mikro mempunyai berbilang perkhidmatan API bebas, yang menghasilkan percambahan titik akhir perkhidmatan dan oleh itu memerlukan lebih banyak alat tadbir urus. Adalah disyorkan untuk menggunakan alat pengurusan API. Semua platform API harus menyediakan pelbagai pilihan standard untuk pengesahan dan keselamatan API, yang boleh digunakan secara bersendirian atau digabungkan untuk mengeluarkan sijil dan mengawal akses. Pilihan ini termasuk kunci API standard, ID apl, pasangan kunci dan OAuth 2.0.
10. Peranan dan pengurusan kawalan akses (Persekutuan Kluster)Dalam senario pusat data awan awam atau perusahaan, Federation berguna untuk mengatur dan mengakses perkhidmatan aplikasi merentas kluster. Berbilang kelompok membolehkan ketersediaan aplikasi yang tinggi, seperti berbilang wilayah, berbilang penyedia awan (seperti AWS, Google Cloud dan Azure) untuk mencapai pengurusan umum penggunaan atau migrasi.
Apabila menguruskan persekutuan kluster, anda mesti memastikan bahawa alat orkestrasi menyediakan keselamatan yang diperlukan merentas kejadian platform penggunaan yang berbeza. Seperti biasa, pengesahan dan kebenaran adalah kunci kepada keselamatan - dapat menghantar data dengan selamat kepada aplikasi tidak kira di mana ia dijalankan, dan mengurus berbilang penyewaan aplikasi dalam kelompok.
Kubernetes memperluaskan persekutuan kelompok untuk memasukkan sokongan untuk penyulitan bersekutu, ruang nama bersekutu dan kemasukan objek.
Atas ialah kandungan terperinci Sepuluh aspek untuk mengukuhkan keselamatan kontena Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!