Spring Cloud Config 原理简介和实现(二)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Spring Cloud Config 原理简介和实现

6、配置中心的安全认证


现在配置内容通过加解密的方式实现了安全保障,


是配置中心spring-cloud-config-server还是完全对外公开的。


如果通过http协议地址:http://config-server-ip:port/applicationName/profile/label


是可以获取到配置文件内容,这对配置信息的安全保护还是不足。


需要给spring-cloud-config-server提供用户安全认证,


在这里使用spring-boot提供的security组件来使用HTTP Bastic用户安全认证。


在spring-cloud-config-server中增加新的依赖security:

微信图片_20220414200200.png

在spring-cloud-config-server全局配置文件中增加用户信息:


微信图片_20220414200203.png


这样就为spring-cloud-config-server提供了用户安全认证。


在客户的bootstrap配置文件中增加下述内容,来实现spring-cloud-config-client访问


微信图片_20220414200206.png


7、配置中心加密


配置文件统一存储在GIT中,虽然增强了管理和版本控制,但是文件内容的安全性也成了问题。


如果外部任意知道了GIT地址或spring-cloud-config-server的地址,那么配置文件的全部内容相当于


对外完全开放。这个时候就需要提供配置内容加解密逻辑。


将加密后的配置内容保存在GIT仓库中,在spring-cloud-config-client访问


spring-cloud-config-server的时候,过spring-cloud-config-server实现加密数据的解密,


这样就可以保证配置内容的安全了。


a、对称加密


配置密钥


微信图片_20220414200209.png


查看加解密环境


微信图片_20220414200212.png

对dev-5.0.0加密


微信图片_20220414200215.png


在命令行执行


curl http://127.0.0.1:9000/encrypt -u test -d dev-5.0.0


Enter host password for user 'test':

dcd8d3714c6e8fe91660b73461352a7807b6938e48e9d17773e6f8714cad718d(base)


-d指加密数据

-u是用户名


将密文配置到git文件中去


密文前面要加上{cipher}

微信图片_20220414200218.png


访问该配置得到明文


微信图片_20220414200221.png

b、非对称加密


使用不同的密钥(key)实现配置数据的加密和解密。


使用公钥加密数据,使用私钥解密数据。


微信图片_20220414200225.png


JDK提供了java-keytool工具来生成密钥,生成的密钥信息是"keystore"文件。


keytool工具使用方式如下:


keytool -genkeypair -alias "test" -keyalg "RSA"

-keystore "test.keystore"


微信图片_20220414200228.png


生成keystore


微信图片_20220414200231.png


将生成的密钥文件test.keystore保存到spring-cloud-config-server的


classpath下(src/main/resources),并在全局配置文件中增加下述内容:


微信图片_20220414200234.png


微信图片_20220414200238.png


实现配置数据的加解密方式和对称加密一致。

相关文章
|
2月前
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
179 23
|
2月前
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
48 2
|
3月前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
112 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
14980 29
|
4月前
|
负载均衡 Java Spring
Spring cloud gateway 如何在路由时进行负载均衡
Spring cloud gateway 如何在路由时进行负载均衡
511 15
|
4月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
115 3
|
4月前
|
消息中间件 Java 开发者
Spring Cloud微服务框架:构建高可用、分布式系统的现代架构
Spring Cloud是一个开源的微服务框架,旨在帮助开发者快速构建在分布式系统环境中运行的服务。它提供了一系列工具,用于在分布式系统中配置、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等领域的支持。
191 5
|
4月前
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成
|
4月前
|
消息中间件 Java Nacos
通用快照方案问题之通过Spring Cloud实现配置的自动更新如何解决
通用快照方案问题之通过Spring Cloud实现配置的自动更新如何解决
77 0
下一篇
无影云桌面