Kubernetes SecurityContext(s)
Last updated
Last updated
Prilikom specificiranja security konteksta za Pod, možete koristiti nekoliko atributa. Sa defanzivne tačke gledišta bezbednosti, trebali biste razmotriti:
Da imate runASNonRoot kao True
Da konfigurišete runAsUser
Ako je moguće, razmotrite ograničavanje dozvola koje ukazuju na seLinuxOptions i seccompProfile
NE dajte pristup privilegijama grupi putem runAsGroup i supplementaryGroups
Ovaj kontekst se postavlja unutar definicija kontejnera. Sa aspekta defanzivne sigurnosti, trebali biste razmotriti:
allowPrivilegeEscalation postaviti na False
Ne dodavati osetljive capabilities (i ukloniti one koje nisu potrebne)
privileged postaviti na False
Ako je moguće, postaviti readOnlyFilesystem na True
Postaviti runAsNonRoot na True i postaviti runAsUser
Ako je moguće, razmotriti ograničavanje dozvola putem seLinuxOptions i seccompProfile
NE davati pristup privilegovanom grupom putem runAsGroup.
Napomena: Atributi postavljeni u SecurityContext i PodSecurityContext, vrednost specificirana u SecurityContext ima prioritet.
fsGroup integer
Specijalna dodatna grupa koja se odnosi na sve kontejnere u pod-u. Neke vrste volumena omogućavaju Kubelet-u da promeni vlasništvo tog volumena tako da bude vlasništvo pod-a: 1. GID vlasnika će biti FSGroup 2. Bit setgid je postavljen (novi fajlovi kreirani u volumenu će biti vlasništvo FSGroup) 3. Dozvole bitova se OR-uju sa rw-rw---- Ako nije postavljeno, Kubelet neće menjati vlasništvo i dozvole nijednog volumena
fsGroupChangePolicy string
Ovo definiše ponašanje promene vlasništva i dozvola volumena pre nego što bude izloženo unutar Pod-a.
runAsGroup integer
GID za pokretanje entrypoint-a procesa kontejnera. Koristi podrazumevane vrednosti ako nije postavljeno. Može se takođe postaviti u SecurityContext-u.
runAsNonRoot boolean
Označava da kontejner mora raditi kao korisnik koji nije root. Ako je tačno, Kubelet će proveriti sliku pri izvršavanju da bi se osigurao da ne radi kao UID 0 (root) i neće pokrenuti kontejner ako to radi.
runAsUser integer
UID za pokretanje entrypoint-a procesa kontejnera. Podrazumevano je korisnik koji je naveden u metapodacima slike ako nije navedeno.
seLinuxOptions SELinuxOptions Više informacija o seLinux-u
SELinux kontekst koji će se primeniti na sve kontejnere. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner.
seccompProfile SeccompProfile Više informacija o Seccomp-u
Seccomp opcije koje će koristiti kontejneri u ovom pod-u.
supplementalGroups integer array
Lista grupa koje se primenjuju na prvi proces pokrenut u svakom kontejneru, pored primarnog GID-a kontejnera.
Sysctl sadrži listu namespaced sysctl-ova koji se koriste za pod. Podovi sa nepodržanim sysctl-ovima (od strane runtime kontejnera) mogu imati problema pri pokretanju.
Windows specifične postavke koje se primenjuju na sve kontejnere. Ako nije navedeno, opcije unutar SecurityContext-a kontejnera će se koristiti.
## SecurityContext
allowPrivilegeEscalation boolean
AllowPrivilegeEscalation kontroliše da li proces može dobiti više privilegija od svog roditeljskog procesa. Ova promenljiva direktno kontroliše da li će biti postavljena zastavica no_new_privs na proces kontejnera. AllowPrivilegeEscalation je uvek tačno kada se kontejner pokreće kao Privileged ili ima CAP_SYS_ADMIN
capabilities Capabilities Više informacija o Capabilities
Capabilities koje se dodaju/uklanjaju prilikom pokretanja kontejnera. Podrazumevano je skup podrazumevanih Capabilities.
privileged boolean
Pokrenuti kontejner u privilegovanom režimu. Procesi u privilegovanom kontejneru su suštinski ekvivalentni root korisniku na hostu. Podrazumevano je false.
procMount string
procMount označava vrstu proc mounta koja se koristi za kontejnere. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti za putanje samo za čitanje i maskirane putanje.
readOnlyRootFilesystem boolean
Da li ovaj kontejner ima samo za čitanje root fajl sistem. Podrazumevano je false.
runAsGroup integer
GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevane vrednosti ako nije postavljeno.
runAsNonRoot boolean
Označava da kontejner mora pokrenuti kao korisnik koji nije root. Ako je tačno, Kubelet će proveriti sliku pri pokretanju kako bi se osiguralo da se ne pokreće kao UID 0 (root) i da neće uspeti da pokrene kontejner ako je tako.
runAsUser integer
UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano je korisnik specificiran u metapodacima slike ako nije navedeno.
seLinuxOptions SELinuxOptions Više informacija o seLinux
SELinux kontekst koji se primenjuje na kontejner. Ako nije navedeno, kontejner će dobiti nasumičan SELinux kontekst od strane kontejner runtime-a.
Seccomp opcije koje se koriste za ovaj kontejner.
Windows specifična podešavanja koja se primenjuju na sve kontejnere.