我们的系统有三个主要组成部分:
这一切在生产中都很有效。
我们也有一个测试版本的monolith是不可访问的外部。
我想能够旋转任意数量的AWS环境的副本,以测试或演示的目的,可以访问演示测试版本的monolith。但是,因为它是一个测试系统,它需要保持对公众的不可访问性。我知道如何使用AWS (安全组等)轻松地实现这一点,但是如何保护monolith,使其只能由运行在AWS中的任意数量的动态创建的实例访问(考虑到IP地址是动态的,因此不能白名单)?
我现在唯一的想法是使用访问令牌,但我不确定它有多安全。
编辑-我的微服务每个都运行在一个EC2实例上。
发布于 2016-01-14 02:39:10
假设您正在EC2上运行您的微服务,如果您希望运行在AWS中的应用服务器的API调用来自已知的IP/IP,那么可以通过使用NAT实例或代理来实现这一点。这样,即使应用程序服务器是动态的,请求的明显来源也不是。
对于NAT,您将在私有子网中运行EC2实例,并将它们配置为通过NAT实例发送所有互联网流量,NAT实例将具有恒定的IP。使用代理服务器或代理服务器可以以同样的方式完成,但需要配置您的微服务应用程序来使用它。
更好的方法是不通过公共互联网将流量发送到您的微服务。
这可以通过建立从公司网络到VPC的VPN来实现。或者,您可以建立一个直接连接来连接网络。
附带注意,如果您的微服务实际上运行在AWS Lambda中,那么这个答案就不适用了。
https://stackoverflow.com/questions/34779360
复制相似问题