mTLS
- Docker & Kubernetes kursu
- Uzman
- Ders 23/47
- 4 dk
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 kabulGeç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
# buraya yazÖrnek çözüm
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: varsayilan
namespace: magaza
spec:
mtls:
mode: STRICTBeklenen çı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.
spec:
mtls:
mode: ____
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 |