dataiotech Labs
Home/Güvenlik/Denetim & Uyum/Şifreleme (TDE)
← Tüm Denetim & Uyum Konuları
Şifreleme (TDE)

Bekleyen Veri & Yedek Şifreleme (TDE, AES-256 & KMS / Vault)

Fiziksel diskler, WAL/Redo logları ve yedekleme dosyalarının çalınması veya sızdırılması durumunda verileri AES-256 ile şifreleyerek okunamaz hale getirin.

Doğrulanan Regülasyon ve Standartlar
PCI-DSS Req 3.4 & 3.5SOC 2 SecurityFIPS 140-3ISO 27001 (A.10.1)GDPR Art. 32

Temel Güvenlik ve Uyum Hedefleri

Depolama katmanında (Datafiles, Temp files, WAL logları) şeffaf AES-256 şifreleme
pg_dump, pg_basebackup ve RMAN yedeklerinin şifrelenmiş olarak depolanması
Şifreleme anahtarlarının (DEK & KEK) donanımsal HSM, AWS KMS veya HashiCorp Vault ile yönetimi
Anahtar rotasyonu (Key Rotation) süreçlerinin servis kesintisi yaratmadan uygulanması

Mimari ve Çalışma Prensibi

Zarf Şifreleme (Envelope Encryption) modelinde: Veritabanı tabloları Data Encryption Key (DEK) ile şifrelenir. DEK anahtarı ise harici bir Key Management Service (KMS/Vault) içindeki Master Key (KEK) ile şifrelenir. Sunucu diskleri çalınsa dahi anahtar KMS'ten çekilemediği için veri çözülemez.

Referans Konfigürasyon Dosyası
# PostgreSQL pgbackrest veya RMAN AES-256 Şifreleme
# /etc/pgbackrest/pgbackrest.conf
[global]
repo1-type=s3
repo1-s3-bucket=my-secure-db-backups
repo1-s3-endpoint=s3.eu-central-1.amazonaws.com
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=MY_STRONG_SECRET_ENCRYPTION_PASSPHRASE_FROM_VAULT

[main-cluster]
pg1-path=/var/lib/postgresql/17/main

Adım Adım Uygulama Rehberi

Canlı veya test ortamında güvenle devreye almak için sıralı operasyon adımları.

1

İşletim Sistemi ve Blok Düzeyinde Şifreleme (LUKS / dm-crypt)

bash

Veritabanı veri dizini (`/var/lib/postgresql/data`) için LUKS ile tam disk şifreleme kurun.

cryptsetup luksFormat /dev/sdb
cryptsetup luksOpen /dev/sdb pg_encrypted_data
mkfs.ext4 /dev/mapper/pg_encrypted_data
mount /dev/mapper/pg_encrypted_data /var/lib/postgresql/data
2

Yedeklerin GPG / AES-256 ile Şifrelenmesi

bash

Lojik veya fiziksel yedek alırken boru hattında (pipeline) anlık şifreleme uygulayın.

pg_dump -U postgres -Fc production_db | openssl enc -aes-256-cbc -salt -pbkdf2 -out production_db_$(date +%F).dump.enc -pass file:/etc/vault/backup_key.bin
3

Yedekten Dönüş Testi (Decryption & Restore Drill)

bash

Şifreli yedeğin doğru anahtarla çözülebildiğini düzenli olarak test ortamında doğrulayın.

openssl enc -d -aes-256-cbc -pbkdf2 -in production_db.dump.enc -pass file:/etc/vault/backup_key.bin | pg_restore -U postgres -d test_db

En İyi Saha Pratikleri

  • Şifreleme anahtarlarını ASLA veritabanı sunucusunun yerel diskinde veya kod deposunda saklamayın; Vault/KMS kullanın.
  • Her yıl anahtar rotasyonu gerçekleştirin ve eski şifrelenmiş yedeklerin erişilebilirliğini garanti edin.

Sık Yapılan Hatalar & Tuzaklar

  • Yedekleme parolasının veya anahtar dosyasının kaybedilmesi sonucu tüm felaket kurtarma (DR) sürecinin çökmesi.
  • Tempdb veya temp disklerinin şifresiz bırakılması nedeniyle sıralama (sort) işlemlerinde diskte açık veri kalması.