Kiracı izolasyonu ve sınırları
Kiracı izolasyonu ve sınırları, çok kiracılı mimarinin temelidir. Amaç: Bir kiracının eylemleri, bir başkasının verilerini, güvenliğini ve SLO'sunu asla etkilemez ve kaynaklar adil ve öngörülebilir bir şekilde dağıtılır. Aşağıda, veri seviyesinden bilgi işlem planlamasına ve olay yönetimine kadar pratik bir çözüm haritası bulunmaktadır.
1) Tehdit modeli ve hedefleri
Tehditler
Kiracılar arasında veri sızıntısı (mantıksal/önbellek/günlükler yoluyla).
"Gürültülü komşu": Bir istemcideki ani artışlar nedeniyle performansın düşmesi.
Ayrıcalık yükseltme (erişim politikası hatası).
Faturalandırma sürüklenmesi (kullanım ve ücretlerin uyumsuzluğu).
Kaskad arızaya karşı güvenli senaryolar (birinin meydana gelmesi birçok kişinin çalışmama süresine yol açar).
Hedefler
Verilerin ve sırların sıkı izolasyonu.
Marjinal sınırlar/kotalar ve adil planlama.
Şeffaf denetim, gözlemlenebilirlik ve faturalandırma.
Olay yerelleştirme ve kiracı başına hızlı kurtarma.
2) Yalıtım seviyeleri (uçtan uca model)
1. Veri
'tenant _ id'in tuşları ve dizinleri, Row-Level Security (RLS).
Şifreleme: KMS hiyerarşisi - kiracı anahtarı (KEK) - veri anahtarları (DEK).
Yüksek gereksinimleri olan ayrı şemalar/DB (Silo), verimlilik için RLS ile ortak bir küme (Havuz).
Saklama politikaları ve kiracı başına "unutma hakkı", kripto parçalama anahtarları.
2. Hesaplamalar
CPU/RAM/IO kotaları, kiracı başına işçi havuzları, ağırlıklı kuyruklar.
GC/yığın izolasyonu (JVM/Runtime kapsayıcıları/ayarları), paralellik sınırları.
Kiracı başına otomatik ölçekleme + geri basınç.
3. Ağ
Segmentasyon: özel uç noktalar/VPC, ACL tarafından 'tenant _ id'.
Sınırda hız sınırlaması ve kiracı başına bağlantı sınırları.
DDoS/botlara karşı koruma, plan/öncelik dikkate alınarak.
4. Operasyonlar ve Süreçler
Kiracı geçişleri, yedeklemeler, DR, özellik bayrakları.
Olaylar - "mikro patlama yarıçapı": 'tenant _ id'ile kaynaşma.
3) Erişim kontrolü ve kiracı bağlamı
AuthN: OIDC/SAML; Belirteçler 'tenant _ id', 'org _ id', 'plan', 'scopes' taşır.
AuthZ: RBAC/ABAC (roller + proje, departman, bölge özellikleri).
Sınırdaki bağlam: API ağ geçidi, kiracı bağlamını çıkarır ve doğrular, sınırları/kotaları destekler, parkurlara yazar.
"Çift kilit" ilkesi: + RLS hizmet/veritabanı ilkesini kontrol etme.
4) Veri: şemalar, önbellek, günlükler
Şemalar:- Shared-schema (row-level): maksimum verimlilik, katı RLS gereklidir.
- Per-schema: izolasyon/çalışabilirlik değiş tokuşu.
- Per-DB/cluster (Silo): VIP/regulated için.
Önbellek: anahtar önekleri 'tenant: {id}:... ', planlara göre TTL, önbellek-izdiham koruması (kilit/erken yenileme).
Günlükler/meta veriler: PII'nin tam takma adı, 'tenant _ id' filtreleri, farklı kiracıların "yapıştırma" günlüklerinin yasaklanması.
5) Trafiği ve operasyonları sınırlamak
Temel mekanik
Token Bucket: yumuşatılmış patlamalar, parametrelendirme 'rate'/' burst'.
Sızdıran Kova: Stabilizasyon verimi.
Sabit Pencere/Sürgülü Pencere: zaman penceresinde basit/kesin kotalar.
Eşzamanlılık sınırları: eşzamanlı istekler/jablar için büyük harfler.
Nereye başvurulur
Sınırda (L7/API ağ geçidi) - temel koruma ve "hızlı arıza".
Çekirdekte (hizmetlerde/kuyruklarda) - ikinci devre ve "adil paylaşım" için.
Politikalar
Kiracı/plan/uç nokta/işlem türüne göre (genel API'ler, ağır dışa aktarma, yönetici eylemleri).
Öncelik bilincinde: VIP tahkim daha 'patlama've ağırlık alır.
Güvenli geri çekilmeler için idempotency anahtarları.
Örnek profiller (kavramlar)
Başlangıç: 50 req/s, patlama 100, 2 paralel dışa aktarma.
İş: 200 req/s, patlama 400, 5 ihracat.
Kurumsal/VIP: 1000 req/s, patlama 2000, özel işçiler.
6) Kotalar ve adil planlama (adalet)
Kaynak kotaları: depolama, nesneler, mesajlar/dakika, işler/saat, kuyruk boyutu.
Weighted Fair Queuing/Deficit Round Robin: Paylaşımlı çalışanlara "ağırlıklı" erişim.
Kiracı başına işçi havuzları: gürültülü/kritik müşteriler için katı izolasyon.
Kabul kontrolü: kotalar tükendiğinde uygulamadan önce başarısızlık/bozulma.
Backoff + jitter: Patlamaları senkronize etmemek için üstel gecikmeler.
7) Kiracı başına gözlemlenebilirlik ve faturalandırma
Gerekli etiketler 'tenant _ id', 'plan', 'bölge', 'uç nokta', 'durum'dur.
Kiracı başına SLI/SLO: p95/p99 gecikme süresi, hata oranı, kullanılabilirlik, kullanım, doygunluk.
Kullanım metrikleri: CPU işlemi/byte/second sayaçları - toplayıcı - faturalar.
Faturalandırma idempotence: sınırda anlık görüntüler, çift yazma-off/olayların kaybına karşı koruma.
Segmentlerdeki gösterge panoları: VIP/düzenlenmiş/yeni kiracılar.
8) Olaylar, bozulma ve DR "kiracı tarafından"
'Tenant _ id'ile kaynaşma: Geri kalanını etkilemeden belirli bir kiracının acil olarak kapatılması/kısılması.
Zarif Degradation: salt okunur mod, sandbox kuyrukları, ertelenmiş görevler.
Kiracı başına RTO/RPO: Her plan için kurtarma ve kayıp hedefleri.
Matkap: Gürültülü kiracı kesilmiş ve DR kontrol edilmiş düzenli "oyun günleri"
9) Uyum (ikamet, gizlilik)
Kiracıyı bölgeye sabitlemek; Açık bölgeler arası akış kuralları.
Anahtar/veri erişim denetimi, yönetici günlüğü.
Kiracı başına saklama ve veri dışa aktarımını yönetin.
10) Mini referans: nasıl bir araya getirilir
İstek akışı
1. Edge (API gateway): TLS - extract 'tenant _ id' - token validation - apply rate/kotas - put trails.
2. Siyasi motor: bağlam 'tenant _ id/plan/özellikler' - rota ve sınırlar hakkında karar.
3. Hizmet: rights + label 'tenant _ id' + RLS altında veri tabanı ile çalışma + önek ile önbellek denetimi.
4. Kullanım koleksiyonu: işlem/bayt sayaçları - toplayıcı - faturalandırma.
Veri
Stratejiye göre şema/DB (satır düzeyi/şema/DB başına).
KMS: kiracı anahtarları, rotasyon, silme üzerinde kripto parçalama.
Bilgi İşlem
Ağırlıkları olan kuyruklar, kiracı başına işçi havuzları, eşzamanlılık ile kapaklar.
Kiracı başına metriklere göre otomatik ölçeklendirme.
11) Sahte siyaset (yönelim için)
yaml limits:
starter:
req_per_sec: 50 burst: 100 concurrency: 20 exports_parallel: 2 business:
req_per_sec: 200 burst: 400 concurrency: 100 exports_parallel: 5 enterprise:
req_per_sec: 1000 burst: 2000 concurrency: 500 exports_parallel: 20
quotas:
objects_max: { starter: 1_000_000, business: 20_000_000, enterprise: 100_000_000 }
storage_gb: { starter: 100, business: 1000, enterprise: 10000 }
12) Satış öncesi kontrol listesi
- Gerçeğin tek kaynağı 'tenant _ id'; Her yere atılır ve kaydedilir.
- DB düzeyinde RLS/ACL etkinleştirildi + servis kontrolü (çift kilit).
- Kiracı başına şifreleme anahtarları, kripto parçalama belgelendi.
- Sınırdaki ve içerideki sınırlar/kotalar; Test patlamaları ve "patlama".
- Adil kuyruk ve/veya özel VIP çalışanları; caps на eşzamanlılık.
- Kiracı başına SLO'lar ve uyarılar; bölümlere göre gösterge panoları.
- Kullanım-toplama idempotent; fatura toplaması doğrulandı.
- DR/olaylar kiracıya lokalize edilir; 'tenant _ id' çalışmaları ile kaynaşma.
- Nakit/günlükler kiracıya bölünür; PII maskelenmiş.
- Geçiş/yedekleme/dışa aktarma prosedürleri kiracı tabanlıdır.
13) Tipik hatalar
RLS devre dışı/" hizmet "kullanıcı tarafından bypass - sızıntı riski.
Tek global sınırlayıcı - "gürültülü komşu've SLO ihlali.
Öneksiz paylaşılan önbellekler/kuyruklar - veri kesişimi.
Zirvelerde kaybolan günlüklerin faturalandırma sayıları.
Kiracı füzyon eksikliği - kaskad düşer.
Göçler'bir swoop düştü "sorunlu 'tenant _ id' durdurmak için yeteneği olmadan.
14) Hızlı strateji seçimi
Düzenlenmiş/VIP: Silo verileri (DB başına), özel işçiler, sıkı kotalar ve ikamet.
Mass SaaS: Shared-schema + RLS, sınırda güçlü sınırlar, içeride adil kuyruk.
"Gürültülü/titreşimli" yükleyin: büyük 'patlama' + sert eşzamanlılık-kapaklar, geri basınç ve planlara göre öncelikler.
Sonuç
Kiracıların izolasyonu ve sınırları sınırlar ve adalet ile ilgilidir. Yığın, veriler üzerindeki RLS ve şifreleme, sınırda ve çekirdekte sınırlama ve kotalar, adil zamanlayıcı, olayların gözlemlenebilirliği ve yerelleştirilmesi - tüm bunlar birlikte, her kiracı için güvenlik, öngörülebilir kalite ve şeffaf faturalandırma sağlar. agresif platform büyümesi.