Lisage või eemaldage Linuxi võimalused Kubernetes SecurityContextis

Lisage Voi Eemaldage Linuxi Voimalused Kubernetes Securitycontextis



Kubernetese konteineris igale Podile ja konteinerile antud õiguste määra haldamine võib olla keeruline. Konteineri turvalisuse suurendamiseks võime kasutada Kubernetes SecurityContexti võimalusi, et lisada või kustutada kaustast ja konteinerist Linuxi võimalusi. See artikkel keskendub turvakonteksti kasutamisele, et rakendada lihtsat näidet võimaluste lisamise ja kustutamise kohta. Yaml-faili konfiguratsioon kõigi võimaluste kustutamiseks ja ainult ühe võimaluse lisamiseks konteinerisse on toodud näidisnäites. Selles artiklis kasutatakse konteineri võimaluste kuvamiseks käske proc ja capsh.

1. samm: käivitage Minikube'i server







Kõigepealt käivitage minikube server, et saaksite oma rakendust käivitada ja kasutada kubectli juhiseid. Saate juurutada oma sõlmed, kaustad ja isegi klastri Kubernetese keskkonnas asuva minikube serveri abil. Minikube aktiivses režiimis hoidmiseks tuleb kasutada järgmist käsku:



> käivita minikube



Seda tehes lülitatakse minikube server sisse ja Kubernetese keskkond on kasutamiseks valmis.





2. samm: Looge Kubernetes YAML-fail



Teises etapis looge podi juurutamiseks YAML-fail.

Yaml-faili loomiseks nano abil järgige juhiseid.

  • Minge kataloogi teele, kuhu soovite faili luua või olemasolevat faili muuta.
  • Sisestage nano-käsk ja seejärel faili nimi.

Käivitage järgmine nano käsk. See loob YAML-i konfiguratsioonifaili nimega 'nano podsample.yaml'.

> nano podsample.yaml

Liigume edasi järgmise sammu juurde, mis aitab teil teada saada, kuidas faili podsample.yaml konfigureerida.

3. samm: Seadistage YAML-fail

Lisame eelmises etapis capshi tööriista, et näeksime oma konteineri võimalusi.

Pange tähele, et ükski neist parameetritest pole konfigureeritud selle konteineri jaotise securityContext jaoks. Seega on need kõik seatud süsteemi vaikeseadetele. Mõelge asjaolule, et see konteiner töötab vaikekasutajana, mis on esitatud Docker-failis, millest see koostatakse, kui Kubernetes pole sellele kasutajat määratletud. Paljude konteinerite puhul on see vaikekasutaja juur.

4. samm: Looge Pod

Selles etapis loome podsample.yaml järgmise lisatud käsuga:

> kubectl rakendada -f podsample.yaml

5. samm: Kontrollige võimalusi

Eelmises etapis luuakse pod ja see töötab.

Nüüd, kui meil on selle sees kest, saame kasutada capshi, et kontrollida selle võimalusi järgmise käsu abil:

> $ kubectl täitja - -stdin - -tty mütsid - - tuhk

Käsu capsh abil on võimalik näha konteineri vaikimisi mahtuvusi, mis on loetletud järgmiselt:

Antud väljundist näeme, et konteineril on palju vaikevõimalusi, mis konteinerile käitamise ajal antakse.

6. samm: Loobuge Vallaline Võimalus Y Kubernetes SecurityContextis

Selles etapis kaotame konteineri ühe võimaluse.

Seadistame yamli faili järgmise käsuga:

> nano dropod.yaml

Pärast seda liikuge faili droppod.yaml konfigureerimiseks järgmise käsuga:

> kubectl rakendada -f droppod.yaml

Samm 7 : Konfigureerige YAML-faili ühe võimaluse lisamiseks

Selles etapis avage 6. toimingus loodud yamli fail (dropped.yaml). Seejärel määrake konteiner selliseks, et sellel ei oleks enam juurdepääsu CAP_MKNOD võimekusele, mis eemaldab võimaluse luua uusi failisüsteemi sõlme.

Seadistatud fail on selline:

Samm 8 : Kontrollige võimalusi

Yaml-fail on konfigureeritud loobuma CAP_MKNOD-võimalusest.

Selles etapis käivitage ja käivitage fail dropcaps.yaml, et kontrollida konteineri võimalusi järgmise käsu abil:

> $ kubectl täitja - -stdin - -tty kapslid - - tuhk

Võimsust saab kontrollida dropcaps-faili käivitamisega:

> # capsh - -print

Võime täheldada, et selle pod vähendas CAP_MKNOD võimekust võrreldes esimese kaustaga.

Samm 9 : Loobuge Kubernetes SecurityContextis kõik võimalused

Kuna Kubernetes võib loobuda ühest võimalusest, võib see turvakonteksti kaudu loobuda ka kõigist võimalustest. Selles etapis loobuge kõigist konteineri võimalustest, viidates antud käsule:

> nano samplenocap.yaml

Pärast seda konfigureerige fail samplenocap.yaml, kasutades järgmist käsku:

> kubectl luua -f samplenocap.yaml

Liigume nüüd järgmise sammu juurde, et loobuda kõigist meie turvakonteksti seadetest.

10. samm: konfigureerige kõik YAML-faili võimalused

Selles etapis avage 9. toimingus loodud yaml-fail. Seejärel konfigureerige konteiner.securityContext ja loobuge konteineri kõigist võimalustest.

Seadistatud fail on selline:

Samm üksteist : Kontrollige võimalusi

Võimaluste teabe nägemiseks käivitage nocaps in capsh. Selles etapis kasutage järgmist käsku ja kuvage kõik konteineri võimalused:

> kubectl täitja - -stdin - -tty nocaps - - tuhk

Mahutavusi saab kontrollida järgmisel joonisel, käivitades samplenocapsi yaml-faili capsh-vormingus:

> # capsh - -print

Eelmine väljund näitab, et praegune=”” ja piirdekomplekt=”” on nüüd tühjad. Võimalused langevad edukalt.

Samm 1 2 : Installige Bash

Selles etapis installige Bash apk-i kaudu, kuna mõned süsteemifunktsioonid ei tööta, kui meil pole üldse võimalusi. Kuigi meie konteiner töötab juurkontorina, ebaõnnestub Bashi paketi installimine.

> # apk lisage bash

Samm 1 3 : Kontrollige võimaluste teavet

Meie konteineri võimaluste vaatamiseks on mitu võimalust, näiteks käskude capsh ja proc kasutamine. Selles etapis kuvame konteineri mahud käsu proc abil ja proc kuvab mahud bitmap-na. Kuigi see pole nii loetav kui capshi tulemus, tähistab iga siin määratletud bitt teatud võimet.

> # cd /proc/1/

Siin näeme, et sellel konkreetsel konteineril pole lubatud võimalusi; kõik need väärtused on nullid.

Samm 1 4 : Kubernetes SecurityContextis ühe võimaluse lisamine

Eelmistes sammudes loobusime ühest võimalusest, milleks on CAP_MKNOD, ja loobusime kõigist võimalustest. Kuid selles etapis saame võimalused tagasi lisada.

YAML-faili loomiseks käivitage järgmine käsk:

> nano sampleadd.yaml

Pärast seda konfigureerige fail sampleadd.yaml.

> kubectl luua -f sampleadd.yaml

Proovime nüüd faili sampleadd.yaml ja lisame oma turvakonteksti seadetes ühe mahu.

Samm 1 5 : Konfigureerige YAML-failis üks võimalus

Nüüd konfigureerime faili, lisades faili spec.container.securityContext funktsiooni capabilities.add [MKNOD].

Võimalus kuvatakse YAML-failis.

Samm 16 : Kontrollige võimalusi

Selles etapis käivitage addcaps, et kontrollida võimalusi, kasutades järgmist käsku:

> kubectl täitja - -stdin - -tty addcaps - - nagu

Lisatud võimsust saab näha järgmises antud väljundis:

praegune = cap_mknod+ep

Piirdekomplekt = cap_mknod

> # capsh - -print

Järeldus

Esmalt õppisite juurutatud näitest konteineri vaikevõimaluste kohta, mis määratakse käitamisajal, mis kuvatakse käsuga capsh. Järgmisena õppisite konteinerisse nimega CAP_MKNOD ühe võimaluse viskama. Seejärel õppisite ka seda, kuidas tühistada konteineri kõik võimalused, kasutades konfiguratsiooni //drop: –all. Seejärel kasutasime konteinerite võimaluste kuvamiseks kahte võimalust – kasutades käske capsh ja proc.