Yedekleme ve geri yükleme
Keydra'nın okuyabildiği veri yedeklenir ve bu makinenin dışına gönderilir. İstenirse yedek, onu yazan örneğin bile geri okuyamayacağı biçimde mühürlenir.
Neyin yedeği alınır, nereye gider#
Neyin yedeği alınır#
RDB dosyasının değil. RDB, sunucunun kendi belleğini kendi kapsayıcısındaki diske yazmasıdır ve Keydra’nın orada bir dosya sistemi yoktur. Sunucu ayarları sayfasındaki Şimdi anlık görüntü al düğmesi bunu sunucudan ister; dosya da sunucunun bıraktığı yerde kalır.
Keydra yalnızca okuyabildiğini yedekler: anahtarları, değerlerini ve son kullanma sürelerini. Bunları içe aktarmanın okuduğu biçimde yazar. Bu biçim Redis, Valkey ve aynı motoru kullanan diğer sunucular arasında taşınabilir ve geri yükleme zaten var olan bir yoldan yapılır.
Dışa aktarma akıtılarak ve sıkıştırılarak yapılır. JSON hâline gelmiş bir anahtar uzayı büyüktür ve hedeflerin hepsi baytla ücretlendirilir ya da hız sınırına takılır.
Nereye gider#
Yedek hedefi bir metin değil, ayrı bir kayıttır: ad, tür, konum ve kimlik bilgilerinden oluşur. Bir kez tanımlanır ve istediğiniz kadar zamanlanmış iş ona işaret eder. Aksi hâlde her iş kendi kova adını ve gizli anahtarını taşır; anahtarı değiştirmek de bütün işleri düzenlemek olur.
| Ad | Açıklama |
|---|---|
|
Keydra’nın çalıştığı makinedeki bir dizin; bağlı bir paylaşıma da bu yolla erişilir. Kullanışlı, ama o makinenin yok olmasına karşı hiçbir koruma sağlamaz. |
|
S3 ve onun API’sini konuşan her şey: MinIO, Cloudflare R2, DigitalOcean Spaces. |
|
Azure depolama hesabındaki bir kapsayıcı. |
|
Google Cloud’daki bir kova. |
|
SSH üzerinden; parola ya da özel anahtarla. |
|
Düz FTP ya da sunucu sunuyorsa FTPS. |
|
Uç nokta adresiyle erişilebilen her yer: mesaj kuyruğu, HTTP uç noktası, posta sunucusu, başka bir depolama servisi. Yalnızca yazma içindir; buraya yedek gönderilir ama listelenemez, geri yüklenemez ve budanamaz. |
Başka bir yer türü yalnızca yazma içindir ve bunu açıkça belirtir: formda, listede ve listeleme istendiğinde verdiği yanıtla. Hangi bileşenlerin okunabildiği her bileşenin kendi özelliğidir; serbest bir adres için, her göndericide bulunan tek işlemin ötesinde bir söz verilemez.
Yedek hedefine SSH tüneliyle de erişilebilir; atlama sunucusunun arkasındaki bir dizin ya da depo için. Genel bulutlar bunun dışındadır: yönlendirilen port bir sunucu adresine ve porta ulaşır, AWS, Azure ve Google ise sertifika içindeki adla tanınır.
Saklama#
Dışa aktarma işlerinde Son şu kadarını tut sayısı bulunur: son n dosya tutulur, sondan düşenler silinir. Hiç silmeyen bir yedekleme işi, faturayı fark edene kadar büyüyen bir kovadır.
Yedek hedefi ekleme#
-
backup:manageizniniz olmalı. Bu bir yönetici iznidir: yedek hedefi, Keydra dışındaki bir servise ait kimlik bilgileri taşır.
-
Yedekler sayfasına gidin.
-
Yeni hedef düğmesine tıklayın.
-
Ad girin ve Tür seçin.
-
Konum bilgilerini doldurun. İstenenler türe göre değişir: S3 için Kova ve Anahtar öneki, SFTP için Sunucu, Port ve Uzak dizin, yerel hedef için Dizin.
-
Giriş bilgilerini doldurun. S3’te Erişim anahtarı kimliği alanını boş bırakırsanız makinenin kendi kimlik bilgileri kullanılır: örnek rolü ya da bağlanmış bir hizmet hesabı.
-
AWS dışındaki bütün servisler için Uç nokta adresini girin ve Kovayı yol olarak adresle seçeneğini işaretleyin.
-
Gerekiyorsa Şunun üzerinden altından bir tünel seçin.
-
Yedekler nasıl mühürlensin seçeneğini belirleyin.
-
Kaydet, ardından Sına düğmesine tıklayın.
Sına, küçük bir dosya yazıp siler ve sonucu bildirir: "<ad>" çalışıyor ya da "<ad>" çalışmadı. Bir hedefin çalışmadığını öğrenmenin doğru zamanı, ekranın başındayken olduğu andır; üç hafta sonra gece yarısı değil.
Kovayı yol olarak adresle seçeneği, AWS dışındaki hemen bütün servislerde gereklidir. Bu
seçenek kapalıyken IP adresindeki bir MinIO bucket.10.0.0.4 olarak aranır ve hata bir DNS
sorunu gibi görünür.
Yedekleri şifreleme#
Yedek dosyası, bütün anahtarları ve bütün değerleri içerir. Şifrelenmemişse gittiği yere düz sıkıştırılmış bir dosya olarak iner. "Kova özel" cümlesi erişim denetimini anlatır, dosyanın içeriğini değil.
Yedekler nasıl mühürlensin seçeneği üç yanıt sunar.
- Şifrelenmemiş
-
Varsayılan seçenek. Arayüz bunun ne anlama geldiğini açıkça yazar.
- Parolayla
-
Kimliği doğrulanmış çerçevelerde AES-256-GCM kullanılır. Anahtar, parolanızdan Argon2id ile ve dosyanın başlığında saklanan bir tuzla türetilir. Parola, diğer bütün sırlar gibi şifreli saklanır ve geri döndürülmez.
Uyarı:UyarıParolayı ayrı bir yere yazın. Bu parolayla yazılan yedekler, parola olmadan hiç kimse tarafından — Keydra dahil — okunamaz. Şifrelemenin amacı budur; bir yedeğin kalıcı olarak kaybedilme yolu da budur.
- Anahtarlara
-
Bir alıcı açık anahtarları listesi verirsiniz. Keydra yalnızca şifreleyen yarıları tutar: her gece yedek yazabilir ama hiçbirini geri okuyamaz. Sunucuyu ele geçiren biri de okuyamaz, çünkü çözen yarılar hiçbir zaman orada bulunmamıştır. Geri yükleme sırasında özel anahtarlardan biri istenir, yalnızca o işlem için kullanılır ve hiçbir yere kaydedilmez.
Keydra bir anahtar çifti üretebilir. Özel anahtar bir kez gösterilir ve hiçbir yere yazılmaz: veritabanına da, günlüğe de, başka bir isteğin yanıtına da.
Bir hedef ya parola ya anahtar listesi taşır, ikisini birden değil: bir yerin tek bir giriş yolu olur; iki tanesi, "bu dosya hangisiyle yazıldı" sorusunu doğururdu.
Bir yedeği birden fazla kişi açabilir#
Tek anahtar yerine liste, çünkü tek alıcı demek, o özel anahtarı tutan kişinin bir yıllık yedeği okuyabilen dünyadaki tek insan olması demektir. İşten ayrılır, parola yöneticisini kaybeder ya da önbelleğin boşaldığı sabah uçaktadır — ve "diskte şifreli" ifadesi "gitti" hâline gelir; şifrelemenin önlemek için var olduğu başarısızlığa öbür taraftan varılmış olur.
Özel anahtarı paylaşmak sorundan daha kötüdür: iki kişinin tuttuğu bir sır, sahibi olmayan bir sırdır ve birinden geri alınamaz.
Listedeki her anahtarın bir adı vardır — Ada’nın anahtarı, kasa, saha dışı — çünkü birini kaldırmak hangisi olduğunu bilmeyi gerektirir ve geriye kırk karakterlik base64 kalır.
Bir anahtar eklemek, dünkü yedekleri o anahtarla okunabilir yapmaz. Bir dosya, hangi anahtarlara yazıldığını kendi içinde taşır ve gönderilmiş bir dosya yeniden yazılmaz. Bugün eklenen bir anahtar, bugünden sonra alınan yedekleri açar.
Son anahtarı kaldırmak, aynı yanlış anlamanın öbür yüzüdür: hiçbir şeyi okunamaz hâle getirmez, bir sonraki yedeğin hiç mühürlenmemesine yol açar.
Dosya biçimi belgelenmiştir#
Yalnızca Keydra’nın okuyabildiği şifreli bir yedek, yedek değil rehinedir. Depoyla
birlikte gelen scripts/keydra-decrypt.py betiği, dosyayı ve sırrı — parola ya da özel anahtar
— alır ve anahtarları yazdırır; uygulamadan hiçbir kod kullanmaz.
Şifreleme tek bir akış değil, çerçeveler hâlindedir ve bu bilinçli bir tercihtir. Tek bir GCM
akışı hem bellek sınırlı hem güvenle okunabilir olamaz: Java’nın CipherInputStream sınıfı
doğrulaması başarısız olan bir etiketi girdi sonu sayar; sonuç, tamamlanmış gibi görünen yarım
bir geri yüklemedir. Her çerçeve kendi içeriğini ve sırasını doğrular, dosya da bir bitiş
işaretiyle kapanır. Böylece kesilmiş ya da sırası bozulmuş bir yedek yarım geri yüklenmez,
reddedilir.
Yedek alma ve geri yükleme#
-
Yedek almak için hedefte
transfer:export, geri yüklemek içintransfer:importizni. -
Tanımlı bir yedek hedefi bulunmalı.
Hemen yedek almak için:
-
Hedefi açıp Yedekler sayfasına gidin.
-
Hedef seçin.
-
Şimdi yedekle düğmesine tıklayın.
-
Gerekiyorsa Şu desene uyan anahtarlar alanıyla kapsamı daraltın, Dosya adı öneki verin ve Son şu kadarını tut değerini belirleyin.
-
Onaylayın.
Yedeği geri yüklemek için:
-
Aynı sayfada dosyayı listeden bulun. Her satırda Dosya, Boyut, Yazıldı, Nereden alındı ve Ne zaman alındı bilgileri vardır.
-
Geri yükle düğmesine tıklayın.
-
Hedefte zaten olan anahtarların üzerine yaz seçeneğine karar verin. Varsayılan olarak kapalıdır: geri yükleme çoğunlukla o zamandan beri değişmiş bir depoya yapılır ve yeni verinin sessizce üzerine yazılması, varsayılan olarak kimsenin istemeyeceği sonuçtur.
-
Hedef bir anahtara mühürlüyse Özel anahtar değerini girin. Yalnızca bu işlem için kullanılır, hiçbir yere kaydedilmez.
-
Onaylayın.
Yedek alma işlemi kaç anahtarın alındığını, dosya boyutunu ve kaç eski dosyanın silindiğini bildirir: {name} olarak yedeklendi.
Geri yükleme şu dökümü verir: {restored} yazıldı, {skipped} zaten vardı, {failed} reddedildi.
Dosya başka bir hedeften alınmışsa Keydra geri yüklemeden önce uyarır: <nereden> adresinden alındı ve siz onu <nereye> içine geri yüklüyorsunuz. Bu kimi zaman istenen sonuçtur — üretimi hazırlık ortamına kopyalamak gibi — kimi zaman da sonradan fark edilen bir hatadır.

