如果我使用弹性 IP 在 AWS EC2 上托管一个网站,并且我想限制仅美国地区用户访问该网站,有没有简单的方法可以做到这一点?网站由 Apache 提供支持。
根据这个链接
.htaccess可能是一种选择,但没有找到将我的网站专门锁定给美国地区用户的方法。
如果我使用弹性 IP 在 AWS EC2 上托管一个网站,并且我想限制仅美国地区用户访问该网站,有没有简单的方法可以做到这一点?网站由 Apache 提供支持。
根据这个链接
.htaccess可能是一种选择,但没有找到将我的网站专门锁定给美国地区用户的方法。
我将限制我对亚马逊服务的回答。
能够通过世界位置阻止访问是当今的一个重要问题。鉴于有关内容所在/存储位置的所有各种政府法规,在某些情况下控制访问可能是法律要求。
Amazon 拥有三种支持地理定位的服务:Route53、CloudFront 和 WAF(Web 应用程序防火墙)。没有任何服务是完全防弹的,但考虑到亚马逊网络的规模、所有的认证、政府合规性等。我倾向于相信亚马逊的地理位置会比自制设置更好。
您的问题指定了弹性 IP 地址。我不知道亚马逊服务支持您的 EIP 的地理定位阻止。相反,您将希望使用 Route53 并为该 EIP 创建一个资源记录集 (RRS) 或通常称为域名或子域名。然后将服务器放在私有子网中,或者将前端服务(CloudFront 和/或 ALB)放在同一个安全组中,以限制谁可以访问 EIP。注意:私有子网不支持 EIP,也不是 ALB 所必需的。
将地理位置配置为 Route53、CloudFront 或 WAF(更好地组合这些服务)的设置的一部分。您可以选择世界的部分地区(例如美国)来接受来自其他所有人的流量并阻止其他所有人。
如果我正在构建一个不需要自动缩放的小型设置,我会在我的服务器前使用 Route53 和 CloudFront。为了获得更高的容错性和高可用性,我会将服务器放入私有子网中,并在 CloudFront 和 Route53 后面添加一个带有 ASG(Auto Scaling Group)的负载均衡器,并将 WAF 添加到 CloudFront(或 ALB)。
通过 NACL 和安全组的 Amazon VPC 不支持任何形式的地理位置。安全组和 NACL 只是具有特定功能集的非常快速的防火墙。如果客户群受到严格控制(例如一组开发人员或业务合作伙伴),则可以使用 VPN,但对于公开访问的 Web 服务器(例如客户门户)则无法使用。有人可能认为可以使用用户名或 SSH 密钥,但这并不能控制地理位置,只是身份验证。用户仍然可以从俄罗斯访问法国的服务器。如果要求是地理位置,那么线程中的三个 Amazon 服务是基于地理位置的策略的不错选择。
53 号公路:
云前:
亚马逊WAF:
您可以使用 Cloudfront 地理封锁。阻止除美国以外的所有国家。您将无法 100% 阻止。您可以欺骗 IP 和位置,但这只是一个开始。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/georestrictions.html
AWS 中有几个可用的云原生选项可用于将用户限制在特定区域。