Kubernetes SecurityContext(s)
PodSecurityContext
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
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 |
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.
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. |
Reference
Last updated