AKS Cluster Security (AppArmor , Seccomp)

By | August 28, 2023

API Sunucusu ve Düğüm Güvenliği

Microsoft Entra Id ve Kubernetes RBAC Kullanımı: Microsoft Entra Id ve Kubernetes’in Rol Tabanlı Erişim Kontrolü (RBAC), API sunucusuna erişim için güçlü bir güvenlik katmanı sağlar. Bu entegrasyon, kimlik doğrulama ve yetkilendirme işlemlerini merkezi olarak yönetmeye olanak tanır.

Düğüm Güvenliği: AKS kümenizdeki düğümleri güvenli tutmak için, düzenli olarak güvenlik yamaları ve güncellemelerini uygulayın. Azure, bu süreci otomatize etmek için yönetilen kimlikler ve otomatik yama yönetimi sunar.

Ağ Güvenliği ve İzolasyon

Ağ Politikaları: AKS’de, –network-policy parametresi kullanılarak ağ izolasyonu ve güvenliği sağlanabilir. Bu, belirli trafiği kısıtlamak ve yalnızca güvenli iletişimi mümkün kılmak için önemlidir.
Ağ İlkesi’ni uygulamak için AKS kümesini oluştururken özniteliğini –network-policy azure ekleyin. Kümeyi oluşturmak için aşağıdaki komutu kullanın: az aks create -g myResourceGroup -n myManagedCluster –enable-managed-identity –network-plugin azure –network-policy azure Meta Veri API’sine Erişimi Kısıtlama: Küme içi bileşenlerin Azure meta veri API’sine erişimini sınırlamak, potansiyel güvenlik risklerini azaltır. Özel ağ politikaları bu erişimi kısıtlayabilir.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: restrict-instance-metadata
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.10.0.0/0#example
        except:
        - 169.254.169.254/32

Kapsayıcı Güvenliği

Kapsayıcıların kaynaklara erişiminin güvenliğini sağlamak için, en iyi uygulama kılavuzunda belirtildiği gibi, en az ayrıcalık ilkesini uygulayın. Kapsayıcıların yalnızca gereksinim duydukları eylemleri gerçekleştirmelerine izin vererek, kök erişimi ve ayrıcalıklı yükseltmeyi sınırlayın. allowPrivilegeEscalation: false ayarı, pod bildirimlerinde kullanılarak, bu güvenlik önlemini pekiştirebilir. Ek olarak, AppArmor ve seccomp gibi Linux güvenlik özellikleri, kapsayıcı ve düğüm düzeyinde ek güvenlik katmanları sağlayarak detaylı denetimler sunar. Ancak, Kubernetes ortamlarının çok kiracılı tehditlere tamamen dayanıklı olmadığını ve ek güvenlik özelliklerinin, bu tür riskleri etkili bir şekilde azaltmak için önem taşıdığını unutmayın. Gerçek güvenlik için, fiziksel olarak yalıtılmış kümeler kullanılmalı ve güvenlik, kümenin tamamını kapsayacak şekilde ele alınmalıdır.

Uygulama Koruması

AppArmor ile Kapsayıcı Güvenliği AKS’de, AppArmor profilleri kullanarak kapsayıcı güvenliğini artırabilirsiniz. AppArmor, belirli operasyonları kısıtlayarak kapsayıcıları izole eder ve güvenlik seviyesini yükseltir. Aşağıda, yazma işlemlerini engelleyen bir AppArmor profilinin nasıl oluşturulacağı ve uygulanacağına dair bir örneği bulabilirsiniz:

Profil Oluşturma: SSH ile AKS düğümüne bağlanın ve deny-write.profile adında bir dosya oluşturun. İçeriği aşağıdaki gibi olmalıdır:

#include <tunables/global>
profile k8s-apparmor-example-deny-write flags=(attach_disconnected) {
  #include <abstractions/base>

  file,
  # Deny all file writes.
  deny /** w,
}

Profilin Uygulanması: Oluşturduğunuz profili AppArmor’a eklemek için aşağıdaki komutu kullanın:

sudo apparmor_parser -r -W deny-write.profile

Kubernetes’te Uygulama: Bir pod üzerinde bu profilin kullanılması için, pod tanımında aşağıdaki annotasyonu ekleyin:

apiVersion: v1
kind: Pod
metadata:
  name: hello-apparmor
  annotations:
    container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-write
spec:
  containers:
  - name: hello
    image: mcr.microsoft.com/dotnet/runtime-deps:6.0
    command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]

Güvenli Bilgi İşlem

seccomp ile Sistem Çağrılarını Kısıtlama Seccomp, sistem çağrılarını kısıtlayarak kapsayıcı işlemlerinin güvenliğini artırır. Bu, belirli tehlikeli çağrıları engelleyerek potansiyel saldırı yüzeylerini azaltır. Aşağıda, dosya izinlerinin değiştirilmesini engelleyen bir seccomp profili örneği ve bunun Kubernetes pod’unda nasıl kullanılacağı gösterilmektedir:

Seccomp Profili Oluşturma:

AKS düğümünde, aşağıdaki içeriğe sahip bir prevent-chmod.json dosyası oluşturalım.

{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["chmod", "fchmodat", "chmodat"],
"action": "SCMP_ACT_ERRNO"
}
]
}

Kubernetes’te Uygulama: Bu profilin bir poda uygulanması için, pod tanımında aşağıdaki annotasyonu ekleyin:

apiVersion: v1
kind: Pod
metadata:
  name: chmod-prevented
  annotations:
    seccomp.security.alpha.kubernetes.io/pod: localhost/prevent-chmod
spec:
  containers:
  - name: chmod
    image: mcr.microsoft.com/dotnet/runtime-deps:6.0
    command: ["sh", "-c", "chmod 777 /etc/hostname && sleep 1h"]
  restartPolicy: Never

Bu adımlar ve örnekler, AKS’de uygulama koruması ve güvenli bilgi işleminin nasıl sağlanacağına dair temel bir rehber sunmaktadır. Güvenlik, bir Kubernetes ortamını yönetirken sürekli bir süreçtir; bu yüzden en iyi uygulamaları takip etmek ve güncel güvenlik araçlarını kullanmak önemlidir.

Güncellemeler ve Yükseltmeler

Kubernetes ve Düğüm Güncellemeleri: AKS kümelerini güncel tutmak, güvenlik açıklarını minimize eder ve yeni özelliklere erişim sağlar. az aks upgrade komutu ile kümenizi en son Kubernetes sürümüne yükseltin.

Düğüm Görüntüsü Yükseltmeleri: Düğüm görüntüsü yükseltmeleri, işletim sistemi düzeyinde güvenlik ve performans iyileştirmeleri sağlar. Düzenli olarak bu yükseltmeleri uygulayarak, güvenliği maksimize edin.

Sonuç Azure Kubernetes Service (AKS) kümelerini yönetirken, güvenlik öncelikli bir yaklaşım gerektirir. Microsoft Entra Id ve Kubernetes RBAC ile API güvenliği, ağ politikaları, kapsayıcı güvenlik önlemleri ve düzenli güncellemeler, güçlü bir güvenlik duruşu oluşturmanın temel taşlarıdır. Bu rehberde sunulan adımlar ve yönergeler, AKS kümelerinizi güvende tutmanıza yardımcı olacaktır.

Leave a Reply

Your email address will not be published. Required fields are marked *