Kubernetes SecurityContext(s)
PodSecurityContext
Bir Pod'un güvenlik bağlamını belirtirken birkaç özniteliği kullanabilirsiniz. Savunma amaçlı güvenlik açısından aşağıdakileri göz önünde bulundurmalısınız:
runASNonRoot'u True olarak ayarlamak
runAsUser'ı yapılandırmak
Mümkünse, seLinuxOptions ve seccompProfile ile izinleri sınırlamak
runAsGroup ve supplementaryGroups aracılığıyla ayrıcalık grubu erişimini VERMEMEK
fsGroup tamsayı | Bir Pod'daki tüm konteynerlara uygulanan özel bir ek grup. Bazı hacim türleri, Kubelet'in bu hacmin sahipliğini Pod tarafından sahiplenilen bir şekilde değiştirmesine izin verir: 1. Sahip olan GID FSGroup olur 2. setgid biti ayarlanır (hacimde oluşturulan yeni dosyalar FSGroup'a ait olur) 3. İzin bitleri rw-rw---- ile OR'lanır. Ayarlanmamışsa, Kubelet hiçbir hacmin sahipliğini ve izinlerini değiştirmez |
fsGroupChangePolicy dize | Bu, Pod içinde görünmeden önce hacmin sahipliğini ve iznini değiştirme davranışını tanımlar. |
runAsGroup tamsayı | Konteyner sürecinin giriş noktasını çalıştırmak için kullanılacak GID. Ayarlanmamışsa, çalışma zamanı varsayılanı kullanılır. Ayrıca SecurityContext içinde de ayarlanabilir. |
runAsNonRoot mantıksal | Konteynerin bir kök kullanıcı olarak çalışmaması gerektiğini belirtir. Eğer true ise, Kubelet, konteynerin UID 0 (kök) olarak çalışmadığından emin olmak için görüntüyü çalışma zamanında doğrular ve konteyneri başlatamazsa hata verir. |
runAsUser tamsayı | Konteyner sürecinin giriş noktasını çalıştırmak için kullanılacak UID. Belirtilmemişse, görüntü meta verilerinde belirtilen kullanıcıya varsayılan olarak ayarlanır. |
seLinuxOptions SELinuxOptions seLinux hakkında daha fazla bilgi | Tüm konteynerlara uygulanacak SELinux bağlamı. Belirtilmemişse, konteyner çalışma zamanı her konteyner için rastgele bir SELinux bağlamı tahsis eder. |
seccompProfile SeccompProfile Seccomp hakkında daha fazla bilgi | Bu Pod'daki konteynerler tarafından kullanılacak seccomp seçenekleri. |
supplementalGroups tamsayı dizisi | Her konteynerde ilk olarak çalıştırılan sürece uygulanan grupların listesi, konteynerin birincil GID'sine ek olarak. |
Sysctls, Pod için kullanılan isim alanlı sysctl'lerin bir listesini tutar. Konteyner çalışma zamanı tarafından desteklenmeyen sysctl'lerle (tarafından) çalıştırılan Pod'lar başlatılamaz. | |
Tüm konteynerlara uygulanan Windows özel ayarlar. Belirtilmemişse, bir konteynerin SecurityContext içindeki seçenekler kullanılır. | |
## SecurityContext |
Bu bağlam, konteyner tanımları içinde ayarlanır. Savunma odaklı bir güvenlik açısından aşağıdaki hususları göz önünde bulundurmalısınız:
allowPrivilegeEscalation'ı False olarak ayarlayın
Hassas yetenekleri eklemeyin (ve ihtiyaç duymadıklarınızı kaldırın)
privileged'ı False olarak ayarlayın
Mümkünse, readOnlyFilesystem'i True olarak ayarlayın
runAsNonRoot'u True olarak ayarlayın ve bir runAsUser belirleyin
Mümkünse, seLinuxOptions ve seccompProfile'ı belirterek izinleri sınırlayın
runAsGroup üzerinden privilege group erişimini VERMEYİN.
Unutmayın ki, SecurityContext ve PodSecurityContext içinde ayarlanan özelliklerde, SecurityContext'te belirtilen değer önceliklidir.
allowPrivilegeEscalation boolean | AllowPrivilegeEscalation, bir işlemin ebeveyn işleminden daha fazla ayrıcalık kazanıp kazanamayacağını kontrol eder. Bu bool, no_new_privs bayrağının konteyner işlemine ayarlanıp ayarlanmayacağını doğrudan kontrol eder. AllowPrivilegeEscalation, konteyner Privileged olarak çalıştırıldığında veya CAP_SYS_ADMIN'e sahip olduğunda her zaman true'dur. |
capabilities Capabilities Capabilities hakkında daha fazla bilgi | Konteynerler çalıştırılırken eklenecek/düşürülecek yetenekler. Varsayılan olarak, varsayılan yetenek kümesi kullanılır. |
privileged boolean | Ayrıcalıklı modda konteyneri çalıştırın. Ayrıcalıklı konteynerlerdeki işlemler, temelde ana bilgisayardaki root ile eşdeğerdir. Varsayılan olarak false'dur. |
procMount string | procMount, konteynerler için kullanılacak proc mount türünü belirtir. Varsayılan olarak, DefaultProcMount kullanılır ve salt okunur yolları ve maskelenmiş yolları için konteyner çalışma zamanı varsayılanlarını kullanır. |
readOnlyRootFilesystem boolean | Bu konteynerin salt okunur bir kök dosya sistemi olup olmadığını belirtir. Varsayılan olarak false'dur. |
runAsGroup integer | Konteyner işlemi giriş noktasını çalıştırmak için GID'yi belirtir. Ayarlanmamışsa, çalışma zamanı varsayılanı kullanılır. |
runAsNonRoot boolean | Konteynerin root kullanıcısı olarak çalışmaması gerektiğini belirtir. True ise, Kubelet, konteynerin başlatılamaması için çalışma zamanında görüntüyü UID 0 (root) olarak çalıştırmamasını doğrulayacaktır. |
runAsUser integer | Konteyner işlemi giriş noktasını çalıştırmak için UID'yi belirtir. Ayarlanmamışsa, görüntü meta verilerinde belirtilen kullanıcıya varsayılan olarak ayarlanır. |
seLinuxOptions SELinuxOptions seLinux hakkında daha fazla bilgi | Konteynere uygulanacak SELinux bağlamını belirtir. Belirtilmemişse, konteyner çalışma zamanı her konteyner için rastgele bir SELinux bağlamı tahsis eder. |
Bu konteyner tarafından kullanılacak seccomp seçenekleri. | |
Tüm konteynerlere uygulanan Windows özel ayarları. |
Referanslar
Last updated