Lisää tai poista Linux-ominaisuudet Kubernetes SecurityContextissa

Lisaa Tai Poista Linux Ominaisuudet Kubernetes Securitycontextissa



Saattaa olla vaikeaa hallita Kubernetes-säilön kullekin Podille ja säilölle annettujen oikeuksien määrää. Saatamme käyttää Kubernetes SecurityContext-ominaisuuksia lisätäksemme tai poistaaksemme Linux-ominaisuuksia Podista ja Säilystä lisätäksemme säilön turvallisuutta. Tässä artikkelissa keskitytään securityContextin käyttämiseen yksinkertaisen esimerkin ominaisuuksien lisäämisestä ja poistamisesta. Esimerkkiesimerkissä on yaml-tiedoston määritys kaikkien ominaisuuksien poistamiseksi ja vain yhden ominaisuuden lisäämiseksi säilöön. Tässä artikkelissa proc- ja capsh-komentoja käytetään näyttämään säilön ominaisuudet.

Vaihe 1: Käynnistä Minikube-palvelin







Käynnistä ensin minikube-palvelin, jotta voit suorittaa sovelluksesi ja käyttää kubectl-ohjeita. Voit ottaa käyttöön solmut, poddit ja jopa klusterin käyttämällä minikube-palvelinta Kubernetes-ympäristössä. Seuraavaa komentoa on käytettävä pitämään minikube aktiivisessa tilassa:



> aloita minikube



Näin minikube-palvelin kytketään päälle ja Kubernetes-ympäristö on valmis käytettäväksi.





Vaihe 2: Luo Kubernetes YAML -tiedosto



Luo toisessa vaiheessa YAML-tiedosto podin käyttöönottoa varten.

Luo yaml-tiedosto nanolla seuraavasti:

  • Siirry hakemistopolkuun, johon haluat luoda tiedoston tai muokata olemassa olevaa tiedostoa.
  • Kirjoita nanokomento ja tiedoston nimi.

Suorita seuraava nanokomento. Se luo YAML-määritystiedoston nimeltä 'nano podsample.yaml'.

> nano podsample.yaml

Siirrytään seuraavaan vaiheeseen, joka auttaa sinua määrittämään podsample.yaml-tiedoston.

Vaihe 3: Määritä YAML-tiedosto

Lisäämme capsh-työkalun edellisessä vaiheessa, jotta voimme nähdä säilömme ominaisuudet.

Huomaa, että mitään näistä parametreista ei ole määritetty tämän säilön securityContext-osiolle. Siten ne kaikki on asetettu järjestelmän oletusasetuksiin. Ota huomioon, että tämä säilö toimii oletuskäyttäjänä, joka toimitetaan Docker-tiedostossa, josta se on muodostettu, jos sille ei ole määritetty käyttäjää Kubernetesissa. Monissa säilöissä tämä oletuskäyttäjä on pääkäyttäjä.

Vaihe 4: Luo pod

Tässä vaiheessa luodaan podsample.yaml seuraavalla komennolla:

> kubectl soveltaa -f podsample.yaml

Vaihe 5: Tarkista ominaisuudet

Edellisessä vaiheessa pod on luotu ja käynnissä.

Nyt kun meillä on kuori sen sisällä, voimme käyttää capshia varmistaaksemme sen ominaisuudet seuraavalla komennolla:

> $ kubectl exec - -stdin - -tty lippikset - - tuhka

Capsh-komennolla on mahdollista nähdä säilön oletuskapasiteetit, jotka on lueteltu seuraavasti:

Voimme havaita annetusta lähdöstä, että säiliöllä on monia oletusominaisuuksia, jotka annetaan säilölle suorituksen aikana.

Vaihe 6: Pudota Yksittäinen Kyky Y Kubernetes SecurityContextissa

Tässä vaiheessa hylkäämme säiliön yksittäisen kyvyn.

Määritetään yaml-tiedosto seuraavalla komennolla:

> nano dropod.yaml

Tämän jälkeen siirry määrittämään droppod.yaml-tiedosto käyttämällä seuraavaa annettua komentoa:

> kubectl soveltaa -f droppod.yaml

Vaihe 7 : Määritä lisäämään yksi ominaisuus YAML-tiedostoon

Avaa tässä vaiheessa vaiheessa 6 luotu yaml-tiedosto (dropped.yaml). Aseta sitten säilö sellaiseksi, että sillä ei enää ole pääsyä CAP_MKNOD-ominaisuuteen, mikä poistaa mahdollisuuden luoda uusia tiedostojärjestelmäsolmuja.

Määritetty tiedosto on seuraavanlainen:

Vaihe 8 : Tarkista ominaisuudet

Yaml-tiedosto on määritetty poistamaan CAP_MKNOD-ominaisuus.

Suorita ja suorita tässä vaiheessa dropcaps.yaml-tiedosto tarkistaaksesi säilön ominaisuudet käyttämällä seuraavaa komentoa:

> $ kubectl exec - -stdin - -tty drop caps - - tuhka

Kapasiteetit voidaan tarkistaa suorittamalla dropcaps-tiedosto:

> # capsh - -print

Voimme havaita, että tämä pod pudotti CAP_MKNOD-ominaisuuden ensimmäiseen podiin verrattuna.

Vaihe 9 : Pudota kaikki ominaisuudet Kubernetes SecurityContextissa

Koska Kubernetes voi pudottaa yhden ominaisuuden, se voi myös pudottaa kaikki ominaisuudet securityContextin kautta. Tässä vaiheessa hylkää kaikki säilön ominaisuudet antamalla annettu komento:

> nano samplenocap.yaml

Tämän jälkeen määritä samplenocap.yaml-tiedosto käyttämällä seuraavaa komentoa:

> kubectl luoda -f samplenocap.yaml

Siirrytään nyt seuraavaan vaiheeseen ja pudotamme kaikki kapasiteetit securityContext-asetuksistamme.

Vaihe 10: Määritä kaikki YAML-tiedoston ominaisuudet

Avaa tässä vaiheessa vaiheessa 9 luotu yaml-tiedosto. Määritä sitten asetukset konteinerin container.securityContext sisällä ja hylkää kaikki säilön ominaisuudet.

Määritetty tiedosto on seuraavanlainen:

Vaihe yksitoista : Tarkista ominaisuudet

Suorita nocaps in capsh nähdäksesi tiedot ominaisuuksista. Käytä tässä vaiheessa seuraavaa komentoa ja näytä kaikki säilön ominaisuudet:

> kubectl exec - -stdin - -tty nocaps - - tuhka

Kapasiteetit voidaan tarkistaa seuraavassa kuvassa suorittamalla samplenocaps yaml-tiedosto capsh-muodossa:

> # capsh - -print

Edellinen tulos osoittaa, että nykyinen =”” ja rajausjoukko=”” ovat nyt tyhjiä. Valmiudet pudotetaan onnistuneesti.

Vaihe 1 2 : Asenna Bash

Asenna tässä vaiheessa Bash apk:n kautta, koska jotkin järjestelmätoiminnot eivät toimi, jos meillä ei ole lainkaan ominaisuuksia. Vaikka konttimme toimii pääkäyttäjänä, Bash-paketin asennus epäonnistuu.

> # apk lisää bash

Vaihe 1 3 : Tarkista ominaisuustiedot

On olemassa useita tapoja tarkastella säilömme ominaisuuksia, kuten käyttämällä capsh- ja proc-komentoja. Tässä vaiheessa näytämme säilön kapasiteetit käyttämällä proc-komentoa ja proc näyttää kapasiteetit bittikarttana. Vaikka se ei ole aivan yhtä luettavissa kuin capsh:n tulos, jokainen tässä määritelty bitti edustaa tiettyä ominaisuutta.

> # cd /proc/1/

Tässä voimme nähdä, että tällä tietyllä säilölle ei ole otettu käyttöön ominaisuuksia; kaikki nämä arvot ovat nollia.

Vaihe 1 4 : Yhden ominaisuuden lisääminen Kubernetes SecurityContextiin

Edellisissä vaiheissa hylkäsimme yhden ominaisuuden, joka on CAP_MKNOD, ja hylkäsimme kaikki ominaisuudet. Mutta tässä vaiheessa voimme lisätä ominaisuudet takaisin.

Luo yAML-tiedosto suorittamalla seuraava komento:

> nano sampleadd.yaml

Tämän jälkeen määritä sampleadd.yaml-tiedosto.

> kubectl luoda -f sampleadd.yaml

Kokeillaan nyt sampleadd.yaml-tiedostoa ja lisätään yksi kapasiteetti securityContext-asetuksiin.

Vaihe 1 5 : Määritä yksi ominaisuus YAML-tiedostossa

Määritetään nyt tiedosto lisäämällä spec.container.securityContext-ominaisuus kohtaan capabilities.add ['MKNOD'].

Ominaisuus näkyy YAML-tiedostossa.

Vaihe 16 : Tarkista ominaisuudet

Suorita tässä vaiheessa addcaps tarkistaaksesi ominaisuudet käyttämällä seuraavaa komentoa:

> kubectl exec - -stdin - -tty addcaps - - kuten

Lisätty kapasiteetti näkyy seuraavassa annetussa lähdössä:

nykyinen = cap_mknod+ep

Rajoitusjoukko = cap_mknod

> # capsh - -print

Johtopäätös

Opit ensin toteutetusta esimerkistä säilön oletusominaisuuksista, jotka määritetään suoritusaikana, joka näytetään capsh-komennolla. Seuraavaksi opit pudottamaan yhden ominaisuuden säilöön nimeltä CAP_MKNOD. Sitten opit myös pudottamaan kaikki säilön ominaisuudet //drop: –all -kokoonpanon avulla. Sitten käytimme kahta tapaa näyttää säiliöiden ominaisuudet - käyttämällä capsh- ja proc-komentoja.