Security
編寫 postgres 同步腳本——這安全嗎?
我編寫了一個腳本來將生產數據庫與開發數據庫同步(從頭開始重新創建),並且我想深入了解潛在的安全漏洞/問題,該腳本發佈在下面。出於安全目的,伺服器禁用了遠端訪問,並且使用公鑰身份驗證管理 ssh 身份驗證。
#!/bin/bash #this is pretty seriously sketchy script... current_time=`date +%s` dump_file_name=/tmp/temporary_dump_$current_time.dump echo SSHing and dumping to $dump_file_name ssh -t remoteuser@remote.server.amazonaws.com << EOT pg_dump -U postgres -Fc dbName > $dump_file_name PASSWORD #password in plain text exit EOT echo SCPing the file locally to: `pwd`$dump_file_name scp remoteuser@remote.server.amazonaws.com:$dump_file_name $dump_file_name echo Cleaning up the remote file ssh -t remoteuser@remote.server.amazonaws.com << EOT rm $dump_file_name exit EOT ssh -t development@development-testing << EOT pg_restore --clean --dbname=dbName -Fc --username=postgres -W $dump_file_name PASSWORD #password in plain text exit EOT echo Cleaning up the local file rm $dump_file_name exit 0
乍一看,我看到了四個問題:
- 您正在以明文形式儲存密碼。
罪孽深重,甚至不可饒恕。還有其他方法可以解決這個問題,儘管每種方法都有自己的安全問題。
如果您絕對必須將其儲存在這裡,請確保任何不應該擁有密碼的人都無法讀取該腳本… 2. 您將未加密的數據庫轉儲儲存在雲中。
你真的相信亞馬遜的安全嗎?你不應該。 3. 您可以多次執行此腳本(並同時執行 2 個)。
這不是一個“安全”問題,但它可能會濫用您的數據庫。該腳本應將自身鎖定,因此它不能多次執行。 4.
pg_dump gets
大型數據庫效率低這也不是“安全”問題,但請查看Postgres 備份和恢復文件以獲取更多資訊。還可以考慮在我們的 DBA 站點上
詢問有關備份的問題。