Adja hozzá vagy távolítsa el a Linux-képességeket a Kubernetes SecurityContext alkalmazásban

Adja Hozza Vagy Tavolitsa El A Linux Kepessegeket A Kubernetes Securitycontext Alkalmazasban



Nehéz lehet a Kubernetes-tárolóban lévő egyes pod és tárolók számára biztosított jogosultságok mértékének kezelése. Használhatjuk a Kubernetes SecurityContext képességeit a Linux-képességek hozzáadására vagy törlésére a Pod-ból és a tárolóból a tároló biztonságának növelése érdekében. Ez a cikk a securityContext használatával foglalkozik a képességek hozzáadásának és törlésének egyszerű példájával. A yaml-fájl konfigurációja az összes képesség törlésére és csak egy képesség hozzáadására a tárolóhoz a példapéldában található. Ebben a cikkben a proc és capsh parancsokat használjuk a tároló képességeinek megjelenítésére.

1. lépés: Indítsa el a Minikube szervert







Először indítsa el a minikube szervert, hogy futtassa az alkalmazást, és használja a kubectl utasításokat. Csomópontjait, podjait és akár fürtjét is üzembe helyezheti a Kubernetes környezetben található minikube-kiszolgáló használatával. A következő parancsot kell használni a minikube aktív módban tartásához:



> indítsa el a minikube-ot



Ezzel a minikube szerver bekapcsolódik, és a Kubernetes környezet készen áll a használatra.





2. lépés: Hozzon létre egy Kubernetes YAML fájlt



A második lépésben hozzon létre egy YAML-fájlt a pod üzembe helyezéséhez.

Kövesse a lépéseket a yaml fájl nano használatával történő létrehozásához:

  • Nyissa meg a könyvtár elérési útját, ahol létre szeretné hozni a fájlt, vagy módosítani kíván egy meglévő fájlt.
  • Írja be a nano parancsot, majd a fájl nevét.

Futtassa a következő nano parancsot. Létrehoz egy „nano podsample.yaml” nevű YAML konfigurációs fájlt.

> nano podsample.yaml

Térjünk át a következő lépésre, amely segít megtudni, hogyan kell konfigurálni egy podsample.yaml fájlt.

3. lépés: Konfigurálja a YAML fájlt

Az előző lépésben hozzáadjuk a capsh eszközt, hogy láthassuk tárolónk képességeit.

Ne feledje, hogy ezen paraméterek egyike sincs konfigurálva ehhez a tárolóhoz a securityContext szakaszhoz. Így ezek mindegyike a rendszer alapértelmezett értékére van állítva. Vegye figyelembe azt a tényt, hogy ez a tároló alapértelmezett felhasználóként működik, amely abban a Docker-fájlban van megadva, amelyből készült, ha nincs felhasználó megadva számára a Kubernetesben. Sok tároló esetén ez az alapértelmezett felhasználó a gyökér.

4. lépés: Hozzon létre egy Pod-ot

Ebben a lépésben hozzuk létre a podsample.yaml fájlt a következő csatolt paranccsal:

> kubectl alkalmazni -f podsample.yaml

5. lépés: Ellenőrizze a képességeket

Az előző lépésben egy pod jön létre és fut.

Most, hogy van benne shell, a capsh segítségével ellenőrizhetjük a képességeit a következő paranccsal:

> $ kubectl végrehajtó - -stdin - -tty sapkák - - hamu

A capsh paranccsal megtekintheti a tároló alapértelmezett kapacitásait, amelyek az alábbiak szerint vannak felsorolva:

Az adott kimenetből megfigyelhető, hogy a tárolónak számos alapértelmezett képessége van, amelyeket futás közben kap a konténer.

6. lépés: Dobd el a Egyetlen Képes Y a Kubernetes SecurityContextben

Ebben a lépésben elvetjük a tároló egyetlen képességét.

Állítsuk be a yaml fájlt a következő paranccsal:

> nano dropod.yaml

Ezután lépjen a droppod.yaml fájl konfigurálásához a következő megadott paranccsal:

> kubectl alkalmazni -f droppod.yaml

Lépés 7 : Konfigurálja az egyetlen képesség hozzáadását a YAML fájlban

Ebben a lépésben nyissa meg a 6. lépésben létrehozott yaml fájlt (dropped.yaml). Ezután állítsa be a tárolót úgy, hogy többé ne férhessen hozzá a CAP_MKNOD képességhez, ami eltávolítja az új fájlrendszer-csomópontok létrehozásának lehetőségét.

A konfigurált fájl a következő:

Lépés 8 : Ellenőrizze a képességeket

A yaml fájl a CAP_MKNOD képesség elvetésére van konfigurálva.

Ebben a lépésben futtassa és futtassa a dropcaps.yaml fájlt a tároló képességeinek ellenőrzéséhez a következő paranccsal:

> $ kubectl végrehajtó - -stdin - -tty cseppsapkák - - hamu

A kapacitások a dropcaps fájl futtatásával ellenőrizhetők:

> # capsh - -print

Megfigyelhetjük, hogy ez a pod csökkentette a CAP_MKNOD képességet az első podhoz képest.

Lépés 9 : Hagyja el az összes funkciót a Kubernetes SecurityContextben

Mivel a Kubernetes egyetlen képességet is elvethet, a securityContexten keresztül az összes képességet is megszüntetheti. Ebben a lépésben dobja el a tároló összes képességét a megadott parancs megadásával:

> nano samplenocap.yaml

Ezután állítsa be a samplenocap.yaml fájlt a következő paranccsal:

> kubectl létrehozása -f samplenocap.yaml

Most lépjünk a következő lépésre, hogy a securityContext beállításainkban minden kapacitást felhagyjunk.

10. lépés: Konfigurálja az összes képességet a YAML fájlban

Ebben a lépésben nyissa meg a 9. lépésben létrehozott yaml-fájlt. Ezután végezze el a konfigurálást a container.securityContext  azon belül, és engedje el a tároló összes funkcióját.

A konfigurált fájl a következő:

Lépés tizenegy : Ellenőrizze a képességeket

Futtassa a nocaps-t capsh-ban a képességekkel kapcsolatos információk megtekintéséhez. Ebben a lépésben használja a következő parancsot, és jelenítse meg a tároló összes képességét:

> kubectl végrehajtó - -stdin - -tty nocaps - - hamu

A kapacitások az alábbi ábrán ellenőrizhetők a samplenocaps yaml fájl capsh-ban történő futtatásával:

> # capsh - -print

Az előző kimenet azt mutatja, hogy a current=”” és a bounding set=”” most üres. A képességek sikeresen megszakadtak.

1. lépés 2 : Telepítse a Bash-t

Ebben a lépésben telepítse a Bash-t apk-n keresztül, mivel bizonyos rendszerfunkciók nem működnek, ha egyáltalán nem rendelkezünk képességekkel. Annak ellenére, hogy tárolónk rootként működik, a Bash-csomag telepítése meghiúsul.

> # apk bash hozzáadása

1. lépés 3 : Ellenőrizze a Képességinformációkat

Számos módja van a tárolónk képességeinek megtekintésére, például a capsh és a proc parancsok használatával. Ebben a lépésben a proc paranccsal jelenítjük meg a tárolókapacitásokat, a proc pedig bittérképként jeleníti meg a kapacitásokat. Bár nem annyira olvasható, mint a capsh eredménye, minden itt meghatározott bit egy bizonyos képességet jelent.

> # cd /proc/1/

Itt láthatjuk, hogy ennek az adott tárolónak nincsenek engedélyezett képességei; ezek az értékek mindegyike nulla.

1. lépés 4 : Egyetlen képesség hozzáadása a Kubernetes SecurityContextben

Az előző lépésekben elvetettünk egyetlen képességet, amely a CAP_MKNOD, és minden képességet elvetettünk. De ebben a lépésben visszaadhatjuk a képességeket.

A yAML fájl létrehozásához hajtsa végre a következő parancsot:

> nano sampleadd.yaml

Ezt követően állítsa be a sampleadd.yaml fájlt.

> kubectl létrehozni -f sampleadd.yaml

Most próbáljuk ki a sampleadd.yaml fájlt, és adjunk hozzá egyetlen kapacitást a securityContext beállításainkhoz.

1. lépés 5 : Konfigurálja az egyetlen képességet a YAML fájlban

Most állítsuk be a fájlt úgy, hogy hozzáadjuk a spec.container.securityContext képességét a capabilities.add ['MKNOD'] fájlhoz.

A képesség a YAML fájlban jelenik meg.

Lépés 16 : Ellenőrizze a képességeket

Ebben a lépésben futtassa az addcaps programot a képességek ellenőrzéséhez a következő paranccsal:

> kubectl végrehajtó - -stdin - -tty addcaps - - mint

A hozzáadott kapacitás a következő megadott kimeneten látható:

áram = cap_mknod+ep

Határkészlet = cap_mknod

> # capsh - -print

Következtetés

A megvalósított példából először megismerte a tároló alapértelmezett képességeit, amelyek a capsh paranccsal megjelenített futási időben hozzá vannak rendelve. Ezután megtanult egyetlen képességet bedobni egy CAP_MKNOD nevű tárolóba. Ezután azt is megtanulta, hogyan lehet eldobni a tároló összes képességét a //drop: –all konfigurációval. Ezután két módszert használtunk a tárolók képességeinek megjelenítésére – a capsh és proc parancsok használatával.