Konuyu Açan #1
Python RAG Sistemlerinde Erişim Kontrolü

Görüntü tabanlı soru-cevap veya belge tabanlı arama gibi RAG (Retrieval-Augmented Generation) sistemlerinde, hangi kullanıcıya hangi bilgiye erişim izni verileceğini güvenli ve güvenilir biçimde belirlemek büyük önem taşır. Bu yazı, bu tür sistemlerde erişim kontrolünün tasarımını, pratik yaklaşımları ve potansiyel sorunları adım adım ele alır.


  • Genel mimari ve güvenlik gereklilikleri: RAG sistemleri, iki ana katmandan oluşur: bilgi geri getirme (retrieval) katmanı ve jenerasyon (generation) katmanı. Erişim kontrolü bu iki katmana da uygulanmalıdır. Kullanıcı oturumu doğrulandıktan sonra hangi kaynaklara erişebileceği, hangi sorgu sonuçlarının gösterileceği belirlenir. Rollere dayalı erişim kontrolü (RBAC) veya merhumeile benzer yetkilendirme modelleri kullanılabilir. Örneğin, finans verisini içeren bir bellekten sadece onaylı kullanıcıların bazı belgeleri çekmesi beklenirken, genel kullanıcılar için özetler gösterilir.


  • Kaynak kabulü ve sınırlandırma: Retrieval bileşeni, lisans, sınırlı paylaşım veya gizli verileri içeren bir gözetim listesiyle entegre edilmelidir. Sorgu aşamasında kullanıcıya dönüştürülen sorgu, izin kontrollerinden geçirilmeli; uygun değilse red veya anonimli özetler üretilmelidir. Uygulamada, belge/mezunih sayfaları, güvenlik sınıfları ve etiketiyle etiketli olabilir. Örneğin “sınıflı finans tablo” gibi etiketler, kullanıcı rolüne göre filtrelenir.


  • Dinamik politikalar ve konteks duyarlılığı: Erişim kararları zaman içinde değişebilir; kullanıcı bir projenin ilerleyen aşamasında farklı yetkilere sahip olabilir. Bu nedenle politikalar, kullanıcı durumu, proje bağlamı ve veri sınıfı gibi bağlamları dikkate almalıdır. Policy as Code yaklaşımıyla, politika dosyalarının sürüm kontrolü ve test edilmesi önerilir. Ayrıca zamanla görev değiştiren ajanlar için de otomatik yetkilendirme güncellemeleri düşünülmelidir.


  • Riskler ve pratik önlemler: Bilinçsiz veri sızıntısı riskine karşı, sonuçların karar vericiye güvenli bir özetle dönüştürülmesi gerekir. Ayrıca saldırganın sorgu enjeksiyonu veya yönlendirme yoluyla gizli verilere ulaşmaması için robust input filtreleme, çıktı doğrulama ve loglama gerekir. Özetler, orijinal belgenin kırpılgan bölümlerini ve duyarlı verileri içermez şekilde tasarlanmalıdır. Test ortamında kırık yetkilendirme senaryoları eşliğinde güvenlik incelemeleri yapılmalıdır.


Dikkat edilmesi gereken teknik ayrıntılar:
  • Kimlik doğrulama ve yetkilendirme katmanını uygulama: JWT veya OAuth2 ile oturum kimliklerini güvenli tutun; her sorguda kullanıcının kimliğini doğrulayıp yetkisini kontrol edin.
  • Retrieval katmanında güvenli filtreleme: Sorgu sonuçları, kullanıcı rolüne göre önceden filtrelenerek gösterilsin; gizli belgeler, izinli kullanıcılar için özelleştirilmiş özetlerle sınırlı kalsın.
  • Üretim aşamasında denetim izi (audit): Hangi kullanıcı hangi veriye hangi zamanlarda erişti? Sorun olduğunda hızlı geriye dönük inceleme için loglar yapılandırın.
  • Veri sınıflandırması ve güvenlik etiketleri: Verileri sınıflandırın ve her sınıf için uygun erişim politikaları tanımlayın; etiketsiz veri risklidir.


Bu konudaki uygulama yaklaşımlarınız ve karşılaştığınız güvenlik sorunları nelerdir? Erişim kontrolünü kendi RAG uygulamanızda nasıl modellediniz, hangi araçları ve hangi stratejileri kullandınız?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi