SPIFFE ve SPIRE ile Kriptografik İş Yükü Kanıtlaması
Parola ve API anahtarı kullanmadan üretim ölçeğinde iş yükü kimliği oluşturma; SVID belgeleri, çekirdek seçicileri ve otomatik mTLS rotasyonunun derinlemesine analizi.
SPIFFE ve SPIRE ile Kriptografik İş Yükü Kanıtlaması
İş Yükü Kimliği Problemi
Mikroservis mimarilerinde servisler birbirlerine kimliklerini kanıtlamak zorundadır. Geleneksel olarak geliştiriciler statik API anahtarlarını, özel anahtarları veya veri tabanı parolalarını konfigürasyon dosyalarına ya da Kubernetes secret nesnelerine gömerdi. Tek bir pod ele geçirildiğinde, saldırgan bu kimlik bilgilerini sızdırarak iç ağda kolayca yatay hareket edebilirdi.
SPIFFE (Secure Production Identity Framework for Everyone) ve SPIRE bu sorunu parolasız, çekirdek doğrulamalı kriptografik iş yükü kanıtlaması ile çözer.
Temel Kavramlar
- SPIFFE ID: Bir iş yükünü benzersiz şekilde tanımlayan standart URI:
spiffe://tinycto.tv/ns/production/sa/payment-service - SVID (SPIFFE Verifiable Identity Document): Genellikle kısa ömürlü (örneğin 1 saat) bir X.509 sertifikası olan imzalı kimlik belgesi.
- SPIRE Agent: SVID vermeden önce Linux çekirdeği (
/proc) üzerinden yerel iş yüklerini denetleyen düğüm düzeyi ajan. - SPIRE Server: Güven alanını yöneten, güven paketlerini dağıtan ve SVID'leri imzalayan Sertifika Otoritesi (CA).
Düğüm ve İş Yükü Kanıtlama Akışı
- Düğüm Kanıtlaması (Node Attestation): SPIRE Agent ana makinede başlar ve platform donanımını (TPM 2.0, AWS IID veya GCP Belirteci) kullanarak SPIRE Server'a kimliğini kanıtlar.
- İş Yükü Kaydı: Yöneticiler geçerli bir servisi nelerin oluşturduğunu seçicilerle tanımlar (
k8s:ns:production,k8s:sa:payment-service). - İş Yükü Kanıtlaması: Pod, Unix Domain Socket üzerinden SPIRE Agent'a bağlandığında, ajan Linux çekirdeğine
SO_PEERCREDsistem çağrısı yaparak çağıran sürecin PID ve cgroup bilgilerini doğrular. - Sertifika Dağıtımı: Ajan, sürece ait kısa ömürlü X.509 SVID sertifikasını doğrudan süreç belleğine enjekte eder. Diske asla statik özel anahtar yazılmaz.
[ İş Yükü Pod ] ──(Unix Domain Socket)──> [ SPIRE Agent ] ──(mTLS)──> [ SPIRE Server (Root CA) ]
▲ │
└────── Bellek-İçi X.509 SVID Enjeksiyonu ─┘
Denetim ve Doğrulama Komutu
# Yerel ödeme servisine tahsis edilen kısa ömürlü SVID sertifikasını denetleme
kubectl exec -n production deploy/payment-service -c payment -- \
spire-agent api fetch x509 -write /tmp/svids/
openssl x509 -in /tmp/svids/svid.0.pem -text -noout | grep -E "Subject:|Validity|URI:"
NIST SP 800-207 ve CISA ZTMM 2.0 standartlarında kurumsal Sıfır Güven savunma kanonu: Statik kimlikleri kaldırın, eBPF mikro segmentasyon uygulayın ve çalışma zamanı çekirdek telemetrisi ile ihlalleri anında önleyin.
