Konuyu Okuyanlar: 1 Ziyaretçi

PostgreSQL 18 Güvenlik Temelleri: Rol, pg_hba ve OAuth 2.0 Desteği

PostgreSQL 18 Güvenlik Temelleri: Rol, pg_hba ve OAuth 2.0 Desteği
[Resim: attachment.php?aid=36]

Selamlar,

PostgreSQL 18 (25 Eylül 2025) ile birlikte OAuth 2.0 kimlik doğrulama desteği geldi; asenkron I/O ve bir sürü performans iyileştirmesiyle birlikte güvenlik tarafında da bakılacak maddeler arttı. Bu konuda "yeni kurduğum Postgres'i nasıl sıkılaştırırım?" diyenler için temel bir kontrol listesi bırakıyorum.

Konuda Anlatılacaklar
  1. PostgreSQL 18'den güvenlikle ilgili notlar
  2. Rol ve yetki: süperuser alışkanlığını kırmak
  3. pg_hba.conf: SCRAM, md5'in düşüşü
  4. OAuth 2.0 (özet)
  5. Lab'da hızlı sıkılaştırma listesi

1) PG 18 Güvenlik Notları
Resmi duyuruya göre:
  • oauth kimlik doğrulama yöntemi: SSO entegrasyonu için (uzantı destekli)
  • md5 parola doğrulama deprecated; parola kullanacaksanız SCRAM
  • ssl_tls13_ciphers ile TLS 1.3 cipher kontrolü
  • Yeni kümelerde sayfa checksum'ları varsayılan açık (pg_upgrade senaryolarına dikkat)

2) Rol Disiplini
Kod:
-- uygulama kullanıcısı: süperuser DEĞİL CREATE ROLE app_user LOGIN PASSWORD 'uzun-ve-rastgele'; CREATE DATABASE appdb OWNER app_user; \c appdb -- şema ve tablo yetkilerini bilinçli verin GRANT CONNECT ON DATABASE appdb TO app_user; GRANT USAGE ON SCHEMA app TO app_user; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app TO app_user;

Yedekleme için ayrı bir rol (REPLICATION veya pg_dump yetkisi), izleme için salt okunur rol. Hepsi postgres süperuser ile bağlanmasın.

3) pg_hba.conf
Kod:
# Örnek: sadece localhost, SCRAM # TYPE DATABASE USER ADDRESS METHOD local all all peer host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256 # Uzaktan erişim gerekiyorsa: VPN CIDR + scram + TLS zorunlu

reject satırlarıyla istenmeyen ağları erken kesin. Docker lab'ında bile 0.0.0.0/0 + trust kombinasyonundan kaçının.

4) OAuth 2.0 (Özet)
PG 18, oauth yöntemini pg_hba içinde kullanmanıza izin veriyor; asıl doğrulama bir validator kütüphanesi / IdP entegrasyonu ile yapılıyor. Kurumsal SSO (Entra ID, Keycloak vb.) planlıyorsanız resmi dokümantasyondaki "OAuth Support" bölümüne bakın. Lab'da şart değil; production'da parola paylaşımını azaltır.

5) Hızlı Lab Checklist
  • listen_addresses'i ihtiyaca göre daraltın
  • password_encryption = scram-sha-256
  • ssl = on (lab'da self-signed bile olsa alışkanlık)
  • Süperuser uzaktan kapalı
  • Düzenli pg_dump + checksum doğrulama

Kaynaklar
Alıntı:Lab ve kendi sunucularınız için. Başkasının veritabanına izinsiz erişim suçtur.

Kapak: özgün TurkTeam görseli.


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: