Ekibim büyüyor: Cosmos DB'de kimin neye erişeceğini nasıl yapılandırmalıyım?
Azure Cosmos DB for NoSQL'de kontrol düzlemi Azure RBAC ile, item erişimi ise ayrı bir data-plane RBAC ile yönetiliyor. Microsoft'un önerisi erişimi kişilere göre değil işlere göre kurmak: Entra grupları, workload başına managed identity, en dar rol ve kapsam, production için geçici yükseltme.
Kilit noktalar
- Kontrol düzlemi (Azure RBAC) ile data-plane erişimi ayrıdır; Azure Owner veya Contributor olmak item okuma hakkı vermez.
- Çoğu workload için Cosmos DB Built-in Data Reader ve Built-in Data Contributor yeterli; ikincisi silme yetkisi de içerir.
- Rolleri kişilere değil, hizmet-ortam-sorumluluk adlandırmalı Entra security group'larına atayın.
- Her uygulamaya ve deployment otomasyonuna ayrı managed identity verin; insan gruplarını uygulamalarla paylaşmayın.
- Data rolünü mümkün olan en dar kapsamda (container veya veritabanı) atayın, hesap kapsamından kaçının.
- Hesap key'lerini alabilen bir kimlik, data-plane rollerini atlatabilir; local authentication'ı taşıma tamamlanmadan kapatmayın.
Azure Cosmos DB for NoSQL'de iki ayrı yetki sistemi var: hesap, veritabanı, container ve throughput yönetimi için Azure RBAC, item okuma ve yazma için Cosmos DB'nin kendi data-plane RBAC'i. İkisi birbirini kapsamıyor; Azure Contributor olan bir kimlik item okuyamıyor, data rolü olan bir kimlik de hesap ayarlarını değiştiremiyor.
Microsoft'un önerisi kişileri değil işleri modellemek: rolleri Entra security group'larına atayın, her workload'a ayrı managed identity verin, built-in Data Reader ve Data Contributor rolleriyle container veya veritabanı kapsamında başlayın. Cosmos DB Operator, hesap key'lerine erişim vermeden kaynak yönetimi sağlıyor. Production'ı read-only tutup geçici yükseltmeyi PIM ile yapın; yerel kimlik doğrulamayı kapatmadan önce key kullanan tüm script, notebook ve uygulamaları Entra kimliğine taşıyın.
Gerçek dünyada kullanımı
- Tek bir container'a yazması gereken ama hiçbir zaman item silmemesi gereken, managed identity ile çalışan sipariş API'si.
- Operasyonel container'lara hiç erişmeden yalnızca raporlama veritabanını Data Reader ile okuyan bir raporlama job'ı.
- Olay incelemesi sırasında PIM üzerinden geçici data erişimi alan, günlük olarak Cosmos DB Operator yetkisiyle çalışan SRE ekibi.
- Development'ta Contributor, production'da yalnızca read-only ve yükseltme ile çalışan çok ortamlı bir abonelik.
Neden önemli
Ortak ve geniş yetkiler her kimliği hesap düzeyinde bir riske dönüştürür; işe göre tanımlanmış dar roller, bir kimlik bilgisi sızdığında etkilenen alanı küçük tutar.