Kubernetes Runasuser

Kubernetes Runasuser
Runasuser definerer bruker -ID med spesifikke sikkerhetsprivilegier som ikke har bekymring for administratorrettighetene. Denne artikkelen vil definere hva en Kubernetes runasuser er og hvordan den kan brukes i Kubernetes -miljøet for å sette sikkerhetskonteksten for en beholder eller en pod. Her vil vi demonstrere hvordan vi kan sette privilegiene i sikkerhetssammenheng for en pod eller container.

Hva er Runasuser i Kubernetes -miljøet?

RunasUser er et av sikkerhetskontekstfeltene som er spesifisert i konfigurasjonsfilen som spesifiserer bruker -IDen for å gi sikkerhetsprivilegiene for en viss beholder eller POD. Verdien av runasuser -feltet bestemmer at alle prosessene i beholderen vil utføre med den spesifiserte runasuser -ID.

Sikkerhetskonteksten brukes til å definere tilgangskontrollinnstillingene eller definere brukerrettighetene for en viss beholder eller en pod. De viktigste sikkerhetskontekstinnstillingene inkluderer bruker -ID, primærgruppe -ID, supplerende gruppe -ID, seccomp, apparmor, linex -funksjoner osv. Sikkerhetskontekstinnstillingen er ikke begrenset til disse tingene, det er mange flere innstillinger inkludert.

I denne artikkelen tar vi imidlertid sikte på å veilede deg om hvordan du kan definere sikkerhetsprivilegiene for en bestemt bruker, slik at prosessen kan utføres ved å bruke den brukerens ID i stedet for administratorbrukeren. Så la oss flytte til neste avsnitt for å sjekke for å lære hvordan du kan definere sikkerhetskontekstinnstillingen for en beholder eller en pod.

Forutsetninger

Før du begynner, må du sørge for at systemet oppfyller de forutsetningsbehovene slik at du ikke ender opp med noen feil mens du bruker Kubernetes som en generell bruker. Listen over forutsetningene er gitt nedenfor:

  • Ubuntu 20.04 eller noen annen siste versjon
  • Minikube Cluster for å samhandle med noder
  • Kubeclt kommandolinjeverktøy for å samhandle med klyngen i Kubernetes -miljøet

Hvis du har alle disse verktøyene installert i systemet ditt, er du klar til å bruke Kubernetes -miljøet som en generell bruker.

Spesifiser RunAsuser Security Context for Kubernetes -miljøet

Generelt sett er alle kommandoene som kjøres eller arbeidet blitt gjort i Kubernetes -miljøet med admin -privilegier. Hvis du trenger å endre sikkerhetsprivilegiene til brukeren, kan du endre brukerrettighetene ved å gjøre det mulig for en bestemt bruker å ha tilgang til systemet. Dette kan gjøres ved å følge prosessen gitt nedenfor.

Først må vi sørge for at Minikube -klyngen er i gang med suksess, og for det vil vi bruke følgende kommando:

> Minikube Start

Dette starter Minikube -klyngen hvis den ikke har blitt startet tidligere eller sikre at Minikube er i aktiv modus.

Nå som Minikube -klyngen er i gang, er vi klare til å endre sikkerhetsbegrensningene for systemet vårt. For å spesifisere sikkerhetsinnstillingene for en pod i klyngen, trenger vi en YAML -konfigurasjonsfil der vi trenger å oppgi distribusjonsdefinisjonen. Bruk 'Nano' -kommandoen for å produsere en ny YAML -konfigurasjonsfil.

> Nano Sc.Yaml

Denne kommandoen vil opprette en YAML -fil som heter SC.Yaml. Nå kan du legge distribusjonsdefinisjonen i denne konfigurasjonsfilen. Distribusjonsdefinisjonen er gitt nedenfor for din referanse:

Lagre distribusjonsdefinisjonen i SC.YAML -konfigurasjonsfil slik at vi kan bruke distribusjonen på Pods. Merk at verdien av runasuser er 1000, noe som betyr at bruker -ID er 1000 som vi kan bruke for å referere til den spesifikke brukeren. Runasuser spesifiserer at alle prosessene for containerne i poden vil utføre med den gitte runasuser -verdien. RinasGroup spesifiserer den primære gruppe -IDen for prosessen i podens beholder mens FSGroup spesifiserer supplerende gruppe -ID for prosessen i podens beholder.

La oss nå bruke konfigurasjonsdefinisjonen på distribusjonen ved å bruke kommandoen gitt nedenfor:

> KUBECTL Søk -f SC.Yaml

Dette har laget belgene fra konfigurasjonsdefinisjonen. La oss bekrefte gjeldende status for poden i klyngen med følgende kommando:

> Kubectl Få POD Security-Context-Demo

Statusen til poden er 'kjører', noe som betyr at vi kan distribuere skallet i denne beholderen. Bruk følgende kommando for å få skallet til den løpende sikkerhetskontekst-Demo Pod's Container:

> KUBECTL EXEC -IT SIKKERHETS -KONTEXT -DEMO - -SH

Neste trinn er å liste opp alle prosessene som kjører:

> Ps

Siden vi har definert runasuser som 1000, kjører alle prosessene som 1000, noe som betyr at vi har gitt brukeren 1000 privilegier å ha tilgang til systemet. Sikkerhetspreferansene er endret for brukeren 1000. Nå vil alle prosesser kjøres med bruker -ID 1000. La oss navigere til en annen direkte for å sjekke sikkerhetskonteksten til bruker 1000:

> CD /data

Dette vil navigere oss til /Data -katalogen der vi kan liste opp alt i katalogen med følgende kommando:

> ls -l

I utdataene over kan du se at /Data -katalogen bruker tilleggs -bruker -ID 2000. La oss nå navigere til en annen katalog for å sjekke hvilken bruker -ID den bruker:

> CD -demo

Dette tar oss til /Demo Directory der vi kan liste alt fra katalogen:

> ls -l

La oss se hvilke ID (er) som har blitt brukt av /Data /Demo Directory:

> id

Utgangen viser at filene i /Data /Demo -katalogen bruker brukeren ID 1000, Primary Group ID 3000 og Supplementary Group ID 2000.

For å lukke skallet, kan du bruke utgangskommandoen og komme deg ut av skallet umiddelbart:

> eksisterer

Husk at vi har navigert til forskjellige kataloger for å sjekke Runasuser -privilegiene, så vi må gå ut av skallet på riktig måte for å få tilbake sikkerhetsrettighetene fra brukeren.

Konklusjon

I denne artikkelen lærte vi spesifikt om Runasuser sikkerhetsprivilegier. Vi lærte at prosessen kan utføres i Kubernetes -miljøet uten å ha administratorrettigheter. Sikkerhetskonteksten kan defineres for andre brukere, og de kan ha sikker tilgang til systemet og kan kjøre alle prosessene etter behov. Når du aktiverer sikkerhetskonteksten for en bestemt bruker ved å tilordne dem RunasUser -IDen, vil alle prosessene i podens beholdere kjøres med den IDen.