I-set up ang Data Encryption at Rest sa PostgreSQL

I Set Up Ang Data Encryption At Rest Sa Postgresql



Dapat mong i-secure ang iyong data sa tuwing nagtatrabaho ka sa anumang database. Para sa PostgreSQL, posibleng i-secure ang data sa pahinga. Kasama sa lohika ang pag-secure ng iyong data habang naka-imbak ito sa disk. Sa ganoong paraan, magkakaroon ka ng isa pang linya ng depensa upang protektahan ang iyong data mula sa isang umaatake.

Bagama't hindi nag-aalok ang PostgreSQL ng mga built-in na opsyon sa pag-encrypt, maaari mong i-set up ang pag-encrypt ng data sa pahinga gamit ang mga paraan ng pag-encrypt ng third-party. Nakatuon ang tutorial ngayon sa paggamit ng Transparent Data Encryption (TDE) na paraan upang paganahin ang filesystem-level encryption.

Paano I-setup ang Pag-encrypt ng Data sa Pahinga sa PostgreSQL

Kapag itinatakda ang data encryption sa pahinga sa PostgreSQL, ang layunin ay gawing hindi nababasa ang data sa filesystem sa pamamagitan ng pag-aatas ng decryption key. Sa ganoong paraan, maaalis ang hindi awtorisadong pag-access.







Kapag ang PostgreSQL ay tumatakbo sa iyong server, maaari mong i-setup ang filesystem-level encryption gamit ang mga tool ng third-party gaya ng Linux Unified Key Setup (LUKS). Maaari mong mahanap ang naaangkop na solusyon para sa iyong system. Dito, nakikipagtulungan kami sa Ubuntu at i-setup ang pag-encrypt ng data gamit ang mga sumusunod na hakbang.



Hakbang 1: I-install ang Filesystem Encryption Tool

Kapag pinili mo ang paraan ng pag-encrypt, dapat mong i-install ang mga kinakailangang tool. Pinipili namin ang paraan ng pag-encrypt sa antas ng filesystem at i-install ang LUKS. Upang i-install ang LUKS, i-install ang cryptsetup tulad ng sumusunod:



sudo apt-get install cryptsetup





Pindutin ang 'y' upang ipagpatuloy ang pag-install at tiyaking mai-install ang lahat gaya ng inaasahan.

Hakbang 2: Mag-set up ng Naka-encrypt na Container

Dahil nagse-set up kami ng filesystem-level encryption, dapat kaming lumikha ng naka-encrypt na direktoryo sa aming disk na naglalaman ng data ng PostgreSQL. Suriin ang mga available na device sa iyong operating system gamit ang sumusunod na command:



sudo fdisk -l

Susunod, piliin ang naaangkop na aparato at patakbuhin ang sumusunod na command. Dito, ginagamit namin ang /dev/sdb aparato. Ipo-prompt kang kumpirmahin ang aksyon sa pamamagitan ng pag-type ng 'OO' at pagkatapos ay maglagay ng passphrase.

Dapat mong i-encrypt ito gamit ang LUKS sa pamamagitan ng pagpapatakbo ng sumusunod na command:

Hakbang 3: I-format ang Container

Para sa ginawang lalagyan, dapat namin itong i-format. Ginagamit namin ang opsyong “mkfs.ext4” sa pamamagitan ng pagpapatakbo ng sumusunod na code:

sudo mkfs.ext4 / dev / mapper / postgres_encrypted

Hakbang 4: I-mount ang Container

Susunod, i-mount natin ang naka-encrypt na lalagyan. Magsimula sa pamamagitan ng paglikha ng isang direktoryo sa /mnt/ tulad ng sumusunod:

sudo mkdir / mnt / postgres

Kapag nagawa na ang direktoryo, magpatuloy at i-mount ang naka-encrypt na lalagyan gamit ang command na 'mount' at tukuyin ang path.

sudo bundok / dev / mapper / postgres_encrypted / mnt / postgres /

Hakbang 5: Ilipat ang PostgreSQL Data

Sa ngayon, gumawa kami ng naka-encrypt na lalagyan upang iimbak ang aming data ng PostgreSQL, ngunit hindi pa namin naililipat ang data. Bago ilipat ang data, dapat nating ihinto ang serbisyo ng PostgreSQL.

sudo systemctl ihinto ang postgresql

Upang ilipat ang data ng PostgreSQL, patakbuhin ang sumusunod na command na 'kopya' at tiyaking kopyahin mo ito sa direktoryo na ginawa namin kanina:

sudo rsync -ng / ay / lib / postgresql / mnt / postgres

Susunod, i-backup ang orihinal na data ng PostgreSQL sa pamamagitan ng paglipat nito sa isang backup na lokasyon.

sudo mv / ay / lib / postgresql / ay / lib / postgresql_backup


Pagkatapos ay kailangan mong lumikha ng simbolikong link para sa direktoryo para sa mabilis na pag-access.

sudo ln -s / mnt / postgres / postgresql / ay / lib / postgresql

Ayan yun. Nagawa naming kopyahin at ilipat ang PostgreSQL data sa aming filesystem-level na naka-encrypt na lalagyan upang matiyak na secure namin ang data sa pahinga.

Hakbang 6: I-edit ang PostgreSQL Config File

Ang data_directory sa config file ay sumasalamin sa mahalagang lokasyon ng data ng PostgreSQL. Gayunpaman, dapat namin itong i-edit upang tumugma sa lokasyon ng data ng PostgreSQL sa naka-encrypt na lalagyan na aming ginawa. Kaya, buksan ang PostgreSQL config file gamit ang isang text editor. Hanapin ang seksyon ng data_directory. Lumilitaw ito tulad ng ipinapakita sa sumusunod bago namin ito i-edit. Maaaring mag-iba ang landas depende sa bersyon ng PostgreSQL na naka-install sa iyong system.

Baguhin ang path upang idirekta sa naka-encrypt na lalagyan na ginawa namin sa hakbang 4. Sa aming kaso, ang bagong path ay ang sumusunod:

Hakbang 7: I-save, Lumabas, at I-restart

I-save at lumabas sa PostgreSQL configuration file. Susunod, simulan o i-restart ang PostgreSQL. Nagawa mong i-setup ang pag-encrypt ng data sa pahinga sa PostgreSQL.

Ayan yun! Maaari mong ipagpatuloy ang paggamit ng PostgreSQL nang ligtas at tamasahin ang bagong pag-encrypt sa antas ng filesystem.

Konklusyon

Ang pagse-set up ng data encryption sa natitirang bahagi sa PostgreSQL ay kinabibilangan ng pagtukoy kung anong paraan ng pag-encrypt ang gagamitin at pagkatapos ay i-set up ito. Pinili namin ang TDE encryption gamit ang LUKS para mag-setup ng filesystem-level encryption. Bukod dito, idinetalye namin ang bawat hakbang na dapat sundin upang i-set up ito. Ayan yun! Subukan ito at sundin ang mga ibinigay na hakbang.