Rumah >Tutorial sistem >LINUX >Sepuluh aspek untuk mengukuhkan keselamatan kontena Linux

Sepuluh aspek untuk mengukuhkan keselamatan kontena Linux

PHPz
PHPzasal
2024-06-04 16:45:38509semak imbas

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.

加强Linux 容器安全的十大方面

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.

1. Sistem pengendalian kontena dan berbilang penyewaan
Bagi pembangun, kontena memudahkan mereka membina dan menaik taraf aplikasi, yang boleh dipercayai sebagai unit aplikasi, memaksimumkan penggunaan sumber pelayan dengan menggunakan aplikasi berbilang penyewa didayakan pada hos kongsi. Bekas memudahkan untuk menggunakan berbilang aplikasi pada satu hos dan menghidupkan dan mematikan bekas individu mengikut keperluan. Untuk memanfaatkan sepenuhnya teknologi pembungkusan dan penggunaan ini, pasukan operasi memerlukan persekitaran kontena yang berfungsi dengan betul. Operator memerlukan sistem pengendalian yang boleh mengamankan bekas di perimeter, mengasingkan inti hos daripada bekas dan memastikan bekas selamat dari satu sama lain.

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).

加强Linux 容器安全的十大方面

2. Kandungan bekas (gunakan sumber yang dipercayai)
Apabila bercakap tentang keselamatan, apakah maksud kandungan kontena? . Untuk beberapa lama, aplikasi dan infrastruktur telah terdiri daripada komponen luar biasa. Kebanyakannya datang daripada perisian sumber terbuka, seperti sistem pengendalian Linux, pelayan web Apache, Platform Aplikasi Perusahaan Red Hat JBoss, PostgreSQL dan Node.js. Versi pelbagai pakej berasaskan kontena kini tersedia, jadi anda tidak perlu membina sendiri. Walau bagaimanapun, seperti mana-mana kod yang dimuat turun daripada sumber luaran, anda perlu mengetahui asal usul pakej, siapa yang menciptanya, dan sama ada terdapat kod hasad di dalamnya.

3. Pendaftaran kontena (akses disulitkan imej bekas)
Pasukan anda membina bekas berdasarkan imej kontena awam yang dimuat turun, jadi pengurusan akses dan muat turun kemas kini adalah kunci kepada pengurusan Imej bekas, imej terbina dalam dan jenis binari lain perlu diurus dengan cara yang sama. Banyak pendaftaran repositori peribadi menyokong penyimpanan imej bekas. Pilih pelayan pendaftaran peribadi yang menyimpan dasar automasi imej kontena yang digunakan.

4. Proses pembinaan adalah selamat

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.

加强Linux 容器安全的十大方面

5. Kawal apa yang boleh digunakan dalam kluster

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.

6. Orkestrasi kontena: Memperkukuh keselamatan platform kontena

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;

加强Linux 容器安全的十大方面

7. Pengasingan rangkaian

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.

8 Bekas sangat berguna untuk aplikasi stateful dan stateless. Menjamin storan adalah elemen utama dalam memastikan perkhidmatan yang lengkap. Platform kontena harus menyediakan pelbagai pemalam storan, termasuk Sistem Fail Rangkaian (NFS), AWS Elastic Block Stores (EBS, storan blok elastik), GCE Persistent disk, GlusterFS, iSCSI, RADOS (CEPH), Cinder, dsb.

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)
Melindungi aplikasi termasuk mengurus aplikasi dan pengesahan dan kebenaran API. Kefungsian SSO Web adalah bahagian penting dalam aplikasi moden. Apabila pembangun membina aplikasi mereka sendiri, platform kontena boleh menyediakan pelbagai perkhidmatan kontena untuk mereka gunakan.

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)
Pada Julai 2016, Kubernetes 1.3 telah memperkenalkan Kluster Bersekutu Kubernetes. Ini ialah ciri baharu yang menarik pada masa ini dalam Kubernetes 1.6 beta.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn