首页 > 解决方案 > 微服务:内部服务的安全和架构问题

问题描述

我正在构建一个 Spring Boot 微服务,我有一些问题

我有账户微服务、支付微服务、产品微服务……在这些微服务中,有些请求有时需要使用邮件API、短信发送API、或者推送通知API。

我现在所做的是创建一个用于发送邮件的微服务、一个用于发送短信的微服务和一个用于推送通知的微服务。

我似乎无法解决的是如何使这些微服务仅在内部使用。例如,禁止用户直接调用邮件微服务。

在在stackoverflow上创建这个问题之前,我自己搞砸了,为什么我不会将发送短信的代码放在库中,发送电子邮件和推送通知并将它们添加到微服务中也是如此......当微服务需要时使用其中一个 api 我添加所需的库 .. 例如,我创建了一个推送通知库,并将其添加到需要执行推送通知的每个微服务中。

将这些邮件、短信和通知服务集成到我的微服务项目中并通过禁止用户直接使用来尊重安全性的最佳方法是什么

我不知道该怎么办,有人可以告诉我吗?

标签: springspring-bootmicroservices

解决方案


  • 您不必担心其他微服务在应用程序代码中调用mailing microservicesms microservice。如果您考虑这个问题,这将适用于任何内部微服务。可以在基础架构级别处理此问题

  • 让我给你举个例子,你有一个数据库在某个地方运行,你的微服务是否做任何事情来确保它是唯一一个与该数据库对话的人。答案是不。在基础架构级别,无论您使用什么云基础架构,它们都允许定义安全规则/网络策略,从而让您定义谁可以与谁交谈。IE。传入流量规则和传出流量规则

  • 如果它们是面向公众的微服务,那就是另一个问题了。这些是内部服务

  • 基于基础设施的一些示例

  • 我还想补充一点,可能与您的问题没有直接关系。有问题的服务似乎非常适合作为异步服务。然后没有服务直接与他们交谈,发送服务将通知放入queueorkafka topic并且这些服务从主题中消费。所以现在它确保只有相关服务将其发送到网络级别的队列或主题


推荐阅读