Skip to main content
CID222 Docs

Çoklu kiracılık

Tek bir CID222 dağıtımının birden çok müşteriye, ekibe veya departmana nasıl hizmet ettiği, kimlik bilgilerinin nasıl çözümlendiği ve izolasyonun gerçekte nerede tutulduğu.

  • Sürüm: 0.4
  • Rol: admin_user, normal_user, viewer

Tek bir CID222 dağıtımı birçok kiracıya hizmet eder. Bir kiracı; kendi oturum açma bilgileri, kendi sağlayıcı kimlik bilgileri, kendi verisi ve başkalarınınkinden farklı olabilen bir politikası olan bir öznedir — bir müşteri, bir departman veya bir hizmet hesabı.

Sorun

Yönetişim kuruluş başınadır, ama kuruluş başına bir ağ geçidi çalıştırmak karşılanamaz: her kopya kendi veritabanını, kendi model konteynerlerini ve kendi 30 GB belleğini taşır. Tek bir dağıtımı paylaşmak, kapsamlandırmadaki bir hatanın müşteriler arası veri sızıntısı olması demektir; paylaşılan sağlayıcı anahtarları ise kimin ne harcadığını söylemeyi imkânsız kılar. Kiracı modeli, paylaşılan bir dağıtımın müşterinin gözlemleyebildiği her yolda ayrı dağıtımlar gibi davranması için vardır.

CID222 bunu nasıl yapar

Kiracı

Bir kiracı; kendi oturum açma bilgilerini, kendi sağlayıcı kimlik bilgilerini, kendi oturumlarını ve tespitlerini ve ne yapabileceğini belirleyen bir rolü taşır. Roller tam olarak şunlardır: superadmin, admin_user, normal_user, viewer ve auditor. Rol her istekte token'dan değil veritabanından okunur; bu yüzden bir yetki düşürmesi hemen etkili olur.

İçerik politikası ayrı bir eksendir. Filtre kuralları, kiracı sütunu olmayan kuruluş genelinde satırlardır; kiracıya göre değişen, her kuralın aldığı eylemdir ve bu bir geçersiz kılmayla ayarlanır.

Kiracı grupları

Bir kiracı grubu, bir şeyi paylaşması gereken kiracıları toplar. Bir grubun adı, isteğe bağlı bir açıklaması ve bir owner_tenant_id değeri vardır — grubun sahibi olan kiracı, ki o grubun politikasını kimse okumadan veya yazmadan önce denetlenen yetki budur.

Gruplar iki iş yapar:

  • Bir sağlayıcı kimlik bilgisi paylaşırlar. Tek bir anahtar her üyeye hizmet eder; böylece bir departmanın sağlayıcıyla kendi sözleşmesine ihtiyacı olmaz.
  • Bir politika kapsamı taşırlar. Bir gruba iliştirilen geçersiz kılma her üyeye uygulanır; bir departman, kuralı hiç düzenlemeden bir kural için farklı bir eylem böyle alır.

Kimlik bilgisi çözümlemesi

Bir kiracı bir sağlayıcıyı çağırdığında ağ geçidi kimlik bilgisini iki katmanda çözümler:

  1. Kiracının kendi kimlik bilgileri. Kiracı üzerindeki etkin bir kimlik bilgisi kazanır.
  2. Kiracının grupları. Aksi hâlde, kiracının üyesi olduğu herhangi bir gruptaki etkin bir kimlik bilgisi.

GET /models kataloğu kurarken aynı çözümlemeyi uygular; bu yüzden hiçbir yerde kimlik bilgisi olmayan bir kiracı, çağıramayacağı bir liste yerine boş bir model listesi görür.

Bir kimlik bilgisi satırı ikisinden tam olarak birine aittir. ai_credentials tablosu; ya tenant_id doludur ve tenant_group_id boştur ya da tersi olduğunu — asla ikisi birden, asla ikisi de boş değil — dayatan bir veritabanı kısıtı taşır.

İzolasyon nasıl uygulanır

İzolasyon uygulamada, her yolda ve aynı kapsam servisi tarafından uygulanır:

  • Sorgu kapsamlandırma. Okumalar önce çağıranın kapsamını çözümler ve sorguyu bununla sınırlar. İstemcinin verdiği bir kiracı kimliği bu kapsamla kesiştirilir; dolayısıyla başkasının kiracısını adlandırmak sonuçlarınızı genişletmez, daraltır.
  • Gruplarda sahiplik. Bir grubun politikasını okumak üyelik gerektirir; değiştirmek sahiplik gerektirir. Bir departmanın tamamının taranmayı bırakmasına karar vermek, bir ekip liderinin kendi ekibi üzerinde sahip olduğu, başka kimsenin başka bir ekip üzerinde sahip olmadığı bir yetkidir.
  • Kasıtlı yanıt polaritesi. Kapsam dışındaki bir kiracı 403 döndürür — adı geçen bir kullanıcının varlığı sır değildir. Kapsam dışındaki bir grup 404 döndürür — bir departmanın varlığı sırdır.

Politika önceliği

Aynı kural hakkında birden çok kapsamın görüşü olduğunda şu sırayla çözümlenirler:

DüzeyKapsamÖncelik
Temel kuralHer kiracıEn düşük
Kiracı grubuGrubun üyeleriOrta
KiracıTek bir kiracıEn yüksek

Kiracı düzeyindeki bir geçersiz kılma doğrudan kazanır. Bir kiracı birden çok gruba aitse geçersiz kılmalarının en kısıtlayıcı olanı uygulanır ve bu katlama sıradan bağımsızdır. Bir geçersiz kılma yalnızca bir kuralın eylemini değiştirebilir — allow, kuralı o kapsam için kapatma biçimidir — ve asla bir kural ekleyemez, kaldıramaz veya neyle eşleştiğini değiştiremez.

Sırlar nasıl saklanır

Sağlayıcı API anahtarları AES-256-GCM ile şifrelenerek v1: ön ekiyle saklanır. Ağ geçidi API anahtarları tuzsuz SHA-256 özeti olarak saklanır; anahtarın kendisi kriptografik bir rastgele kaynaktan gelen 32 bayttır, dolayısıyla bir tuzun koruyacağı düşük entropili bir tahmin uzayı yoktur. Bir ağ geçidi API anahtarı expires_at taşıyabilir; boş bir değer asla süresinin dolmadığı anlamına gelir.

Sınırlar ve bilinen boşluklar

  • Bir grup API anahtarı bir üyenin kimliğini ödünç alır. Bir kiracı grubuna verilen anahtar, o grubun en erken eklenen üyesi olarak davranır. O kullanıcıyı kaldırmak anahtarı iptal etmez — anahtarın kimliğini bir sonraki en erken üyeye devreder ve anahtarın yazdığı her şey artık başka bir kişiye atfedilir. Anahtara ait bağımsız bir hizmet kimliği tasarlanmıştır ama henüz gelmemiştir. Gelene kadar bir grup anahtarını, olaylarındaki isme göre değil gruba göre denetleyin.
  • İzolasyon veritabanı düzeyinde değil, uygulama düzeyindedir. Şemanın hiçbir yerinde PostgreSQL satır düzeyi güvenlik politikası yoktur. Her sorgu uygulama tarafından, tutarlı biçimde ve tek bir yerde kapsamlandırılır; ancak kapsam servisini sormayı unutan bir kod yolunu veritabanı durdurmaz. "Kiracılar arası erişim imkânsızdır" ifadesini depolama motoru hakkında değil, kod hakkında bir ifade olarak okuyun.
  • Kiracı bazlı hız sınırı veya token kotası yoktur. Ağ geçidinde hiçbir şey bir kiracının isteklerini veya harcamasını ölçmez. /chat/completions ve analiz uç noktalarının hiçbir sınırlayıcısı yoktur ve bir grup kota havuzlamaz, çünkü havuzlanacak bir kota yoktur. Maliyet önceden dayatılmaz, sonradan raporlanır.
  • Kiracısı çözümlenmemiş bir politika geçersiz kılması işlevsizdir. Geçersiz kılma geçişi çözümlenmiş bir kiracıya bağlıdır. İki giriş yolu hâlâ bir kiracı çözümleyemez ve bunlarda, departman nasıl yapılandırılmış olursa olsun temel eylem geçerlidir.
  • Grup üyeliği 30 saniye önbelleklenir. Bir kiracıyı gruplar arasında taşımak, yazıcı önbelleği geçersiz kılmadıysa politika çözümlemesinde önbellek süresi dolduğunda etkili olur. Bir üyelik değişikliğinin her yolda anında olduğunu varsaymayın.
  • Eski bir kimlik bilgisi satırı hâlâ düz metin olabilir. Şifreleme, dönüştürücü geldikten sonra yazılan değerlere uygulanır; ondan önce yazılan satırlar olduğu gibi geçer. Bir dağıtımın temiz olduğunu varsaymadan önce api_key alanında v1: ön ekini denetleyin.

İlgili sayfalar

Son güncelleme

Bu sayfada