如果我在AWS EC2上使用弹性IP托管网站,并且我希望仅限美国区域用户访问此网站,有没有简单的方法可以做到这一点?网站由Apache提供支持。
.htaccess可能是一个选项,但没有办法将我的网站专门锁定到美国地区的用户。
答案 0 :(得分:4)
我将限制我对亚马逊服务的回答。
能够阻止世界各地的访问是当今的一个重要问题。由于所有关于内容位于/存储位置的政府法规,在某些情况下控制访问可能是法律要求。
亚马逊有三项支持地理定位的服务: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服务是基于地理位置的策略的良好选择。
Route53:
CloudFront的:
Restricting the Geographic Distribution of Your Content
Amason WAF:
答案 1 :(得分:2)
您可以使用Cloudfront地理锁定。除了美国以外的所有人你不会100%能够阻止。你可以欺骗IP和位置,但这是一个开始。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/georestrictions.html
答案 2 :(得分:1)
AWS中提供了多个Cloud Native选项,可用于将用户限制在特定区域。
答案 3 :(得分:-2)
可以使用包含EC2安全组和VPN管理访问权限的VPC来完成。
您的VPC的安全组 安全组充当您的实例的虚拟防火墙,以控制入站和出站流量。在VPC中启动实例时,最多可以为该实例分配五个安全组。安全组在实例级别而非子网级别执行操作。因此,可以将VPC中子网中的每个实例分配给一组不同的安全组。如果在启动时未指定特定组,则会自动将实例分配给VPC的默认安全组。
“http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html