【发布时间】:2017-07-05 02:03:58
【问题描述】:
目前我们有一个静态站点部署到 ECS(弹性容器服务)并由 ELB(弹性负载均衡器)作为前端。这个模型实际上没有意义,因为容器只是运行 NGINX 来提供静态资产。
但是,我们从这个模型中得到的是对网站的仅 VPN 访问(我们的 VPN 客户端将所有 10.x 流量转发到我们的 VPC),以及 ELB 上的 HTTPS 侦听器,这两者都是我们想保留。
将目前只能通过 VPN 访问的静态站点迁移到通过 HTTPS 从 S3/Cloudfront 提供服务并且只能通过 VPN 访问的最佳方式是什么?
We have the same VPN configuration as in this answer. 这个答案对我们有用,但它没有解决 S3 存储桶 IP 可能发生变化的问题(这会使 VPN 客户端上的建议路由规则无效),我不清楚如何让 HTTPS 使用它(AFAIK,您需要将 CF 放在 S3 静态站点的前面,但我不确定如何通过我们的 VPN 将流量路由到 Cloudfront。)
【问题讨论】:
-
这可以做到,但是当你看到如何实现它时,它会显得有点混乱。如果站点使用 HTTPS,那么通过 VPN 访问它的原因是什么?使用 CloudFront + WAF 来简单地限制对 VPN 客户端使用的任何公共 IP 的访问会容易得多。当然,如果它们不在具有静态 IP 地址的固定位置,那么也许这就是原因。请解释一下。
-
实际上,等等...这个计划存在问题,我们需要确保它不会违反您的政策。当存储桶处于网站托管模式时,S3 和下一个上游系统之间的传输不是 HTTP。在添加 HTTPS 之前,内容将在 S3 和它之前的任何东西(例如 CloudFront 或您的 VPC 中的代理)之间以明文形式传输。这将在 AWS 网络上,但不是端到端加密的。这是可以接受的限制吗?
-
@Michael-sqlbot S3 和 CF 之间的未加密流量是可以的,如果它在 AWS 网络上。 VPN 客户端没有静态 IP;只有到 10.x (VPC) 和 172.x(私人办公网络)的流量通过我们的 AWS VPC/VPN 网关,而 Cloudfront 是公共的。这有意义吗?
-
如果 S3 存储桶具有静态 IP,我可以通过我们的 VPN/VPC 隧道路由来自 VPN 客户端的流量,并使用仅允许从我们的 VPN/VPC 连接访问的存储桶策略,但我会失去 HTTPS。所以对于 HTTPS,我必须使用 Cloudfront。然而,这也没有任何意义,因为它是一个仅限内部的公司网站,所以问题就变成了如何使它只能通过 VPN 访问。
-
我也有类似的情况。我们在 S3 Hosting 上有一个仅限内部的静态站点。该存储桶有一个策略,仅限制来自 VPC 的流量,我们有 Direct Connect,因此该站点只能通过我们的网络访问。但是我们现在需要与 Cognito 集成(用于 SSO 联合),但 Cognito 不允许 HTTP 回调 URL。不太清楚如何解决这个问题。
标签: amazon-web-services amazon-s3 https vpn amazon-cloudfront