网站首页 > 博客文章 正文
背景
在一些项目组中,使用springboot+yml文件的组合方式,进行应用开发和发布。
应用读取方式:yml文件通过configmap进行挂载到容器,让应用进行读取。
配置文件管理方式:yml文件统一存放在git中,git的权限配置为运维可操作。
这种管理模式存在一些问题:
- 效率低下:改动任何非敏感内容,都需要运维介入,增大沟通成本;
- 敏感信息泄露风险:运维作为信息管理者,敏感信息也可以获取,例如:数据库用户名和密码等
- 发布流程缺乏:配置文件更改后,没有对应的审核机制,容易产生误操作。
- 敏感信息暴露:使用confmap进行挂载,相关敏感信息也难以进行权限管理,也同时把敏感信息进行明文暴露
面对这些需求,使用Apollo作为底层配置文件存储,融入现有运维平台中,进行配置文件的管理
- Apollo作为存储yml配置文件底层;
- 对敏感信息进行加密处理;
- 将配置文件修改和配置文件发布审核权限进行分离;修改权限分给该应用的开发人员;发布权限分给对应指定人员;
- 将配置文件的拉取融入CI过程中;
逻辑架构图
- 新增、修改配置文件:应用开发人员对配置文件进行信息初始化(或者修改)
- 审核人员 or 敏感信息填写人员:审核人员:确定配置是否正常、通过发布请求;敏感信息填写人员:DBA填写数据库用户名和密码等
- 新增、修改、发布、加密敏感信息:平台发现敏感内容,则对其进行加密;配置文件封装完毕后,后台调用Apollo客户端进行CRUD
- 发布应用:配置文件审核通过后,开发人员可以自助进行发布;
- 拉取配置文件:CI过程中对配置文件进行拉取,并解密;把还原后的配置文件放置在对应的代码目录位置中;最后,对代码和配置文件进行jar打包;
- 线上变更:通过CD进行线上平台发布
效果图
配置文件入口
配置文件浏览
审核浏览
加密解密工具
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
Apollo API客户端
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-openapi</artifactId>
<version>1.7.0</version>
</dependency>
效果
- 开发团队对配置文件进行自治管理;
- 敏感信息得到加密保存;
- 发布流程中,加入了审核环境,降低误修改几率;
后续改进
开发团队可以使用Apollo客户端,对配置文件进行读取,从而不需要在CI过载中,对配置文件进行装配
猜你喜欢
- 2024-11-13 spring boot配置文件敏感字段加密
- 2024-11-13 Spring Boot数据库密码加密的配置方法
- 2024-11-13 Spring Boot安全之application配置信息加密
- 2024-11-13 如何在SpringBoot项目中实现加密?
- 2024-11-13 SpringBoot进阶-SpringBoot如何实现配置文件脱敏?
- 2024-11-13 加密SpringBoot配置文件技巧(加密pdf文件如何解密编辑)
- 2024-11-13 Spring Boot版本和Jasypt版本的兼容性问题?
- 2024-11-13 SpringBoot加密配置属性(springboot配置密码加密)
- 2024-11-13 SpringCloud-OAuth2(二):实战篇(oauth2.0 springcloud)
- 2024-11-13 SpringBoot 配置文件这样加密,才足够安全!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)