3.4 KiB
Openshift - SCC
Bu sayfanın orijinal yazarı Guillaume
Tanım
OpenShift bağlamında, SCC Güvenlik Bağlamı Kısıtlamaları anlamına gelir. Güvenlik Bağlamı Kısıtlamaları, OpenShift kümelerinde çalışan podlar için izinleri kontrol eden politikalardır. Bir podun çalışmasına izin verilen güvenlik parametrelerini tanımlar, hangi eylemleri gerçekleştirebileceği ve hangi kaynaklara erişebileceği dahil.
SCC'ler, yöneticilerin küme genelinde güvenlik politikalarını uygulamasına yardımcı olur, podların uygun izinlerle çalıştığından ve kurumsal güvenlik standartlarına uyduğundan emin olur. Bu kısıtlamalar, pod güvenliğinin çeşitli yönlerini belirtebilir, örneğin:
- Linux yetenekleri: Konteynerlere, ayrıcalıklı eylemleri gerçekleştirme yeteneği gibi mevcut yetenekleri sınırlama.
- SELinux bağlamı: Konteynerler için SELinux bağlamlarını uygulama, bu bağlamlar süreçlerin sistemdeki kaynaklarla nasıl etkileşime girdiğini tanımlar.
- Sadece okunabilir kök dosya sistemi: Konteynerlerin belirli dizinlerdeki dosyaları değiştirmesini önleme.
- İzin verilen ana bilgisayar dizinleri ve hacimleri: Bir podun hangi ana bilgisayar dizinlerini ve hacimlerini monte edebileceğini belirtme.
- UID/GID olarak çalıştırma: Konteyner sürecinin çalıştığı kullanıcı ve grup kimliklerini belirtme.
- Ağ politikaları: Podlar için ağ erişimini kontrol etme, örneğin çıkış trafiğini kısıtlama.
SCC'leri yapılandırarak, yöneticiler podların uygun güvenlik izolasyonu ve erişim kontrolleri ile çalıştığından emin olabilir, bu da küme içinde güvenlik açıkları veya yetkisiz erişim riskini azaltır.
Temelde, her seferinde bir pod dağıtımı talep edildiğinde, aşağıdaki gibi bir kabul süreci yürütülür:

Bu ek güvenlik katmanı varsayılan olarak ayrıcalıklı podların oluşturulmasını, ana bilgisayar dosya sisteminin monte edilmesini veya ayrıcalık yükselmesine yol açabilecek herhangi bir niteliğin ayarlanmasını yasaklar.
{{#ref}} ../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/pod-escape-privileges.md {{#endref}}
SCC Listesi
OpenShift İstemcisi ile tüm SCC'leri listelemek için:
$ oc get scc #List all the SCCs
$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use
$ oc describe scc $SCC #Check SCC definitions
Tüm kullanıcılar, en katı SCC'ler olan varsayılan SCC "restricted" ve "restricted-v2" erişimine sahiptir.
SCC Kullanımı
Bir pod için kullanılan SCC, bir anotasyon içinde tanımlanır:
$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged
Bir kullanıcı birden fazla SCC'ye erişim sağladığında, sistem güvenlik bağlamı değerleriyle uyumlu olanı kullanacaktır. Aksi takdirde, yasaklı bir hata tetiklenecektir.
$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain
SCC Bypass
{{#ref}} openshift-privilege-escalation/openshift-scc-bypass.md {{#endref}}