当前位置: 首页 > 知识库问答 >
问题:

保护对spring cloud configserver的访问

邢飞雨
2023-03-14

我想知道人们在使用Spring Cloud Config时是如何处理安全方面的。我计划将Spring Cloud Config Server和Client与Spring Boot一起使用。从实现的角度来看,这是非常直接的,但是您如何处理向每个开发人员披露密码/访问权限的风险。例如,您运行一个包含所有环境配置的中央配置服务器。在配置客户端应用程序的bootstrap.yml中,您必须配置用户名/密码才能访问配置服务器。到目前为止还不错,但是当我知道在相应的yml文件中提交用户名/密码时,每个开发人员都可以通过将配置文件从例如开发切换到生产来访问所有环境(请不要开始讨论为什么不是每个开发人员都需要访问生产)。

我知道我可以加密配置中的所有密码,我们可以这样做,但这不是我想要的。加密只是一种不将密码以明文形式存储在文件中的功能,但如果用户首先可以访问configserver,则不需要知道明文密码即可访问。

这也是为了避免开发过程中的错误...很容易切换本地环境以连接到生产环境或任何其他环境。

那么人们是如何应对的呢?您是否注入了不同的引导。yml在开发中,然后在其他环境中?如果是,您如何管理/传播这些内容?

您是否在comandline上为配置用户设置密码?...?

共有2个答案

巩光誉
2023-03-14

我自己也在考虑这个问题,想出了3个选择。在所有情况下,对敏感数据在repos中使用{cipher}值,并禁用允许解密或属性值列表的各种执行器endpoint。

  1. 有两个配置服务器,一个用于开发,一个用于prod,没有对prod服务器的开发访问权限,由运行时提供给prod客户端的凭据控制。
  2. 使用在运行时提供给prod客户端的秘密执行解密客户端
  3. 显式定义prod配置文件并阻止从非prod服务器访问包含该配置文件的URL。
楚皓君
2023-03-14

我们对配置服务器URL、用户和密码使用变量和默认值

${config_username: user}:${config_password:密码}@${config_server:conf.mydomain.com}

默认值可以是开发环境的有效凭据,这样您只需在开发时运行它。当您部署到生产环境时,只需设置这些环境变量,您的应用程序就会连接到不同的配置服务器

 类似资料:
  • Kafka Connect的REST API没有经过安全保护和身份验证。由于没有经过身份验证,连接器或任务的配置很容易被任何人访问。由于这些配置可能包含如何访问源系统[在SourceConnector的情况下]和目标系统[在SinkConnector的情况下],是否有一种标准的方法来限制对这些API的访问?

  • 问题内容: 我有一个可通过HTTP访问的简单Web API,一些相应的移动应用程序正在读取该数据。现在有人反编译了一个应用程序/嗅探了HTTP流量,将URL转到了我的Web API,并建立了自己的客户端,就像我的客户端一样。 如何确保仅我自己的客户对API的访问权限?即使想到有人在反编译我的应用程序。 服务器和客户端代码更改是一个选择! 问题答案: 服务器和客户端代码更改是一个选择! 首先,您无法

  • 问题内容: 我有两节课。 类具有受保护的方法,是的实例。 Class 与class在同一包中。 我正在尝试访问,但正在获取… 怎么了? 问题答案: 编译器应该捕获这样的错误。当您显然在运行时得到此消息时,发生了一些奇怪的事情。可能您已更改了源代码,但已完全重新编译。 另一个潜在但晦涩的问题是通过不同的类加载器加载类。即使包名称相同,从不同的类加载器加载的类也将位于不同的包中(以与由不同的类加载器加

  • 问题内容: 我想了解以下示例中的情况(通过包从子类外部访问受保护的成员)。 我知道对于包外部的类,子类只能通过继承才能看到受保护的成员。 有两个包:和。 : : : 可以理解,中的方法可以访问,因为受保护的成员只能通过继承来访问。 我的问题是,为什么是方法,通过在基准访问时,工作正常的方法 ,但 将无法正常工作 通过访问时的参考? 问题答案: 该类中的代码被允许通过type的引用访问受保护的成员。

  • 通过向资源服务器出示访问令牌,客户端访问受保护资源。资源服务器必须验证访问令牌,并确保它没有过期且其范围涵盖了请求的资源。资源服务器用于验证访问令牌的方法(以及任何错误响应)超出了本规范的范围,但一般包括资源服务器和授权服务器之间的互动或协调。 客户端使用访问令牌与资源服务器进行证认的方法依赖于授权服务器颁发的访问令牌的类型。通常,它涉及到使用具有所采用的访问令牌类型的规范定义的身份验证方案(如R

  • 问题内容: 我正在编写代码来创建对象,克隆对象,然后将两者进行比较。 所讨论的对象Octagon是对象GeometricObject的扩展 在名为Octagon.java的文件中 另外,TestOctagon.java是我的主要方法: 错误出现在main方法的最后一行。 我尝试重命名Octagaon中的clone方法,对clome说,但是随后出现错误: 我感觉到问题是因为Octagon扩展了另一个