AWS 是否允许将 Cloudfront 用于网站使用,例如:缓存网页。
网站应该只能在企业 VPN 中访问。使用受限于一个网络的应用程序时,在云端缓存网页是个好主意吗?
最佳答案
正如@daxlerod 指出的那样,可以使用相对较新的Web Application Firewall CloudFront 服务,以限制对内容的访问,例如,通过 IP 地址范围。
而且,当然,不要求网站实际托管在 AWS 中以便在其前面使用 CloudFront。
然而,“它会起作用吗?”以及“从安全角度来看,所需配置的所有含义都可以接受吗?”是两个不同的问题。
为了在站点上使用 CloudFront,必须可以从 Internet 访问源服务器(CloudFront 获取不在请求内容的边缘节点缓存中的内容的 Web 服务器),以便 CloudFront连接到它,这意味着您的私有(private)网站必须在某种程度上暴露给互联网。
CloudFront IP 地址范围是公共(public)信息,因此您可以使用源服务器的防火墙部分保护对源服务器的访问,但这只会阻止通过 CloudFront 以外的任何地方进行访问——这还不够,因为如果我知道您的“安全”服务器的名称,我可以创建自己的 CloudFront 分配并通过 CloudFront 访问它,因为 IP 地址将在同一范围内。
CloudFront 提供的用于确保请求来自和通过授权 CloudFront 分配的机制是自定义原始 header ,它允许 CloudFront 将未知的自定义 header 和 secret 值注入(inject)到它发送到您的原始服务器的每个请求中,以允许您的服务器对事实上,请求不仅来自 CloudFront,而且来自您的特定 CloudFront 分配。当然,您的原始服务器会拒绝没有带有此 header 的请求,而无需解释。
见 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html#forward-custom-headers-restrict-access .
当然,您需要在浏览器和 CloudFront 之间使用 https,在 CloudFront 和源服务器之间需要 https。可以将 CloudFront 配置为在正面或背面分别使用(或要求)https,因此如果上述安全考虑使其成为满足您需求的可行解决方案,您将需要确保为两者正确配置。
对于不高度敏感的信息,如果 CloudFront 的缓存或其他功能对您的站点有益,这似乎是一种明智的方法。
关于amazon-web-services - 适用于 VPC/VPN 的 AWS Cloudfront,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35509336/