Home TürkçeKubernetes Open Policy Agent

Open Policy Agent

by Fatih Boy
0 comment

Bu makalemde, Kubernetes dünyasının gelecek vadeden projelerinden olan ve pek çok noktada politika belirlemenize yardımcı olan Open Policy Agent (OPA)‘ı sizlere tanıtacağım.

Open Policy Agent (OPA), neredeyse tüm Kubernetes yığını genelinde politika belirlemenize imkan sunan bir politika moturudur. Bu özelliği sayesinde yazılım geliştirme ekiplerinin yanında özellikle güvenlik ekiplerinin gözdesi olmaya aday. Henüz Cloud Native Computing Foundation (CNCF) altında bir kuluçka projesi olmakla birlikte ciddi gelecek vadediyor.

Temelde bir kural moturu olarak tabir edebileceğimiz Open Policy Agent’ı diğer ticari ve açık kaynak kural moturlarından ayıran önemli farkları bulunuyor. Politikaların yazılmasında kullanılan Rego dilinin sade ve kolay öğrenilebilir olması yeni başlayanların bile hızlıca politika üretebilmesini sağlamakta. Open Policy Agent kendini politika belirleme noktasında konumlandırmıştır. Gücünün asıl kaynağı ise sunduğu entegrasyonlarda yatıyor. Entegrasyonları sayesinde belirlenen politiklara ilgili sistemlerde uygulanmaktadır. Bu sayede politika belirleme ve uygulama (policy enforcement) arasındaki açık kapanmaktadır. Her geçen gün artan bu ekosistemde Docker, Istio, Kubernetes, Kafka, Elastic, Spring ve SQL gözümüze ilk çarpanlar.

Open Policy Agent’ın belirlenen politikaların uygulanmasını doğrudan gerçekleştirmek yerine bunu entegrasyonları sayesinde yapması politika belirleme ve uygulama mantıklarını birbirinden ayırmış ve daha esnek hale getirmiştir. Entegre olan sistem, bir politika hakkında işlem yapması gerektiğinde girdi bilgilerini kullanarak Open Policy Agent’ı sorgulamakta ve verilen yanıtın gereğini yerine getirmektedir. Entegre olan sistemin sunduğu girdi Open Policy Agent politikalarınca işlenerek oluşan yanıt kaynak sisteme iletilmektedir.

Open Policy Agent ekosisteminin sağladığı entegrasyonlar sayesinde klasik bir kural moturuyla hızlıca ilerleyemeyeceğimiz pek çok politika kolaylıkla gerçekleştirilebilir oluyor. Bu politikaları aşağıdaki şekilde örnekleyebiliriz;

  • Docker üzerinde belirli komutlarında sadece “Fatih” kullanıcısı ile yapılabilmesi.
  • Kubernetes üzerindeki bir namespace’de sadece izin verilen imajların kullanılabilmesi
  • Istio üzerinden bir endpoint’te anonim taleplerden sadece “Get” taleplerinin “/hedef” adresi için çalıştırılabilmesi
  • Bir makineye ITSM aracında talep olmadan SSH atılamaması
  • Kafka’ya mesai saatleri dışında “EFT” talebine dair bir doküman bırakılamaması
  • Geliştirdiğimiz uygulamada sadece “Fatih” kullanıcının ve sadece mesai saatleri içerisinde yönetimsel işlemler yapabilmesi
  • Elasticsearch sorgusu üzerinde belirli alanların filterelenerek sonucun kullanıcıya gösterilmesi

Örnekleri daha da çoğaltmak mümküm; ama ana fikri anladığınızı tahmin ediyorum. Kubernetes’in VM dünyasıyla arasındaki makası giderek açması bu ve benzeri projeler sayesinde işlemlerin kodlarla, tanımsal (declerative) olarak gerçekleştirmesidir. Tekrar edilen, yönetilen, izlenen ve birbiriyle daha entegre sistemler her geçen gün daha fazla karşımıza çıkıyor.

Danışmanlığını verdiğim ulusal ve uluslararası firmaların güvenlik ekipleri ile yaptığım toplantılar genelde en zorlayıcı olanlardır. Doğaları gereği varsayılanda operasyon ekiplerine, yazılım ekiplerine, yazılan kodlara güvenmeyen bu ekiplerin kafalarındaki en önemli soru kağıt üzerindeki durum ile gerçek durumun ne kadar tutarlı olduğudur. Open Policy Agent ile güvenlik ekiplerine kendi politikalarını belirleme yeteneği sağlamak hem süreçlerin hızlandırmakta hem de önemli güvenlik kaygılarını bir anda yok etmektedir.

Şu Yazıları da Sevebilirsiniz

Leave a Comment

* Bu formu kullanarak, verilerinizin bu web sitesi tarafından saklanması ve kullanılmasını kabul ediyorsunuz.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bunu kabul ettiğinizi varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul Et Daha Fazla Bilgi