Ücretsiz ders · CKA Hazırlık Programı · Modül 2: Küme mimarisi, kurulum ve yapılandırma
Sertifikalar, kubeconfig Bağlamları ve Sıfırdan RBAC
Erişim denetimi birleşen üç katmandır: kim olduğun (sertifika), nereyi gösterdiğin (kubeconfig bağlamı) ve ne yapabildiğin (RBAC). Bu ders üçünü de elle kurar, ret cevapları okunur olur.
15 dk okuma
Kazanımlar
- İstemci sertifikası üretip kubeconfig bağlamına sarmak
- Dosyayı elle düzenlemeden bağlam değiştirmek
- Tek kaynakta tek fiile tam izin veren Rol ve RolBağlama yazmak
- Her RBAC reddini eksik kurala kadar izlemek
Neden önemli
Sınavdaki "X yapamazsın" hatalarının yarısı RBAC, diğer yarısı yanlış kümeyi göstermektir. Katmanları ayrı görünce ikisi de beş dakikalık düzeltmedir. Sınav bu konuyu sever, çünkü hassasiyeti ödüllendirir: tam gereken fiiller, tam gereken kaynaklar, küme yöneticisinden ödünç hiçbir şey yok.
Kavramlar
Kimlik anahtar ve sertifika imza isteğiyle başlar. Özel anahtar üret, kullanıcı adı CN alanında ve gruplar O alanında bir istek kur, küme CA ile imzala (veya kümeye imzalat); API sunucusunun güvendiği kimliğin olur. kubeconfig dosyası sonra bağlam başına üç şeyi paketler: küme (sunucu artı CA), kullanıcı (sertifika artı anahtar) ve ad alanı. kubectl config use-context canlı üçlüyü değiştirir; kubectl config get-contexts tabloyu gösterir. Komutu varken bu dosyaları elle düzenleme.
RBAC kurallardaki kaynaklara fiil verir, kuralları öznelere bağlar ve ad alanı sınırında durur (küme kapsamlı türler hariç). Rol bir ad alanının kurallarını tutar; RolBağlama onları o ad alanındaki kullanıcı, grup veya servis hesaplarına bağlar. KümeRolü artı KümeRolBağlaması küme çaplı çifttir. API sunucusu varsayılan reddeder; her ret eşleşen bağlı kural yok demektir: hatadan kaynağı, fiili ve ad alanını oku, sonra tam o kuralı yaz.
Uygulamalı örnek
Tek ad alanında salt okunur denetçi, yakınında küme yöneticisi yok:
# kimlik
openssl genrsa -out auditor.key 2048
openssl req -new -key auditor.key -out auditor.csr -subj "/CN=auditor"
# küme CA ile imzala, sonra bağlamı kur
kubectl config set-credentials auditor \
--client-certificate=auditor.crt --client-key=auditor.key
kubectl config set-context auditor-ctx \
--cluster=kubernetes --user=auditor --namespace=demo
# en dar yetki: yalnız demoda pod get ve list
kubectl create role pod-reader \
--verb=get,list --resource=pods -n demo
kubectl create rolebinding auditor-read \
--role=pod-reader --user=auditor -n demo
kubectl auth can-i list pods -n demo --as=auditor
# evet
kubectl auth can-i delete pods -n demo --as=auditor
# hayırkubectl auth can-i --as sınavın süper gücüdür: kimlik değiştirmeden her öznenin hakkını sınar.
Sınav notları
Ad alanını unutmak kuralı varsayılana bağlar, iş yükü başka yerdedir: ad alanı uyumsuzluğu en büyük RBAC tuzağıdır. --as hakkı denetler ama gerçek çağrılarda o kullanıcı gibi kimlik doğrulamaz; sınama için istediğin tam budur. Ve servis hesaplarına aynı özeni göster: varsayılanları genişletmek yerine rolleri açıkça bağla.
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
Kurgusal ekip arkadaşın için yalnız tek ad alanına erişen kubeconfig bağlamı kur; orada configmaplerde get ve list veren, başka hiçbir şey vermeyen Rol ve RolBağlamayı ekle. Sınırı kanıtlayan iki auth can-i kontrolünü göster: biri evet, biri hayır.
Geçme kriterleri
Bağlam küme, kullanıcı ve ad alanı taşır; Rol tam get artı list içerir; bağlama doğru ad alanını hedefler; evet ve hayır kontrolleri doğru beklentiyle gösterilmiş.