spring-cloud-config安全问题
配置服务的安全问题会很重要,其中的内容是我自己学习的,由于学习时间不长,有可能不是很完备,如果有更好的方案,烦请评论中留言或私信,谢谢!
1. 首先访问配置服务需要设置密码:
使用spring-security使得这件事变得很简单,在pom.xml中引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
在application.properties中指定用户名和密码,
security.user.name=user
security.user.password=yourPW
如果不指定,用户名默认是user,密码会使用随机密码写入到log中。配置客户端也是需要提供账号密码才能访问的,配置客户端的搭建方案后面会说。
2. 大部分公司没能力自己改造git仓库,因此,机密性很高的配置放入git中并不安全。
配置服务提供了对配置的加密和解密,由于配置客户端会很多,并不安全,建议将加密和解密全部放在配置服务中完成。
3. 加密配置文件内容:
Config Server 可以使用对称(共享)密钥或者非对称密钥(RSA密钥对).就安全性来讲,非对称密钥是优先选择,但是,选择对称密钥进行加解密处理显得非常方便,因为,只需要简单的配置一个属性值.
加密使用公钥完成,私钥用来解密。原则上,如果你只想加密,服务器上只配置公钥(用私钥在本地自行解密)。实际中,建议将加密和解密全部放在配置服务中完成。原因是这种方式会把密钥管理过程让所有的客户端都知道,而不是把焦点聚集在服务器上。从另外一个方面讲,一个非常有益的建议是如果你的配置服务器相对不安全,只能有少数客户端需要加密配置属性。
加密配置:
1. 生成密钥库
$ keytool -genkeypair -alias mytestkey -keyalg RSA \-dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \-keypass changeme -keystore server.jks -storepass letmein
2. 配置配置服务配置文件
encrypt:keyStore:location: classpath:/server.jkspassword: letmeinalias: mytestkeysecret: changeme
4. 如何加密配置文件内容信息
经过上面的配置,配置服务器已经具备给配置文件内容加密与解密的能力,下面介绍如何进行加密和解密
服务器会暴露 /encrypt
和/decrypt
接口。如果你想编辑远程配置文件,你可以请求Config Server的/encrypt
接口来加密。
逆操作也可以通过/decrypt
来完成。
你加密的值增加{cipher}
前缀后,放入配置文件中即可,从配置服务器获取的配置会是经过自动解密的内容。
当客户端程序对主环境资源不能确定时,/encrypt
和/decrypt
接口也接受带有路径形式的请求 /*/{name}/{profiles}
,这样可以针对每个application(name)和profile进行详细的控制加解密。
如果以这种细粒度的方式来控制加解密,你必须提供一个TextEncryptorLocator
类型的@Bean
,使用这个Bean 可以为每个名称或profile创建不同的加密方法。默认提供的并没有这个功能(所有加密使用相同的密钥)。
转载于:https://www.cnblogs.com/vincent0928/p/6166115.html
spring-cloud-config安全问题相关推荐
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
上一篇文章,讲了SpringCloudConfig 集成Git仓库,这一篇我们讲一下SpringCloudConfig 配和 Eureka 注册中心一起使用 在分布式系统中,由于服务数量巨多,为了方便 ...
- Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config,它支持配 ...
- spring cloud连载第二篇之Spring Cloud Config
Spring Cloud Config Spring Cloud Config为分布式服务提供了服务侧和客户侧的外部配置支持.通过Spring Cloud Config你可以有一个统一的地方来管理所有 ...
- spring cloud config将配置存储在数据库中
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Spring Cloud Config Server最常见是将配置文件放在本地或者远程Git仓库, ...
- java B2B2C Springcloud多租户电子商城系统-(七)高可用的分布式配置中心(Spring Cloud Config)...
讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下: 一. ...
- 企业分布式微服务云SpringCloud SpringBoot mybatis (七)高可用的分布式配置中心(Spring Cloud Config)...
讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下: 一. ...
- 为Spring Cloud Config Server配置远程git仓库
简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...
- Spring Cloud Config 集中式配置
2019独角兽企业重金招聘Python工程师标准>>> 本指南通过Spring cloud config服务器引导你建立和消费配置. 你要构建什么? 你需要设置一个config服务器 ...
- Spring Cloud Config 配置中心
1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...
Springcloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取 ...
最新文章
- springcloud分布式事务_Springcloud 分布式事务集成Naco Seata
- [ARM异常]-ARM Core中与中断相关的寄存器
- SAP用户权限控制大解析及权限进阶分析
- 零基础学Python(第三章 基础语法)
- 什么是 SAP Commerce yForms
- github操作命令
- 数据契约(DataContract)
- Bash脚本教程之变量
- Java原子操作类AtomicInteger应用场景
- 编程模式(schema) —— 表驱动法(table-driven)
- 思维导图的了解和使用
- C语言练习题,从键盘输入一个字符,在给定的字符串中寻找该输入字符,若找到将该字符从字符串中删掉,并输出该字符串,没有找到给出提示信息“未找到”。
- 红帽为什么要加入阿里云的朋友圈?
- 简转繁的JS代码(转)
- rtmp/rtsp测试地址 2019/11/22日亲测可用
- 3D角色模型欣赏:伊什塔尔-金星女神
- 马云:30年后每对年轻人要养8个老人 管理5套房子
- 数据架构与数据库建模
- 友善之臂 mini2440 linux led 驱动代码,[转]mini2440的LEDS驱动程序和测试程序详解
- scp 拷贝文件到服务器,scp 拷贝文件到远程服务器
热门文章
- hdu 3585(二分+最大团)
- 用SAXBuilder、Document、Element操作xml
- 为了测试Writer的发图功能,也为了让girls现身。
- 《LeetCode力扣练习》剑指 Offer 15. 二进制中1的个数 Java
- 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel
- 技嘉G31主板学习笔记
- ggtree实现系统发育树可视化
- 海康威视连续采图设置ROI局部显示_c#
- vue 高阶面试题_高级Web前端工程师面试之Vue问题汇总解析
- 易语言mysql连接模块_易语言mysql链接模块libmySQL6.1模块源码