Tambah atau Alih Keluar Keupayaan Linux dalam Kubernetes SecurityContext

Tambah Atau Alih Keluar Keupayaan Linux Dalam Kubernetes Securitycontext



Mungkin sukar untuk mengurus tahap keistimewaan yang diberikan kepada setiap Pod dan bekas dalam bekas Kubernetes. Kami mungkin menggunakan keupayaan Kubernetes SecurityContext untuk menambah atau memadam keupayaan Linux daripada Pod dan Container untuk meningkatkan keselamatan bekas. Artikel ini menumpukan pada penggunaan securityContext untuk melaksanakan contoh mudah menambah dan memadam keupayaan. Konfigurasi fail yaml untuk memadam semua keupayaan dan menambah hanya satu keupayaan pada bekas disediakan dalam contoh contoh. Dalam artikel ini, arahan proc dan capsh digunakan untuk memaparkan keupayaan bekas.

Langkah 1: Mulakan Pelayan Minikube







Mula-mula, mulakan pelayan minikube supaya anda boleh menjalankan aplikasi anda dan menggunakan arahan kubectl. Anda boleh menggunakan nod, pod dan juga kelompok anda menggunakan pelayan minikube dalam persekitaran Kubernetes. Perintah berikut mesti digunakan untuk mengekalkan minikube dalam mod aktif:



> mulakan minikube



Dengan berbuat demikian, pelayan minikube dihidupkan dan persekitaran Kubernetes sedia untuk digunakan.





Langkah 2: Buat Fail YAML Kubernetes



Dalam langkah kedua, buat fail YAML untuk menggunakan pod.

Ikuti langkah-langkah untuk mencipta fail yaml menggunakan nano:

  • Pergi ke laluan direktori tempat anda ingin mencipta fail atau mengubah suai fail sedia ada.
  • Taipkan arahan nano diikuti dengan nama fail.

Jalankan arahan nano berikut. Ia mencipta fail konfigurasi YAML bernama 'nano podsample.yaml'.

> nano podsample.yaml

Mari kita teruskan ke langkah seterusnya iaitu untuk membantu anda mengetahui cara mengkonfigurasi fail podsample.yaml.

Langkah 3: Konfigurasikan Fail YAML

Kami menambah alat capsh dalam langkah sebelumnya supaya kami dapat melihat keupayaan bekas kami.

Ambil perhatian bahawa tiada satu pun daripada parameter tersebut dikonfigurasikan untuk bahagian securityContext untuk bekas ini. Oleh itu, semuanya ditetapkan kepada lalai sistem. Pertimbangkan hakikat bahawa bekas ini beroperasi sebagai pengguna lalai yang dibekalkan dalam Dockerfile dari mana ia dibina jika tiada pengguna ditakrifkan untuknya dalam Kubernetes. Untuk kebanyakan bekas, pengguna lalai ini ialah akarnya.

Langkah 4: Buat Pod

Dalam langkah ini, mari buat podsample.yaml dengan arahan yang dilampirkan berikut:

> kubectl memohon -f podsample.yaml

Langkah 5: Semak Keupayaan

Dalam langkah sebelumnya, pod dibuat dan berjalan.

Sekarang kita mempunyai shell di dalamnya, kita boleh menggunakan capsh untuk mengesahkan keupayaannya menggunakan arahan berikut:

> $ kubectl eksekutif - -stdin - -tty topi - - abu

Menggunakan arahan capsh, adalah mungkin untuk melihat kapasiti lalai bekas yang disenaraikan seperti berikut:

Kita boleh melihat daripada output yang diberikan bahawa bekas mempunyai banyak keupayaan lalai yang diberikan kepada bekas pada masa jalan.

Langkah 6: Lepaskan Bujang Keupayaan Y dalam Kubernetes SecurityContext

Dalam langkah ini, kami menggugurkan keupayaan tunggal bekas.

Mari konfigurasikan fail yaml menggunakan arahan berikut:

> nano dropod.yaml

Selepas itu, bergerak untuk mengkonfigurasi fail droppod.yaml menggunakan arahan yang diberikan berikut:

> kubectl memohon -f droppod.yaml

Langkah 7 : Konfigurasikan untuk Menambah Keupayaan Tunggal dalam Fail YAML

Dalam langkah ini, buka fail yaml (dropped.yaml) yang telah dibuat dalam Langkah 6. Kemudian, tetapkan bekas supaya ia tidak lagi mempunyai akses kepada keupayaan CAP_MKNOD, yang mengalih keluar keupayaan untuk mencipta nod sistem fail baharu.

Fail yang dikonfigurasikan adalah seperti yang ditunjukkan:

Langkah 8 : Semak Keupayaan

Fail yaml dikonfigurasikan untuk menggugurkan keupayaan CAP_MKNOD.

Dalam langkah ini, laksanakan dan jalankan fail dropcaps.yaml untuk menyemak keupayaan bekas menggunakan arahan berikut:

> $ kubectl eksekutif - -stdin - -tty titisan - - abu

Kapasiti boleh disemak dengan menjalankan fail dropcaps:

> # capsh - -cetak

Kita boleh perhatikan bahawa pod ini menurunkan keupayaan CAP_MKNOD berbanding dengan pod pertama.

Langkah 9 : Gugurkan Semua Keupayaan dalam Konteks Keselamatan Kubernetes

Memandangkan Kubernetes boleh menggugurkan satu keupayaan, ia juga boleh menggugurkan semua keupayaan melalui securityContext. Dalam langkah ini, lepaskan semua keupayaan bekas dengan menyiratkan arahan yang diberikan:

> nano samplenocap.yaml

Selepas itu, konfigurasikan fail samplenocap.yaml menggunakan arahan berikut:

> kubectl create -f samplenocap.yaml

Sekarang, mari kita beralih ke langkah seterusnya untuk menggugurkan semua kapasiti dalam tetapan securityContext kami.

Langkah 10: Konfigurasikan Semua Keupayaan dalam Fail YAML

Dalam langkah ini, buka fail yaml yang telah dibuat dalam Langkah 9. Kemudian, konfigurasikan di dalam container.securityContext  dan lepaskan semua keupayaan bekas itu.

Fail yang dikonfigurasikan adalah seperti yang ditunjukkan:

Langkah sebelas : Semak Keupayaan

Jalankan nocaps dalam capsh untuk melihat maklumat tentang keupayaan. Dalam langkah ini, gunakan arahan berikut dan paparkan semua keupayaan bekas:

> kubectl eksekutif - -stdin - -tty nocaps - - abu

Kapasiti boleh disemak dalam ilustrasi berikut dengan menjalankan fail yaml samplenocaps dalam capsh:

> # capsh - -cetak

Output sebelumnya menunjukkan bahawa semasa=”” dan set terikat=”” kosong sekarang. Keupayaan digugurkan dengan jayanya.

Langkah 1 2 : Pasang Bash

Dalam langkah ini, pasang Bash melalui apk kerana sesetengah fungsi sistem tidak akan berfungsi jika kami tidak mempunyai sebarang keupayaan sama sekali. Walaupun bekas kami beroperasi sebagai akar, pemasangan pakej Bash gagal.

> # apk tambah bash

Langkah 1 3 : Semak Maklumat Keupayaan

Terdapat beberapa cara untuk melihat keupayaan bekas kami seperti menggunakan arahan capsh dan proc. Dalam langkah ini, kami memaparkan kapasiti kontena menggunakan arahan proc dan kapasiti memaparkan proc sebagai peta bit. Walaupun ia tidak begitu mudah dibaca seperti hasil daripada capsh, setiap bit yang ditakrifkan di sini bermaksud keupayaan tertentu.

> # cd /proc/1/

Di sini, kita dapat melihat bahawa bekas khusus ini tidak mempunyai keupayaan yang didayakan; semua nilai ini adalah sifar.

Langkah 1 4 : Menambah Keupayaan Tunggal dalam Kubernetes SecurityContext

Dalam langkah sebelumnya, kami menggugurkan satu keupayaan iaitu CAP_MKNOD dan menggugurkan semua keupayaan. Tetapi, dalam langkah ini, kita boleh menambah keupayaan kembali.

Jalankan arahan berikut untuk mencipta fail yAML:

> nano sampleadd.yaml

Selepas itu, konfigurasikan fail sampleadd.yaml.

> kubectl create -f sampleadd.yaml

Sekarang, mari cuba fail sampleadd.yaml dan tambah satu kapasiti dalam tetapan securityContext kami.

Langkah 1 5 : Konfigurasikan Keupayaan Tunggal dalam Fail YAML

Sekarang, mari kita konfigurasikan fail dengan menambahkan keupayaan dalam spec.container.securityContext ke dalam capabilities.add [“MKNOD”].

Keupayaan dipaparkan dalam fail YAML.

Langkah 16 : Semak Keupayaan

Dalam langkah ini, jalankan addcaps untuk menyemak keupayaan menggunakan arahan berikut:

> kubectl eksekutif - -stdin - -tty addcaps - - sebagai

Kapasiti tambahan boleh dilihat dalam output yang diberikan berikut:

semasa = cap_mknod+ep

Set sempadan = cap_mknod

> # capsh - -cetak

Kesimpulan

Anda mula-mula belajar daripada contoh yang dilaksanakan tentang keupayaan lalai bekas yang diperuntukkan pada masa berjalan yang dipaparkan dengan arahan capsh. Seterusnya, anda belajar untuk menjatuhkan satu keupayaan dalam bekas bernama CAP_MKNOD. Kemudian, anda juga mempelajari cara untuk menggugurkan semua keupayaan bekas menggunakan //jatuhkan: –semua konfigurasi. Kemudian, kami menggunakan dua cara untuk memaparkan keupayaan bekas - menggunakan perintah capsh dan proc.