smaple.tr
Kubernetes

Kubernetes ve Konteyner Guvenligi Rehberi [2026]

Mehmet Kurtipek
30 Haziran 2026
9 dk okuma
Kubernetes
konteyner guvenligi
container security
RBAC
network policy
runtime security
supply chain security
devsecops
zero trust
Falco
OPA Gatekeeper

Giris: Konteynerlerin Guvenlik Paradoksu

Konteyner teknolojileri yazilim dagitimini devrim niteliginde degistirdi. Ancak hiz ve esneklik kazanimlari, beraberinde yeni guvenlik yuzeylerini de getirdi. Geleneksel sunucu guvenliginde bildigimiz kurallar, konteyner ve orkestrasyon dunyasinda yeterli kalmiyor. Kubernetes kumeleri; yuzlerce mikro servis, binlerce pod ve surekli degisen aglar barindiran dinamik ortamlardir. Bu karmasiklik, guvenlik stratejisinin her katmanda ayri ayri ele alinmasini zorunlu kilar.

2025 yilinda yapilan arastirmalara gore, uretim ortamindaki konteyner imajlarinin yuzde 70'inden fazlasi en az bir kritik guvenlik acigi icermektedir. Bu rehberde, Kubernetes ve konteyner guvenligini uctan uca ele alarak uygulamali cozumler sunuyoruz.

Konteyner Guvenligi Temelleri

Konteyner guvenligi, imajin olusturulmasindan calisma zamanina kadar tum yasam dongusunu kapsar. Bu sureci dort ana katmanda degerlendirebiliriz.

Imaj Guvenligi ve Tarama

Guvenli bir konteyner, guvenli bir imajla baslar. Imaj tarama sureci su adimlari icerir:

  • Temel imaj secimi: Minimal imajlar (distroless, Alpine) saldiri yuzeyini azaltir
  • Guvenlik acigi taramasi: Trivy, Grype veya Snyk ile CI/CD pipeline'inda otomatik tarama
  • Katman analizi: Her Dockerfile katmaninin bagimliliklari ayri ayri degerlendirilir
  • Lisans uyumlulugu: Acik kaynak bilesenlerin lisans riskleri kontrol edilir
# Trivy ile CI/CD pipeline'inda imaj tarama ornegi (GitHub Actions)
name: Container Security Scan
on:
  push:
    branches: [main]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - name: Build Image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Run Trivy Scan
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: 'myapp:${{ github.sha }}'
          format: 'sarif'
          severity: 'CRITICAL,HIGH'
          exit-code: '1'

Dockerfile En Iyi Uygulamalari

# Guvenli Dockerfile ornegi
FROM cgr.dev/chainguard/go:latest AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /app/server

FROM cgr.dev/chainguard/static:latest
COPY --from=builder /app/server /server
USER nonroot:nonroot
ENTRYPOINT ["/server"]

Temel kurallar: root kullanici ile calistirmayin, cok asamali derleme kullanin ve distroless ya da minimal imajlari tercih edin.

Kubernetes Guvenlik Modeli

Kubernetes'in guvenlik modeli, kimlik dogrulama, yetkilendirme ve kabul denetimi olmak uzere uc ana katmandan olusur.

RBAC (Role-Based Access Control)

RBAC, Kubernetes kaynaklarina erisimleri roller uzerinden kontrol eder. En az yetki ilkesini uygulamak icin her servis hesabina yalnizca ihtiyac duydugu izinleri verin.

# Sadece belirli namespace'te pod okuma yetkisi veren Role
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: production
  name: pod-reader
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: production
  name: read-pods-binding
subjects:
  - kind: ServiceAccount
    name: monitoring-sa
    namespace: production
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

NetworkPolicy ile Ag Segmentasyonu

Varsayilan olarak Kubernetes'te tum pod'lar birbirleriyle iletisim kurabilir. NetworkPolicy ile mikro segmentasyon uygulayarak yanal hareketi onleyin.

# Yalnizca frontend'den backend'e erisime izin veren politika
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: backend-allow-frontend
  namespace: production
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
    - Ingress
  ingress:
    - from:
        - podSelector:
            matchLabels:
              app: frontend
      ports:
        - protocol: TCP
          port: 8080

Pod Security Standards (PSS)

Kubernetes 1.25 ile birlikte PodSecurityPolicy kaldirildi ve yerini Pod Security Standards aldi. Uc seviye tanimlanmistir:

Seviye Aciklama Kullanim Alani
Privileged Kisitlama yok Sistem bilesenleri, CNI eklentileri
Baseline Bilinen yetki yukselme vektorlerini onler Genel is yukleri
Restricted Siki guvenlik politikasi Hassas is yukleri, uyumluluk gereksinimleri
# Namespace'e Restricted seviye uygulama
apiVersion: v1
kind: Namespace
metadata:
  name: secure-apps
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/audit: restricted

Tedarik Zinciri Guvenligi (Supply Chain Security)

Yazilim tedarik zinciri saldirilari son yillarda dramatik bir artis gosterdi. Konteyner ekosistemin de bu saldirilardan nasibini almaktadir.

Imaj Imzalama ve Dogrulama

Sigstore projesi (Cosign, Fulcio, Rekor) konteyner imajlarinin imzalanmasini ve dogrulanmasini kolaylastirir.

# Cosign ile imaj imzalama
cosign sign --key cosign.key myregistry.com/myapp:v1.2.3

# Imza dogrulama
cosign verify --key cosign.pub myregistry.com/myapp:v1.2.3

# Keyless imzalama (OIDC tabanli)
cosign sign myregistry.com/myapp:v1.2.3

SBOM (Software Bill of Materials)

SBOM, bir yazilimin icerdigi tum bilesenlerin envanterini cikarir. Guvenlik acigi yonetimi ve uyumluluk icin kritik oneme sahiptir.

# Syft ile SBOM olusturma
syft myregistry.com/myapp:v1.2.3 -o spdx-json > sbom.json

# SBOM'u imaja ekleme
cosign attach sbom --sbom sbom.json myregistry.com/myapp:v1.2.3

Tedarik Zinciri Guvenlik Kontrol Listesi

Kontrol Arac Oncelik
Imaj tarama Trivy, Grype Kritik
Imaj imzalama Cosign, Notation Yuksek
SBOM olusturma Syft, Trivy Yuksek
Bagimliluk analizi Dependabot, Renovate Orta
Base imaj izleme Dependabot, Diun Orta
Provenance dogrulama SLSA, in-toto Yuksek

Calisma Zamani Guvenligi (Runtime Security)

Imaj tarama ve kabul denetimi onleyici kontrollerdir. Ancak calisma zamaninda da anormal davranislari tespit etmek gerekir.

Falco ile Tehdit Tespiti

Falco, Linux cekirdek seviyesinde sistem cagrilarini izleyerek suphelj davranislari tespit eder.

# Falco kural ornegi: Konteyner icinde shell calistirilmasi
- rule: Terminal shell in container
  desc: Bir konteynerde interaktif shell acildi
  condition: >
    spawned_process and container
    and shell_procs
    and proc.tty != 0
    and container_entrypoint
  output: >
    Shell acildi (kullanici=%user.name konteyner=%container.name
    imaj=%container.image.repository komut=%proc.cmdline)
  priority: WARNING
  tags: [container, shell, mitre_execution]

Cilium Tetragon ile eBPF Tabanli Guvenlik

Tetragon, eBPF teknolojisini kullanarak cekirdek seviyesinde gozlemlenebilirlik ve guvenlik politikasi uygular. Falco'dan farkli olarak, yalnizca tespit degil, engelleme de yapabilir.

# Tetragon: Hassas dosya erisimini izleme
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: sensitive-file-access
spec:
  kprobes:
    - call: "fd_install"
      syscall: false
      args:
        - index: 0
          type: int
        - index: 1
          type: "file"
      selectors:
        - matchArgs:
            - index: 1
              operator: "Prefix"
              values:
                - "/etc/shadow"
                - "/etc/passwd"

Gizli Bilgi Yonetimi (Secret Management)

Kubernetes Secret nesneleri varsayilan olarak yalnizca base64 ile kodlanir ve sifrelenmez. Uretim ortamlarinda daha guclu cozumler gereklidir.

HashiCorp Vault Entegrasyonu

# Vault Agent Injector ile pod'a secret enjekte etme
apiVersion: v1
kind: Pod
metadata:
  name: myapp
  annotations:
    vault.hashicorp.com/agent-inject: "true"
    vault.hashicorp.com/role: "myapp-role"
    vault.hashicorp.com/agent-inject-secret-db-creds: "secret/data/myapp/db"
    vault.hashicorp.com/agent-inject-template-db-creds: |
      {{- with secret "secret/data/myapp/db" -}}
      DB_HOST={{ .Data.data.host }}
      DB_USER={{ .Data.data.username }}
      DB_PASS={{ .Data.data.password }}
      {{- end }}
spec:
  serviceAccountName: myapp-sa
  containers:
    - name: myapp
      image: myapp:v1.0

External Secrets Operator

External Secrets Operator, harici secret yoneticilerinden (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, Vault) Kubernetes Secret nesneleri olusturur.

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: database-credentials
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: vault-backend
    kind: ClusterSecretStore
  target:
    name: db-secret
  data:
    - secretKey: username
      remoteRef:
        key: secret/data/production/db
        property: username
    - secretKey: password
      remoteRef:
        key: secret/data/production/db
        property: password

Kabul Denetleyicileri (Admission Controllers)

Kabul denetleyicileri, Kubernetes API sunucusuna yapilan istekleri kaynak olusturulmadan once denetler ve gerektiginde reddeder.

OPA Gatekeeper

# Constraint Template: Root olarak calisan konteynerleri engelle
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
  name: k8sdisallowroot
spec:
  crd:
    spec:
      names:
        kind: K8sDisallowRoot
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8sdisallowroot
        violation[{"msg": msg}] {
          container := input.review.object.spec.containers[_]
          not container.securityContext.runAsNonRoot
          msg := sprintf("Konteyner '%v' root olarak calistirilmamalidir", [container.name])
        }

Kyverno

Kyverno, Rego yerine YAML tabanli politikalar kullanir ve Kubernetes'e ozgu bir deneyim sunar.

# Kyverno: Imaj etiketinde "latest" kullanimini engelle
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: disallow-latest-tag
spec:
  validationFailureAction: Enforce
  rules:
    - name: require-image-tag
      match:
        any:
          - resources:
              kinds:
                - Pod
      validate:
        message: "Imaj etiketi olarak 'latest' kullanilamaz."
        pattern:
          spec:
            containers:
              - image: "!*:latest"

Gatekeeper ve Kyverno Karsilastirmasi

Ozellik OPA Gatekeeper Kyverno
Politika dili Rego YAML
Ogrenme egrisi Dik Dusuk
Mutasyon destegi Sinirli Kapsamli
Imaj dogrulama Harici gerektirir Dahili Cosign destegi
Kaynak olusturma Yok Var (generate)
Topluluk politikalari Genis kutuphane Buyuyen kutuphane

Smart Maple olarak Ankara merkezli projelerimizde, Kyverno'nun hizli adapte edilebilirligi ve YAML tabanli yapisindan dolayi orta olcekli kumelerde tercih ettigimizi goruyoruz. Ancak buyuk ve cok kiracili ortamlarda OPA Gatekeeper'in Rego esnekligi avantaj saglamaktadir.

CIS Kubernetes Benchmark

CIS (Center for Internet Security) Kubernetes Benchmark, kume yapilandirmasi icin en kapsamli guvenlik referansidir. Denetim alanlari sunlardir:

  • Kontrol duzlemi bilesenleri: API Server, etcd, Controller Manager, Scheduler
  • Worker node yaplandirmasi: Kubelet, kube-proxy ayarlari
  • Politikalar: RBAC, NetworkPolicy, Pod Security
  • Loglama ve denetim: Audit log yaplandirmasi
# kube-bench ile CIS benchmark kontrolu
kube-bench run --targets master,node,policies

# Belirli bir kontrol grubu icin
kube-bench run --targets master --check 1.2.1,1.2.2

Otomatik tarama araclari:

Arac Kapsam Calisma Modu
kube-bench CIS Benchmark CLI / CronJob
kubeaudit Guvenlik denetimi CLI
Kubescape NSA/CISA + CIS CLI / Operator
Polaris En iyi uygulamalar CLI / Dashboard

Kubernetes'te Zero-Trust Yaklasimi

Zero-trust mimarisi, "hicbir sey guvenilir degildir, her sey dogrulanmalidir" ilkesine dayanir. Kubernetes ortaminda bu yaklasim su bilesenlerle uygulanir:

Service Mesh ile mTLS

Istio veya Cilium gibi service mesh cozumleri, pod'lar arasi iletisimi karsilikli TLS (mTLS) ile sifreler.

# Istio PeerAuthentication: Namespace genelinde mTLS zorunlulugu
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: production
spec:
  mtls:
    mode: STRICT
---
# Istio AuthorizationPolicy: Servise erisim kontrolu
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: backend-authz
  namespace: production
spec:
  selector:
    matchLabels:
      app: backend
  rules:
    - from:
        - source:
            principals: ["cluster.local/ns/production/sa/frontend-sa"]
      to:
        - operation:
            methods: ["GET", "POST"]
            paths: ["/api/*"]

Zero-Trust Kontrol Listesi

  • Tum servisler arasi iletisimde mTLS uygulayin
  • Her servis icin ayri ServiceAccount olusturun
  • NetworkPolicy ile varsayilan olarak tum trafigi engelleyin (deny-all)
  • API erisimlerinde RBAC ile en az yetki ilkesini uygulayin
  • Audit log'lari merkezi bir SIEM sistemine yonlendirin
  • Workload identity ile bulut kaynaklarina erisimi sinirlandin

Konteyner Guvenlik Acigi Yonetim Yasam Dongusu

Guvenlik acigi yonetimi tek seferlik bir islem degil, surekli bir dongudur. Smart Maple olarak Ankara merkezli projelerimizde asagidaki yasam dongusunu benimsiyoruz:

Asama 1: Kesfet

  • CI/CD pipeline'inda her build'de otomatik imaj taramasi
  • Calisma ortamindaki imajlarin periyodik taranmasi
  • SBOM envanterinin guncel tutulmasi

Asama 2: Onceliklendir

  • CVSS skoruna gore siniflandirma
  • EPSS (Exploit Prediction Scoring System) ile gercek saldiri olasiligini degerlendirme
  • Is etkisi ve erisim yuzeyine gore risk analizi

Asama 3: Gider

  • Kritik ve yuksek aciklar icin SLA tanimlama (ornek: kritik 24 saat, yuksek 7 gun)
  • Otomatik yama surecleri (base imaj guncelleme, bagimliluk yukseltme)
  • Yama uygulanamayan durumlarda telafi edici kontroller (NetworkPolicy, WAF)

Asama 4: Dogrula

  • Yama sonrasi yeniden tarama
  • Penetrasyon testi ile dogrulama
  • Compliance raporu olusturma

Onceliklendirme Matrisi

CVSS Skoru EPSS Yuzdesi Erisim Yuz. Oncelik SLA
9.0+ > %10 Internet P0 24 saat
7.0-8.9 > %5 Internet P1 3 gun
7.0-8.9 < %5 Dahili P2 7 gun
4.0-6.9 Herhangi Herhangi P3 30 gun
0.1-3.9 Herhangi Herhangi P4 Sonraki sprint

Sonuc ve Oneriler

Kubernetes ve konteyner guvenligi, tek bir arac veya yapilandirma ile cozulebilecek bir sorun degildir. Derinlemesine savunma (defense in depth) stratejisi ile her katmanda guvenlik kontrolleri uygulamak gerekir.

Oncelikli adimlar olarak su uc alana odaklanmanizi oneriyoruz:

  1. Temel hijyen: Pod Security Standards uygulama, RBAC sikilas tirma, NetworkPolicy ile segmentasyon
  2. Otomatik tarama: CI/CD pipeline'ina imaj tarama ve kabul denetleyicileri entegre etme
  3. Calisma zamani izleme: Falco veya Tetragon ile anormal davranislari tespit etme

Guvenlik, hiz ile yarismak zorunda degildir. Dogru araclar ve sureclerle DevSecOps yaklasimini benimseyerek hem hizli hem de guvenli yazilim dagitimi mumkundur.

İlgili Makaleler

10 Ağustos 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Devamını Oku: MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma
9 Ağustos 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Devamını Oku: LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]
8 Ağustos 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Devamını Oku: Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI