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

微服务之间的安全性

闽哲
2023-03-14

我有两个微服务,例如A和B。微服务B有剩余的enpoint,必须只能从微服务A访问。如何限制微服务之间的访问?如果可能的话,最佳做法是什么?

我正在使用Spring Cloud Security(oAuth2, jwt)。

共有2个答案

顾嘉纳
2023-03-14

还有另一个微服务,它不是对业务问题负责,而是对非功能性业务问题负责:安全性。

此微服务是合乎逻辑的(因为所有微服务都应该在逻辑上对业务问题负责),并且不是单独部署的,而是与其他微服务一起部署的。然后在接受任何调用或执行调用之前,构建一个微服务A和B都知道并强制执行的适当API。

如果其他微服务应该是某个业务相关边界的一部分(如果你愿意,可以是有界上下文),那么安全微服务就在非功能性需求的边界之内。你可以称之为IT/Ops或Devops之类的。

邹英发
2023-03-14

这是一个网络问题。只需在网络级别限制对微服务B的访问。例如,如果使用Docker,这可以很容易地完成。您只需不公开微服务B的相关端口,而是在特定网络上公开它,然后让微服务加入该网络。

如果想增加额外的安全性,可以使用公钥/私钥。或者,为应用程序a生成JWT并在微服务B中对其进行验证会更简单,但当您添加更多微服务时,这会带来更多的管理开销。

或者,您应该查看可以为您处理API访问的API网关

 类似资料:
  • 我正在从事 服务项目,主要从服务间通信之间的安全角度提出疑问。在我的项目中,我们有 API 网关,它可以筛选所有传入请求是否存在安全问题,然后再将它们路由到适当的微服务。API 网关位于客户端应用程序和微服务之间。然后,它会限制微服务的公开,同时提供其他请求管理功能,例如身份验证、SSL 终止、协议转换、监视、请求路由、缓存等。 假设案例微服务1(MS1) 部门答案预计在这里。

  • 我正在写一个微服务的应用程序,由Spring Boot和Spring云。我有五个模块 API网关(基于Spring云网关spect) Discovery-Server(基于Spring云NetflixEureka服务发现) Microservice-A(它是一个包含我们业务的Spring引导应用程序) Microservice-B(它是一个包含我们业务的Spring引导应用程序) Microser

  • 当前体系结构: 问题: 我们在前端和后端层之间有一个两步流程。 null 微服务2(MS2)需要验证I1的完整性,因为它来自前端。如何避免对MS1进行新的查询?最好的办法是什么? 我试图优化的流删除了步骤1.3和2.3 流程1: null 流程2: 2.1用户X已在本地/会话存储中存储了数据(MS2_Data) 2.2用户X在MS1上保留数据(MS2_Data+MS1_Data) 2.3 MS1使

  • 我想创建一个基于微服务的 spring boot 项目。我使用 Zuul 实现了一个网关,现在不确定如何使用什么来实现微服务之间的安全性。我需要微服务在用户收到请求时了解用户的权限,它们也可能相互通信,而不仅仅是网关。我正在使用 Spring boot 2.5.7 ,但似乎 oauth2 已被弃用,我也阅读了有关 spring 授权服务器的信息,但它是实验性的。我应该使用什么来确保安全性,如果您有

  • 我正在构建一个基于Spring云的微服务ML管道。我有一个数据摄取服务,它(当前)从SQL接收数据,这些数据需要被预测服务使用。 普遍的共识是写入应该使用kafka/Rabbitmq使用基于异步消息的通信。 我不确定的是如何编排这些服务? 我是否应该使用API网关来调用启动管道的摄取?

  • 我将非常感谢任何答复以及文章,在您的意见可能有助于这里。提前谢谢你。