Ücretsiz ders · CKAD Hazırlık Programı · Modül 5: Ortam, yapılandırma ve güvenlik
Servis Hesaplarını En Dar Yetkiye İndirgemek
Her pod bir servis hesabıyla koşar ve varsayılan güçsüz kalmalı. Bu ders uygulamaya özel kimlikler çıkarır, en dar Rolleri bağlar, sonucu denetler.
11 dk okuma
Kazanımlar
- Varsayılan servis hesabının ne yapabildiğini açıklamak (bilerek neredeyse hiçbir şey)
- Uygulama başına hesaplar oluşturup tam gereken Rolleri bağlamak
- Jetonları açıkça bağlayıp otomatik bağlamanın ne zaman kapalı kalacağını söylemek
- Özneler arası auth can-i ile kimin ne yapabildiğini denetlemek
Neden önemli
Küme içi istemciler (CI dağıtıcıları, işleticiler, API çağıran uygulama arka uçları) servis hesaplarıyla kimlik doğrular; paylaşılan güçlü hesap ele geçen her podu küme çapı olaya çevirir. Uygulama başına dar bağlı hesaplar etki alanını uygulamanın meşru dokunduğuyla sınırlar. Sınav tam döngüyü ölçer: hesap, bağlama, kanıt.
Kavramlar
Servis hesapları insan dışı ad alanlı kimliklerdir. Her pod tam biriyle koşar (belirtilmedikçe varsayılan; belirtmenin nedeni budur). Roller artı RolBağlamaları fiilleri verir; kubectl auth can-i --as=system:serviceaccount:<adalanı>:<ad> taklit etmeden denetler. Jeton yansıtma kısa ömürlü, hedef kitleli jetonlar bağlar; API çağırmayan pod veya hesaplarda automountServiceAccountToken: false kimlik bilgilerini hırsızların erişiminden tümden kaldırır.
Kalıp uygulama başına tek hesap, tam fiillerini tutan tek Role bağlı, her değişiklik sonrası denetimlidir. Küme çapı ihtiyaçlar ClusterRolleri dar bağlı alır (bağlama yeriyle belirli ad alanları, uygulamaya asla küme yöneticisi).
Uygulamalı örnek
Yalnız tek Deploymenti yeniden başlatabilen dağıtıcı, başka hiçbir şey:
kubectl create serviceaccount deployer -n demo
kubectl create role restarter -n demo \
--verb=get,list,patch --resource=deployments
kubectl create rolebinding deployer-restart -n demo \
--role=restarter --serviceaccount=demo:deployer
kubectl auth can-i patch deployments -n demo \
--as=system:serviceaccount:demo:deployer
# evet
kubectl auth can-i delete deployments -n demo \
--as=system:serviceaccount:demo:deployer
# hayır
kubectl auth can-i get pods -n demo \
--as=system:serviceaccount:demo:deployer
# hayırÜç kontrol, üç yanıt, tek dar kimlik. API çağırmayan uygulamalar automountServiceAccountToken: false alır, jeton hiç yok: en dar yetki yokluğu da içerir.
Sınav notları
Tam özne adı uzun ve tamdır: yazım hatalı denetim var olmayan özneyi sorar, hep hayırdır, yanıltır. Bağlamalar hesaplara ad alanı artı adla başvurur: uygulamayı bağlamasız taşımak hakkını öksüz bırakır. Ve imaj çekme sırları API haklarından ayrıdır: imaj çekmek ne Rol ne jeton ister.
Mini kontrol
4 soruluk öz kontrol. Yanıtların cihazında kalır, saklanmaz ve gönderilmez. Yalnızca geçen skor (ör. 4 soruda 3) kaydedilir ve yalnızca ders ilerlemesinin kilidini açmak için: bir dersin tamamlanmış sayılması için en az 3 doğru gerekir. Hiçbir sertifika değerlendirmesine sayılmaz.
Ders geri bildirimi
Henüz yayında geri bildirim yok.
Geri bildirim yazmak için giriş yap ve dersi tamamla.
Kaynaklar
Alıştırma
Ad alanında yalnız ConfigMap okuyabilen kurgusal uygulamaya özel servis hesabı oluştur; sınırı üç auth can-i kontrolüyle kanıtla (biri evet, ikisi hayır); jeton otomatik bağlamayı nerede kapatacağını nedeninle söyle.
Geçme kriterleri
Hesap artı Rol artı bağlama doğru ve dar; üç kontrol doğru beklentiyle; otomatik bağlama yanıtı API çağırmayan podları hırsızlık azaltma gerekçesiyle adlandırır.