我确信这是一个关于AWS的EC2和S3的相当简单的问题。
我有一个托管在S3上的静态网站,它连接到我想要保护的EC2实例上的MongoDB服务器。目前它对端口27017上的所有Internet 0.0.0.0/0开放,这是MDB的默认值。出于安全原因,我想将入站流量限制为仅来自S3静态网站的请求。显然,S3不提供导致问题的固定地址。
我唯一的想法是打开我所在的S3区域的所有IP范围的端口.AWS上的这个文档解释了如何找到它们。虽然它们如有变更,恕不另行通知。
http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html
这是继续进行的方式还是我错过了一些明显的东西。另一种为S3分配IP的方法呢?
答案 0 :(得分:1)
S3是一种存储服务,而不是计算服务,因此无法向MongoDB发出请求。当S3提供静态网页时,您的浏览器将呈现它,当用户点击链接连接到您的MongoDB时,请求将从用户的计算机发送到MongoDB 。
所以MongoDB看到来自用户IP的请求。由于您不知道用户来自哪里(或IP范围),因此您别无选择,只能收听来自任何IP的流量。
答案 1 :(得分:0)
我认为不可能仅允许您的s3托管网站访问ec2内的数据库,因为s3不为您提供IP地址。
因此,最好尝试替代解决方案,例如不要直接访问数据库,通过ec2内的https服务进行代理,并限制mondo数据库端口的入站流量
答案 2 :(得分:0)
s3不会在ec2实例上请求你的mongodb服务器。根据我的理解,浏览器中的js文件将请求在ec2实例上运行mongodb。在这种情况下,您必须在mongodb配置文件中添加消息头以允许 CORS 。