flyway配置文件加密

       公司通过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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值