Kubernetes SecurityContext(s)
PodSecurityContext
Unapotaja muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:
Kuwa na runASNonRoot kama Kweli
Kupangilia runAsUser
Ikiwezekana, fikiria kupunguza ruhusa kwa kuonyesha seLinuxOptions na seccompProfile
USIMPE upatikanaji wa kikundi cha mamlaka kupitia runAsGroup na supplementaryGroups
fsGroup nambari | Kikundi maalum cha ziada kinachotumika kwa kontena zote katika podi. Baadhi ya aina za kiasi cha data kuruhusu Kubelet kubadilisha umiliki wa kiasi hicho cha data ili kumilikiwe na podi: 1. GID inayomiliki itakuwa FSGroup 2. Biti ya setgid imewekwa (faili mpya zilizoundwa kwenye kiasi zitamilikiwa na FSGroup) 3. Biti za ruhusa zimeongezwa na rw-rw---- Ikiwa haijawekwa, Kubelet haitabadilisha umiliki na ruhusa ya kiasi chochote |
fsGroupChangePolicy herufi | Hii inadefinisha tabia ya kubadilisha umiliki na ruhusa ya kiasi cha data kabla ya kuwekwa wazi ndani ya Podi. |
runAsGroup nambari | GID ya kuendesha kuingia kwa mchakato wa kontena. Inatumia chaguo la wakati wa utekelezaji ikiwa haijawekwa. Inaweza pia kuwekwa katika Muktadha wa Usalama. |
runAsNonRoot kweli | Inaonyesha kwamba kontena lazima iende kama mtumiaji asiye wa mizizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa utekelezaji ili kuhakikisha kuwa haifanyi kazi kama UID 0 (mizizi) na kushindwa kuanza kontena ikiwa inafanya hivyo. |
runAsUser nambari | UID ya kuendesha kuingia kwa mchakato wa kontena. Ina default kwa mtumiaji aliyeainishwa kwenye metadata ya picha ikiwa haijawekwa. |
seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux | Muktadha wa SELinux utakaotumiwa kwa kontena zote. Ikiwa haijawekwa, muda wa utekelezaji wa kontena utatenga muktadha wa SELinux wa nasibu kwa kila kontena. |
seccompProfile SeccompProfile Maelezo zaidi kuhusu Seccomp | Chaguo za seccomp kutumika na kontena katika podi hii. |
supplementalGroups orodha ya nambari | Orodha ya vikundi vinavyotumika kwa mchakato wa kwanza unaotekelezwa katika kila kontena, mbali na GID kuu ya kontena. |
Sysctls inashikilia orodha ya sysctls zilizotengwa kwa podi. Podi zenye sysctls zisizoungwa mkono (na muda wa utekelezaji wa kontena) zinaweza kushindwa kuzinduliwa. | |
Mipangilio maalum ya Windows inayotumiwa kwa kontena zote. Ikiwa haijawekwa, chaguo ndani ya Muktadha wa Usalama wa kontena itatumika. | |
## SecurityContext |
Muktadha huu umewekwa ndani ya ufafanuzi wa vyombo. Kutoka mtazamo wa usalama wa kujilinda unapaswa kuzingatia:
allowPrivilegeEscalation iwe False
Usiweke capabilities nyeti (na ondoa zile usizohitaji)
privileged iwe False
Ikiwezekana, weka readOnlyFilesystem kama True
Weka runAsNonRoot iwe True na weka runAsUser
Ikiwezekana, zingatia kupunguza ruhusa kwa kuonyesha seLinuxOptions na seccompProfile
USIPE upatikanaji wa kikundi cha privilege kupitia runAsGroup.
Tambua kuwa sifa zilizowekwa katika SecurityContext na PodSecurityContext, thamani iliyoainishwa katika SecurityContext inachukua kipaumbele.
allowPrivilegeEscalation boolean | AllowPrivilegeEscalation inadhibiti ikiwa mchakato unaweza kupata mamlaka zaidi kuliko mchakato wake mzazi. Bool hii moja kwa moja inadhibiti ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa chombo. AllowPrivilegeEscalation ni kweli daima wakati chombo kinakimbia kama Privileged au ina CAP_SYS_ADMIN |
capabilities Capabilities Maelezo zaidi kuhusu Capabilities | uwezo wa kuongeza/kuondoa wakati wa kukimbia vyombo. Ina default kwa seti ya uwezo ya msingi. |
privileged boolean | Kimbia chombo katika hali ya kuwa na mamlaka. Mchakato katika vyombo vilivyo na mamlaka ni sawa na root kwenye mwenyeji. Ina default kuwa ni uongo. |
procMount string | procMount inaashiria aina ya proc mount ya kutumia kwa vyombo. Chaguo la msingi ni DefaultProcMount ambayo hutumia mipangilio ya msingi ya runtime ya chombo kwa njia za kusoma tu na njia zilizofichwa. |
readOnlyRootFilesystem boolean | Ikiwa chombo hiki kina mfumo wa mizizi wa kusoma tu. Chaguo la msingi ni uongo. |
runAsGroup integer | GID ya kukimbia kuingia ya mchakato wa chombo. Inatumia chaguo la runtime ikiwa halijaainishwa. |
runAsNonRoot boolean | Inaonyesha kuwa chombo lazima kikimbie kama mtumiaji asiye na mizizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa runtime ili kuhakikisha kuwa haikimbi kama UID 0 (mizizi) na itashindwa kuanza chombo ikiwa itakimbia. |
runAsUser integer | UID ya kukimbia kuingia ya mchakato wa chombo. Chaguo la msingi ni mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijaainishwa. |
seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux | Muktadha wa SELinux utakaotumiwa kwa chombo. Ikiwa haijaainishwa, runtime ya chombo itatenga muktadha wa SELinux wa kubahatisha kwa kila chombo. |
chaguo za seccomp za kutumia na chombo hiki. | |
Mipangilio maalum ya Windows inayotumiwa kwa vyombo vyote. |
Marejeo
Last updated