OpenResty Edge™ 資料庫加密
如果想要對資料庫的加密,我們可以將 PostgresSQL 的資料放到 dm-crypt 建立的加密分割槽上。
注意:加密後會對資料庫的讀寫效能有影響,根據測試結果,資料庫的寫入效能會下降 20~30% 左右,讀取效能會下降 5~10%
下面我們提供具體的配置方法,以下操作都在安裝了 openresty-postgresql12 的機器上執行。
建立加密分割槽
準備一塊新的硬碟,這裡我們準備的裝置名為 /dev/sdb。使用 cryptsetup 對新硬碟格式化進行格式化,需要輸入密碼。
sudo cryptsetup luksFormat /dev/sdb
對映到 /dev/mapper,對映名為 en_disk
。
sudo cryptsetup luksOpen /dev/sdb en_disk
對對映出來的裝置進行初始化。
sudo mkfs.ext4 /dev/mapper/en_disk
將資料庫遷移到加密分割槽上
停止 PostgreSQL 服務,
注意:資料庫遷移過程中 Edge Admin 和 Edge Log Server 會無法工作。
sudo systemctl stop openresty-postgresql12
備份 PostgreSQL 資料目錄。
sudo mv /var/postgres12/data /var/postgres12/data_backup
sudo chmod 777 /var/postgres12/data_backup
sudo mkdir -p /var/postgres12/data
將加密分割槽掛載到原來的資料目錄。
sudo mount /dev/mapper/en_disk /var/postgres12/data
將備份資料複製到加密分割槽中。
sudo cp -R /var/postgres12/data_backup/* /var/postgres12/data
sudo chown -R postgres:postgres /var/postgres12/data
sudo chmod 700 /var/postgres12/data
啟動 PostgreSQL 服務後,資料庫遷移完成。
sudo systemctl start openresty-postgresql12
資料庫遷移後,請檢查 Edge Admin 和 Edge Log Server 是否正常工作。
開機自動掛載加密分割槽 (可選)
如果需要開機後自動載入加密分割槽而不是手動操作,可以按照下面的方法進行配置。
編輯 /etc/fstab
檔案,在最後新增以下內容。
/dev/mapper/en_disk /var/postgres12/data ext4 defaults 0 0
在 /etc/crypttab
檔案中新增以下內容。
en_disk /dev/sdb /root/diskpass
建立 /root/diskpass
檔案,並往檔案中寫入加密分割槽的密碼。
sudo touch /root/diskpass
sudo chmod 600 /root/diskpass
echo "your password" | sudo tee /root/diskpass
關聯加密裝置和密碼。
sudo cryptsetup luksAddKey /dev/sdb /root/diskpass