# QueryProxy ve bastion sunucu ile paylaşılan parolalar

> Çoğu şirketteki mevcut durum bir atlama sunucusu ve kasadaki bir paroladır. Bunun neyi kapsamadığını ve bir onay portalının neyi değiştirdiğini anlatıyoruz.

- Güncelleme: 2026-09-08
- Kaynak: https://queryproxy.com/tr/compare/bastion-host/
- Dil: tr-TR
- Yazar: Muhammet ŞAFAK

---
Çoğu ekip üretime bir atlama sunucusu, bir SSH tüneli ve parola yöneticisinden alınan bir kimlik bilgisiyle ulaşır. Ucuzdur, zaten kuruludur ve tam olarak tek bir şeyi denetler: veritabanına kimin ulaştığını.

## Bir bakışta

| Konu | QueryProxy | bastion sunucu |
| --- | --- | --- |
| Kimin bağlandığını denetler | Evet — takım ve bağlantı bazında yetkilerle | Evet, iyi yaptığı iş budur |
| Ne çalıştığını denetler | Her ifade çalıştırılmadan önce parse edilir ve onaylanır | Hayır. Bağlantı kurulduktan sonra oturum mühendisindir |
| Kimlik bilgisinin açığa çıkması | Sunucuda şifreli; tarayıcıya ya da terminale hiç gönderilmez | Parola kasadan kopyalanır ve bir insan tarafından yapıştırılır |
| İkinci bir çift göz | Zorunlu — kendi talebini onaylamak engellenir | Ekranı izleyen biri yoksa yok |
| Sonuçtaki kişisel veri | Sonuçlar diske ulaşmadan akış içinde maskelenir | Sorguyu çalıştıran kişiye eksiksiz döner |
| Denetim izi | Talep eden, onaylayan, ifade, süre, satır — değiştirilemez | Kabuk geçmişi ve veritabanının kaydetmeyi seçtiği kadarı |
| İşletme maliyeti | Bir konteyner ve bir işçi | Zaten kurulu, fiilen bedava |

Neredeyse her ekip buradan başlar ve bunda utanılacak bir şey yoktur: bir atlama
sunucusu, bir SSH tüneli ve parola yöneticisinde tutulan bir kimlik bilgisi.
Zaten kuruludur ve hiçbir maliyeti yoktur. Neyi kapsayıp neyi kapsamadığı
konusunda net olmakta fayda var.

## Bastion'ın gerçekten yaptığı iş

Ağ yolunu denetler. Veritabanına ulaşmak önce atlama sunucusuna ulaşmayı, o da
bir SSH anahtarını, o da adını koyabileceğiniz bir kişiyi gerektirir. Bu gerçek
bir güvenlik önlemidir ve azımsanmamalıdır.

## Nerede duruyor

Bastion'ın işi, bağlantı iletildiği anda biter. Ondan sonra oturum mühendisindir
ve şu üç şey buradan çıkar:

**Kimlik bilgisi artık bir kopyadır.** Bir terminale yapıştırıldı. Kabuk
geçmişinde, panoda, belki bir `.pgpass` dosyasında duruyor ve biri döndürene
kadar geçerli kalıyor — ki bu da pratikte birisi işten ayrıldığında oluyor.

**İfadeyi kimse incelemiyor.** `WHERE` içermeyen bir `DELETE FROM orders` iyi
biçimlendirilmiş bir sorgudur. Bastion onu bir `SELECT` kadar rahat iletir.
Araçların bu konuda bir görüşü yoktur, çünkü SQL okumak hiçbir zaman onların işi
olmadı.

**Sonuç eksiksiz döner.** Her e-posta adresi, her kart numarası, her telefon
numarası bir dizüstü bilgisayardaki terminalde görüntülenir ve artık o
bilgisayarın terminal geçmişindedir.

## Bir onay portalıyla ne değişir

Kimlik bilgisi sunucudan hiç çıkmaz: QueryProxy onu AES-256 ile şifreli tutar ve
geliştirici adına bağlanır; dolayısıyla yapıştırılacak ve sızdırılacak bir şey
yoktur.

İfade çalışmadan önce parse edilir. `WHERE`'siz `UPDATE` ve `DELETE` doğrudan
reddedilir, `LIMIT`'siz bir `SELECT`'e `LIMIT` eklenir ve yönetimsel ifadeler
engellenir.

Bir başkasının onaylaması gerekir. Talep DBA kuyruğunda ve Onayla ile Reddet
düğmeleri olan bir Slack kartı olarak görünür; kimse kendi talebini onaylayamaz.

Sonuç depolamaya akarken maskelenir, dolayısıyla maskesiz sürüm hiçbir yere
yazılmaz; denetim günlüğü ise kimin istediğini, kimin onayladığını, ne
çalıştığını, ne kadar sürdüğünü ve kaç satıra dokunduğunu kaydeder — eklenebilir
ve okunabilir, asla güncellenemez.

## Acil durum yolunu koruyun

Bunların hiçbiri bastion'ı silmeyi savunmaz. Bir olay sırasında gecenin üçünde
mühendisin gerçek bir terminale ihtiyacı olur ve gönder-bekle döngüsü yanlış
araçtır. O yolu koruyun, kullanımını bilinçli olarak zahmetli kılın ve
kullanıldığında uyarı üretin. Amaç acil erişimin imkânsızlaşması değil — günlük
erişimin acil durum kapısından geçmeyi bırakmasıdır.

## Bunun yerine bastion sunucu seçmeniz gereken durumlar

- Üretime DBA'den başka kimse dokunmuyorsa. Kimlik bilgisine sahip kişi aynı zamanda onaylayacak kişiyse, onay adımı hiçbir şey katmaz.
- Olay müdahalesi için tam etkileşimli oturumlara ihtiyacınız varsa — gecenin üçünde gerçek bir terminalde psql — gönder-ve-bekle döngüsü aktif olarak zarar verir. Bunun için bir acil durum yolu bırakın.
- Ekip yeterince küçük ve veri yeterince sıradansa, bu tören gerçekten riskten daha pahalıya gelebilir. Bu meşru bir cevaptır ve öyle değilmiş gibi yapmak yerine açıkça söylenmeye değer.

## Sık sorulanlar

### Bastion sunucu yeterli değil mi?

Cevapladığı soru için yeterli — veritabanına kimin ulaşabileceği. Diğerini cevaplayamaz. Bir bastion, ardından WHERE'siz bir UPDATE çalıştıracak mühendise bağlantıyı seve seve iletir ve günlükleri size sonradan neyin yok edildiğini değil, bir bağlantının açıldığını söyler.

### QueryProxy kullanmak için bastion'ı kaldırmam gerekir mi?

Hayır. Çoğu ekip onu gerçek acil durumlar için kırılacak cam olarak tutar ve günlük erişimi QueryProxy üzerinden yürütür; böylece bastion kural değil istisna olur ve kullanıldığında göze çarpar.

### Parola yöneticisindeki kimlik bilgileri ne olacak?

Bir kasa dağıtımı denetler, kullanımı değil. Kimlik bilgisi bir terminale yapıştırıldığı anda bir dizüstü bilgisayarda, bir kabuk geçmişinde ve bir panodadır; üstelik geçerliliğini korur. QueryProxy kimlik bilgisini hiç devretmez — şifreli tutar ve sorguyu geliştirici adına kendisi çalıştırır.

### Bu sadece fazladan bürokrasi değil mi?

Üretime dokunan ifadelere ikinci bir çift göz demektir; kod incelemesinin bürokrasi olduğu anlamda bürokrasidir. Maliyeti bir bekleyiştir ve onaylar iki düğmeli bir Slack kartı olarak geldiği için bu bekleyiş pratikte genellikle kısadır.
