• 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.jks
        password: letmein
        alias: mytestkey
        secret: changeme
    

    4. 如何加密配置文件内容信息

     经过上面的配置,配置服务器已经具备给配置文件内容加密与解密的能力,下面介绍如何进行加密和解密

    服务器会暴露 /encrypt/decrypt接口。如果你想编辑远程配置文件,你可以请求Config Server的/encrypt接口来加密。

    逆操作也可以通过/decrypt 来完成。

    你加密的值增加{cipher}前缀后,放入配置文件中即可,从配置服务器获取的配置会是经过自动解密的内容。

    当客户端程序对主环境资源不能确定时,/encrypt 和/decrypt接口也接受带有路径形式的请求 /*/{name}/{profiles},这样可以针对每个application(name)和profile进行详细的控制加解密。

    如果以这种细粒度的方式来控制加解密,你必须提供一个TextEncryptorLocator类型的@Bean,使用这个Bean 可以为每个名称或profile创建不同的加密方法。默认提供的并没有这个功能(所有加密使用相同的密钥)。

  • 相关阅读:
    【HDOJ】4370 0 or 1
    【HDOJ】4122 Alice's mooncake shop
    【HDOJ】4393 Throw nails
    【HDOJ】2385 Stock
    WinCE 输入法编程
    WinCE 自由拼音输入法的测试
    SQL Server CE开发环境建立过程
    【SQL Server CE2.0】创建加密的数据库(源代码)
    【SQL Server CE2.0】打开加密的数据库(源代码)
    EVC在双核PC上调试速度慢的原因
  • 原文地址:https://www.cnblogs.com/vincent0928/p/6166115.html
Copyright © 2020-2023  润新知