公司通過flyway來控制資料庫版本,生成環境中flyway.conf配置檔案中直接明文暴露資料庫連接配接及通路賬号密碼非常不安全,找了下發現flyway中可以通過gpg來對flyway.conf配置檔案進行加密。通路連結:https://flywaydb.org/blog/flyway-6.4

gpg安裝
GPG有兩種安裝方式。可以下載下傳源碼,自己編譯安裝。
./configure
make
make install
也可以安裝編譯好的二進制包。
# Debian / Ubuntu 環境
sudo apt-get install gnupg
# Fedora 環境
yum install gnupg
安裝完成後,鍵入下面的指令:
gpg --help
如果螢幕顯示GPG的幫助,就表示安裝成功。
生成密鑰
檢視關聯連結1中生成密鑰即可,這裡在最後一步可能會出現卡住問題,一直過不去。解決方案是:新開一個視窗,通過 yum install rng-tools完成安裝。之後再執行指令:rngd -r /dev/urandom。執行完指令後立刻生成。具體展示看關聯連結2。
flyway加密
環境:flyway、mysql
對flyway進行加密,檢視關聯連結3
-r需指定使用者id
我的flyway已經配置了全局,
将sql檔案夾中建立一個空基線檔案
因為可能有多套flyway配置檔案,是以通過 -configFiles=-指定,而不是用conf下預設flyway.conf檔案。是以清空conf檔案夾
解密時為了安全考慮,會讓你提示輸入密碼,在腳本執行就比較麻煩。因為我是gpg2.x版本,可以通過此指令讀取指定密碼檔案。詳情可以檢視關聯連結4。
我把密碼寫在了passwd檔案裡,通過參數指定,這樣就不需要輸入密碼驗證了。具體參數含義可以通過,man gpg或者gpg -h檢視。還有幾種方式可以參照關聯連結4。
如何使用(将flyway執行機的公鑰導出并提供給外部其它人員,通過公鑰對flyway.conf進行加密,并将加密檔案提供給flyway執行機進行解密操作)【這邊還要考慮到私鑰丢失等情況,防止出現密鑰丢失無法解密自己的配置檔案】
從flyway執行機上檢視并導出公鑰
将公鑰檔案傳輸到用戶端機器,并導入公鑰,對flyway.conf檔案加密。
将加密後的flyway.conf檔案傳回flyway執行機,并嘗試解密。
因為時間原因gpg使用了解不多,後續有時間再做添加深入。
關聯連結1:http://www.ruanyifeng.com/blog/2013/07/gpg.html
關聯連結2:https://blog.csdn.net/a910196454/article/details/109155979
關聯連結3:https://flywaydb.org/documentation/usage/commandline/#configuration-from-standard-input
關聯連結4:https://www.cnblogs.com/suanec/p/13039844.html
關聯連結5-gpg文檔:https://help.ubuntu.com/community/GnuPrivacyGuardHowto