CodeBlanks Logo Icon CodeBlanks

OPA nedir?

Open Policy Agent'ın politika motoru olduğunu öğrenirsin.

OPA nedir?

Open Policy Agent (OPA), politikaları koddan ayıran genel amaçlı bir politika motorudur. Bir istek (JSON) ve kurallar alır, "izin ver / reddet" ya da ihlal listesi döndürür. Kubernetes'te admission aşamasında çalışarak kurum kurallarını zorunlu kılar:

  • Her deployment'ta takim ve ortam etiketi olmalı.
  • Image'lar yalnızca şirket registry'sinden çekilmeli.
  • latest etiketi ve root container yasak.
  • Her container kaynak sınırı yazmalı.
istek (AdmissionReview) ─► OPA/Gatekeeper ─► ihlal yok  -> kabul
                                             └─► ihlal var  -> "eksik etiket: takim" ile ret

Gatekeeper ve Kyverno

Kubernetes için OPA, Gatekeeper projesiyle gelir: politikalar CRD olarak yazılır ve bir validating admission webhook ile uygulanır. Alternatif Kyverno politikaları doğrudan YAML ile yazar. Kubernetes'in yerleşik ValidatingAdmissionPolicy özelliği de basit kurallar için CEL kullanır.

helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts
helm install gatekeeper gatekeeper/gatekeeper -n gatekeeper-system --create-namespace
kubectl get pods -n gatekeeper-system

Uygulama Gatekeeper'ı kur

Üç komut yaz: gatekeeper deposunu https://open-policy-agent.github.io/gatekeeper/charts adresiyle ekle; gatekeeper/gatekeeper chart'ını gatekeeper adıyla gatekeeper-system namespace'ine (yoksa oluşturarak) kur; gatekeeper-system'deki pod'ları listele.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts
helm install gatekeeper gatekeeper/gatekeeper -n gatekeeper-system --create-namespace
kubectl get pods -n gatekeeper-system

Beklenen çıktı

"gatekeeper" has been added to your repositories
NAME: gatekeeper
STATUS: deployed
NAME                                             READY   STATUS    RESTARTS   AGE
gatekeeper-audit-6c5d4b3a2-x2k9p                 1/1     Running   0          40s
gatekeeper-controller-manager-7d6e5f4a3-abcde    1/1     Running   0          40s

Soru ve cevaplar

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

1 RBAC ile OPA politikaları arasındaki fark nedir?

  • RBAC image'ları denetler
  • RBAC kimin ne yapabileceğine, OPA nesnenin içeriğine bakar Doğru cevap
  • İkisi aynıdır
  • OPA kullanıcı oluşturur

Açıklama: RBAC "deployment oluşturabilir mi?", OPA "bu deployment kurallara uyuyor mu?" sorusunu yanıtlar.

2 Gatekeeper chart'ını kur.

Soru
helm ____ gatekeeper gatekeeper/gatekeeper -n gatekeeper-system --create-namespace
Cevap
helm install gatekeeper gatekeeper/gatekeeper -n gatekeeper-system --create-namespace

Açıklama: helm install release ve chart adını alır.

3 Eşleştir.

Kavram Anlamı
OPA Politika motoru
Gatekeeper Kubernetes için OPA
Kyverno YAML tabanlı politika
admission webhook Uygulama noktası

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