2017-06-21 33 views
0

我确定这是一个关于AWS上的EC2和S3的相当简单的问题。从S3到AWS上的安全连接AWS

我有一个静态网站托管在S3上,它连接到我想保护的EC2实例上的MongoDB服务器。目前它在端口27017上的所有互联网0.0.0.0/0都是开放的,这是默认的MDB。但是出于安全原因,我想限制入站流量仅限来自S3静态网站的请求。显然S3不提供导致问题的固定地址。

我唯一的想法是打开端口到我所在的S3地区的所有IP范围。AWS上的这个文档解释了如何找到这些文件。虽然他们如有更改,恕不另行通知。

http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html

这将是继续的方式还是我缺少明显的东西在这里。也许另一种将IP分配给S3的方法?

+0

是不是有可能通过域名而不是IP来设置入站规则? – bhar1red

+0

或为S3分配静态IP。 – bhar1red

+1

也许使用VPC端点,阅读这个[链接](https://aws.amazon.com/es/blogs/aws/new-vpc-endpoint-for-amazon-s3/) –

回答

0

我认为不可能仅允许您的s3托管站点访问ec2内部的数据库,因为s3不会为您提供IP地址。

所以它能够更好地尝试另一种解决方案,例如,而不是直接访问数据库,代理通过您的EC2内HTTPS服务,并限制你的盟分贝端口

1

S3的入站流量为存储服务,而不是计算服务,以便它不能向MongoDB发出请求。当S3提供静态网页时,浏览器将呈现它,当用户点击链接以连接到MongoDB时,请求将从用户的计算机转到MongoDB。

因此,MongoDB看到来自用户IP的请求。由于您不知道用户来自哪里(或IP范围),您别无选择,只能听取来自任何IP的流量。

0

s3不会在ec2实例上请求您的mongodb服务器。从我的理解你的浏览器中的js文件将请求在ec2实例上运行的mongodb。在这种情况下,您必须在mongodb配置文件中添加消息头以允许CORS

CORS:enter link description here