由于 Eureka 使用 http/https 协议与其注册者(客户端)进行交互,因此您可以通过假装是其客户端之一向其发布虚假/错误数据,告知服务已关闭,最终导致删除,从而轻松欺骗 eureka 服务器来自注册表的这些服务。在具有许多用户的大型系统中,这是很可能发生的情况。 有哪些替代安全/身份验证方案可以防止此类攻击?
如果你的服务发现可以从外部访问,你需要为其添加一些安全性,而 HTTPS 只能防止中间人攻击,所以这还不够。
如果您将 Eureka 与 Spring Cloud Starter (@EnableEurekaServer) 一起使用,您可以使用 Spring Security 来保护您的服务器。
举个简单的例子,您可以添加:
security:
user:
name: admin
password: password
并在 spring-boot 客户端这样声明 eureka :
eureka:
client:
serviceUrl:
defaultZone: http://admin:password@localhost:8002/eureka
您还可以使用 oauth 以及 Spring 提供的所有其他安全协议。