CodeBlanks Logo Icon CodeBlanks

mTLS

Istio ile karşılıklı TLS'i öğrenirsin.

mTLS

Karşılıklı TLS (mTLS) ile her iki taraf da sertifikasını gösterir: trafik şifrelenir ve her servisin kimliği (ServiceAccount'tan türetilen SPIFFE kimliği) doğrulanır. Istio sertifikaları otomatik verir ve döndürür. PeerAuthentication, mTLS'in zorunlu olup olmadığını belirler:

apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: varsayilan
  namespace: magaza
spec:
  mtls:
    mode: STRICT        # PERMISSIVE: hem düz hem mTLS kabul

Geçişte önce PERMISSIVE ile başlanır; tüm istemciler mesh'e katılınca STRICT'e geçilir.

Yetkilendirme politikası

mTLS kimlikleri sayesinde AuthorizationPolicy "yalnızca web servisi api'nin /urunler yoluna GET yapabilir" gibi kurallar yazar:

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: api-erisim
  namespace: magaza
spec:
  selector:
    matchLabels: {app: api}
  action: ALLOW
  rules:
    - from:
        - source:
            principals: ["cluster.local/ns/magaza/sa/web"]
      to:
        - operation:
            methods: ["GET"]
            paths: ["/urunler*"]

Uygulama Zorunlu mTLS

Bir PeerAuthentication YAML'ı yaz: security.istio.io/v1; adı varsayilan, namespace'i magaza; spec.mtls.mode: STRICT.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: varsayilan
  namespace: magaza
spec:
  mtls:
    mode: STRICT

Beklenen çıktı

peerauthentication.security.istio.io/varsayilan created
$ kubectl exec -n default deneme -- curl -s -o /dev/null -w "%{http_code}" http://api.magaza:8000/
000

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 STRICT moddayken mesh dışındaki (sidecar'sız) bir pod api'ye istek atarsa ne olur?

  • Otomatik sidecar eklenir
  • Uyarı yazılır ama geçer
  • Bağlantı reddedilir Doğru cevap
  • Düz metin kabul edilir

Açıklama: STRICT yalnızca mTLS bağlantılarını kabul eder.

2 mTLS'i zorunlu yap.

Soru
spec:
  mtls:
    mode: ____
Cevap
spec:
  mtls:
    mode: STRICT

Açıklama: STRICT yalnızca mTLS kabul eder.

3 Eşleştir.

Kavram Anlamı
mTLS Karşılıklı kimlik ve şifreleme
PERMISSIVE Geçiş modu
STRICT Yalnızca mTLS
principals Servis kimliği

Uzman bölümündeki tüm dersler