[英]How do I restrict access to a static s3 website to a VPN
我正在尝试访问内部静态网站。
公司中的每个人都使用VPN来访问我们的Amazon VPC,因此如果您使用VPN,我希望限制对该站点的访问。
所以我在AWS上发现了这个文档来使用VPC端点,这似乎是我正在寻找的。
所以我用下面的政策创建了一个VPC端点。
{
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Principal": "*"
}
]
}
在我的S3存储桶上,我验证了我可以从常规Web和VPN访问index.html。
然后我添加了以下存储桶策略以限制仅限VPC端点。
{
"Id": "Policy1435893687892",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1435893641285",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::123456789:user/op"
]
}
},
{
"Sid": "Access-to-specific-VPCE-only",
"Action": "s3:*",
"Effect": "Deny",
"Resource": ["arn:aws:s3:::mybucket/*"],
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-1234567"
}
},
"Principal": "*"
}
]
}
现在,常规网络获得了403,但当我落后于公司VPN时,我也获得了403。
我错过了什么吗?
@Michael - sqlbot是对的。
您正在做的是限制访问S3存储桶,您可以使用VPC端点将静态Web内容存储到来自特定AWS VPC的请求。
VPC端点在AWS服务之间建立关联,以允许来自INSIDE的请求来自VPC。
使用VPC和S3 ACL配置无法获得所需的功能,但您可以通过ACL和一些VPN配置获得它。
让我们假设连接到您公司的VPN并不意味着所有流量,包括VPN客户端和AWS S3之间的互联网流量都将通过该VPN连接进行路由,因为这是VPN配置通常的工作方式。 如果不是这种情况,请省略以下步骤:
将S3存储桶的静态路由添加到VPN服务器配置 ,因此每个客户端都尝试通过VPN访问存储桶,而不是尝试与其建立直接的Internet连接。 例如,在OpenVPN上编辑server.conf
,添加以下行:
push "route yourS3bucketPublicIP 255.255.255.255"
之后,您将看到当客户端连接到VPN时,它会在其路由表中添加一个额外的条目,对应于静态路由,告知它通过VPN到达存储桶。
。
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"},
"NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}
}
}
]
}
使用IpAddress
字段允许使用CIDR表示法的IP或IP范围,使用NotIpAddress
字段以相同的方式限制IP或IP范围(您可以省略该IP)。 在IpAddress
指定的IP(或IP范围)应该是路由公司VPN互联网流量的网关接口的公共地址(当VPN中的某个人看到时,S3看到的IP地址)试图连接到它)。
更多信息:
http://www.bucketexplorer.com/documentation/amazon-s3--access-control-list-acl-overview.html
http://aws.amazon.com/articles/5050/
https://openvpn.net/index.php/open-source/documentation/howto.html
其实,@迈克尔- sqlbot 是正确的,直到,直到5月15日,2015年你做什么是正确的。 您找到了(再次,正确)文档,允许您在VPC中设置S3存储桶(可能无法访问外部世界),就像设置EC2计算机一样。 因此,
在我的S3存储桶上,我验证了我可以从常规Web和VPN访问index.html。
是个问题。 如果您没有犯错, 则无法从常规Web访问存储桶。 之后您所做的一切都无关紧要 - 因为您没有在 VPN连接的VPC中创建S3存储桶。
你没有详细说明你在第一步中所做的事情; 最简单的可能是删除这个桶并从头开始。 需要设置路由表,哪些不容易出错。 这是一套简单的说明 - 但它并没有涵盖您所遵循的文档。
但是,任何超出此功能的链接(即2015年5月之前的任何链接)都无关紧要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.