Kubernetes SecurityContext(s)
PodSecurityContext
Quando si specifica il contesto di sicurezza di un Pod, è possibile utilizzare diversi attributi. Da un punto di vista della sicurezza difensiva, si dovrebbe considerare:
Avere runASNonRoot come True
Configurare runAsUser
Se possibile, considerare limitare le autorizzazioni indicando seLinuxOptions e seccompProfile
NON concedere l'accesso al gruppo privilegiato tramite runAsGroup e supplementaryGroups
fsGroup integer | Un gruppo supplementare speciale che si applica a tutti i container in un pod. Alcuni tipi di volumi consentono al Kubelet di modificare la proprietà di quel volume in modo che sia di proprietà del pod: 1. Il GID proprietario sarà il FSGroup 2. Il bit setgid è impostato (i nuovi file creati nel volume saranno di proprietà di FSGroup) 3. I bit di autorizzazione sono OR'd con rw-rw---- Se non impostato, il Kubelet non modificherà la proprietà e le autorizzazioni di nessun volume |
fsGroupChangePolicy string | Questo definisce il comportamento del cambiamento della proprietà e delle autorizzazioni del volume prima di essere esposto all'interno del Pod. |
runAsGroup integer | Il GID per eseguire il punto di ingresso del processo del container. Utilizza il valore predefinito in fase di esecuzione se non impostato. Può anche essere impostato in SecurityContext. |
runAsNonRoot boolean | Indica che il container deve essere eseguito come utente non root. Se true, il Kubelet convaliderà l'immagine in fase di esecuzione per garantire che non venga eseguita come UID 0 (root) e fallirà nell'avviare il container se lo fa. |
runAsUser integer | L'UID per eseguire il punto di ingresso del processo del container. Predefinito all'utente specificato nei metadati dell'immagine se non specificato. |
seLinuxOptions SELinuxOptions Ulteriori informazioni su seLinux | Il contest SELinux da applicare a tutti i container. Se non specificato, il runtime del container assegnerà un contest SELinux casuale per ciascun container. |
seccompProfile SeccompProfile Ulteriori informazioni su Seccomp | Le opzioni seccomp da utilizzare dai container in questo pod. |
supplementalGroups array di interi | Un elenco di gruppi applicati al primo processo eseguito in ciascun container, oltre al GID primario del container. |
Sysctls contiene un elenco di sysctls namespaced utilizzati per il pod. I pod con sysctls non supportati (dal runtime del container) potrebbero non riuscire a essere avviati. | |
Le impostazioni specifiche di Windows applicate a tutti i container. Se non specificato, verranno utilizzate le opzioni all'interno del SecurityContext di un container. | |
## SecurityContext |
Questo contesto è impostato all'interno delle definizioni dei container. Da un punto di vista della sicurezza difensiva si dovrebbe considerare:
Impostare allowPrivilegeEscalation su False
Non aggiungere capabilities sensibili (e rimuovere quelle non necessarie)
Impostare privileged su False
Se possibile, impostare readOnlyFilesystem su True
Impostare runAsNonRoot su True e impostare un runAsUser
Se possibile, considerare di limitare le autorizzazioni indicando seLinuxOptions e seccompProfile
NON dare accesso al gruppo di privilegi tramite runAsGroup
Si noti che gli attributi impostati in SecurityContext e PodSecurityContext, il valore specificato in SecurityContext ha precedenza.
allowPrivilegeEscalation boolean | AllowPrivilegeEscalation controlla se un processo può ottenere più privilegi rispetto al processo genitore. Questo bool controlla direttamente se il flag no_new_privs verrà impostato sul processo del container. AllowPrivilegeEscalation è sempre true quando il container viene eseguito come Privileged o ha CAP_SYS_ADMIN |
capabilities Capabilities Ulteriori informazioni su Capabilities | Le capabilities da aggiungere/rimuovere durante l'esecuzione dei container. Predefinito al set predefinito di capabilities. |
privileged boolean | Esegui il container in modalità privilegiata. I processi nei container privilegiati sono essenzialmente equivalenti a root sull'host. Predefinito a false. |
procMount string | procMount indica il tipo di montaggio proc da utilizzare per i container. Il valore predefinito è DefaultProcMount che utilizza le impostazioni predefinite del runtime del container per i percorsi in sola lettura e i percorsi mascherati. |
readOnlyRootFilesystem boolean | Se questo container ha un filesystem root in sola lettura. Predefinito è false. |
runAsGroup integer | Il GID per eseguire il punto di ingresso del processo del container. Utilizza il valore predefinito del runtime se non impostato. |
runAsNonRoot boolean | Indica che il container deve eseguire come utente non root. Se true, il Kubelet convaliderà l'immagine al runtime per garantire che non venga eseguita come UID 0 (root) e fallirà nel avviare il container se lo fa. |
runAsUser integer | L'UID per eseguire il punto di ingresso del processo del container. Predefinito all'utente specificato nei metadati dell'immagine se non specificato. |
seLinuxOptions SELinuxOptions Ulteriori informazioni su seLinux | Il contest SELinux da applicare al container. Se non specificato, il runtime del container assegnerà un contest SELinux casuale per ciascun container. |
Le opzioni seccomp da utilizzare da questo container. | |
Le impostazioni specifiche di Windows applicate a tutti i container. |
References
Last updated