微服务之间的安全性

时间:2016-06-16 16:07:44

标签: spring-security microservices spring-cloud-feign spring-cloud-security

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

我正在使用spring cloud security(oauth2,jwt)。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

让另一个微服务对业务问题负责,但对于非功能性业务问题:安全性。

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

如果其他微服务应该是某些业务相关边界(有界上下文,如果你愿意)的一部分,那么安全微服务就属于非功能性需求的范围。您可以调用此IT / Ops或Devops等。