Ana sayfa/Geliştiriciler/Güvenlik
Kaldera'nın tasarım varsayımı tek cümlede: host'a güvenilmez. Pazar yerinde makine sahibi bizim çalışanımız değil, karşı taraftır. Mimarinin tamamı bu varsayımın üstüne kuruldu.
Sertifika iddiamız yok. SOC 2 Type I bir süreç olarak planlı — alınmış değil.
Temel ilkeler
Üç kural pazarlama cümlesi değil, mühendislik kısıtıdır: ihlal edilirse ürün derlenmez, akış çalışmaz.
Ortam değişkenleri, token'lar ve API anahtarları uygulama katmanında şifreli tutulur; makinenin diskinde düz metin bir sır bırakmayız. Host, konteynerinize enjekte edilen sırrı dosya sisteminden okuyamaz.
Çalıştırılan imajların imzası doğrulanır; imzasız imaj isteği invalid_argument ile reddedilir. Amaç, host'un ya da yol üstündeki kimsenin çalıştırdığın imajı sessizce değiştirememesi.
Host agent'ı kontrol düzlemine kendisi bağlanır; host tarafında dinlenen bir port açılmaz, NAT arkasında da çalışır. Makine sahibinin evine gelen giriş yolu yoktur — trafik hep içeriden dışarı kurulur.
İş yükü ve veri
İş yükleri containerd üstünde, NVIDIA Container Toolkit ile ayrılmış GPU erişimiyle koşar. Host makinede k8s kurulmaz; yerleştirmeyi kendi zamanlayıcımız yapar, çünkü güvenilmeyen makineye küme yönetimi bırakılmaz.
Kalıcı diskler şifreli tutulur ve pod'dan bağımsız yaşar: pod'u sonlandırdığında veri kalır, silmek istediğinde ?delete_volume=1 ile açıkça silinir. Silme isteği bir kez ve nettir; "belki lazım olur" diye saklamıyoruz.
Bölge kısıtı arayüz filtresi değildir. Sabitin dışındaki bir teklife pod yaratma isteği API katmanında 400 · region_pin_violation ile reddedilir. UI filtresi bir güvenlik sınırı sayılmaz — ayrıntısı Egemenlik sayfasında.
Kişisel veri ve sır değerleri loglara maskelenerek yazılır. Yönetim panelindeki her değişiklik gerekçesiyle birlikte, sonradan değiştirilemeyen (append-only) bir denetim kaydına düşer; gerekçesiz değişiklik reddedilir.
API yüzeyi
API anahtarları kld_ ile başlar, sunucuda hash'li saklanır ve tam değeri yalnız yaratılışta bir kez gösterilir. Konsol ayrı yoldan, HttpOnly oturum çerezi ile konuşur.
| Kontrol | Kural | Neden |
|---|---|---|
| Anahtar kapsamları | offers:read · pods:write · billing:read · host:write | CI'daki anahtarın faturayı okuması gerekmiyorsa okumaz. |
| İdempotans | Idempotency-Key · 24 saat | Ağ koptuğunda tekrar gönderilen istek ikinci pod'u ve ikinci ücreti doğurmaz. |
| Hız sınırı | anonim 60/dk · kimlikli 600/dk · pod yaratma 10/dk | Kötüye kullanımı ve kaza sonucu döngüye giren betikleri frenler. |
| Rol matrisi | owner · admin · member · billing · host | Faturayı gören ile terminal açan aynı kişi olmak zorunda değil. |
| Yetkisiz eylem | gizlenmez, pasif gösterilir | Ürünün ne yapabildiği herkese görünür kalır; kullanıcı yöneticisinden ister. |
| Denetim kaydı | append-only, gerekçe zorunlu | Sonradan düzeltilebilen kayıt, kayıt değildir. |
Bu tablo hedef sözleşmedir. Faz 0'da control plane yerel geliştirme için kimlik doğrulaması yapmaz; anahtar üretimi, kapsam denetimi ve hız sınırı ilk beta ile açılacak.
Terminal oturumu
Web terminali bir WebSocket ↔ SSH köprüsüdür. Köprü, kullanıcının kişisel SSH özel anahtarını asla görmez; pod yaratılırken pod'a özel bir anahtar çifti üretilir ve özel anahtar şifreli saklanır.
# 1) Kısa ömürlü, tek kullanımlık oturum iste POST /v1/pods/{id}/terminal/session { "ws_url": "wss://…/terminal", "token": "tek kullanımlık", "expires_at": "+60 sn" } # 2) Token ile WebSocket'e yüksel GET /v1/pods/{id}/terminal?token=… # 3) Çerçeveler istemci → sunucu binary = ham stdin istemci → sunucu text = {"t":"resize"} sunucu → istemci binary = ham stdout sunucu → istemci text = {"t":"status"} # Token bir kez kullanılır; log'a düşse bile # ikinci kez açılmaz.
Uyum durumu
Şirket henüz kurulmadı, ürün Faz 0'da. Bu yüzden aşağıdaki satırların hiçbirinde "sertifikalıyız" yazmıyor.
Bir denetim firması, sertifika numarası veya rozet göremezsin; olmayan bir belgeyi ima etmenin en zararsız hâli bile yalandır. Süreç başladığında hangi kapsamda ve hangi firmayla olduğu burada yazacak.
Açık bildirimi
Sorumlu açıklama (responsible disclosure) ilkesine göre çalışıyoruz. Bildirimini merhaba@kaldera.ai adresine yolla — ayrı bir güvenlik adresi ve PGP anahtarı ilk beta ile yayımlanacak, o güne kadar bu adres yer tutucudur ve yanıt süresi taahhüdü vermiyoruz.
Devamı
Verinin nerede duracağını sen seçersin, biz sunucu tarafında zorlarız. Söz aynı: çalışmayan saniyeye para yok, sert bütçe tavanı, saniye bazlı fatura.