繁体   English   中英

如何限制或隐藏微服务端点,使其远离入侵者?

[英]How do I restrict or hide a microservice endpoint away from intruders?

我正在设计微服务应用程序(全部在 Spring-boot 中)和 Netflix 的 Eureka 服务。 到目前为止,我有一个管理数据库的数据库应用程序,另一个管理 email 发送和另一个用于外部 API 授权。 这三个都是微服务,并且作为 Eureka 客户端运行。 这些微服务将通过 Remote 方法使用 RestTemplate class 进行交互。

最初,我认为 Eureka 发现服务器将在本地运行,这将与单独的 Springboot 应用程序交互,该应用程序将 function 作为 Web 服务器以及用户和微服务之间的桥梁。 本质上,我只需要担心网络服务器的安全,并且端点的 rest 将从入侵者手中抽象出来,并且只能在本地访问。

但是,我刚刚发现任何用户都可以输入其中一个微服务的 IP 地址和端口号并访问这些微服务(因此他们可以随意操纵数据库),因此我的应用程序存在重大安全漏洞。

我想知道是否有办法将其他尤里卡客户端从互联网上抽象/隐藏起来,或者我是否必须为每个微服务实施某种授权?

如果您的服务可以从公共网络访问,您绝对应该进行一些身份验证和授权来管理访问。 可以说,即使是非公共服务也应该启用安全性。

您不必让它变得超级复杂——例如,部署一些分布式密钥管理、证书等。在这一天,您必须选择共享密钥或公共/私有密钥。

由于您已经在使用 Spring,Spring-Security 是您正在寻找的东西 - 只需谷歌“spring security for api”即可获得具体细节。

- 编辑:

“可以说,即使是非公共服务也应该启用安全性。” - 实际上,非公共服务必须启用安全性——这被称为零信任基础设施; 从长远来看,使东西更加安全

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM