[英]How to allow access to specific S3 bucket from specific VPC on different region
我想允许s3:GetObject
从其他区域的VPC访问S3存储桶。
如果S3存储桶和VPC位于同一区域,则我知道我们可以使用VPC端点。 但是,当我们希望允许来自不同地区的访问时,我们有哪些选择?
选项1:
为该区域中所有可用区域的所有子网创建NAT网关,并在S3存储桶策略中允许从NAT网关的Elastic IP访问。
但是这样一来,您需要许多NAT网关(例如us-east-1区域为6)
还有其他选择吗?
您将需要在两个VPC之间建立VPN连接:
第一个VPC与S3和启用VPC端点位于同一区域。
第二个VPC在另一个区域中。
请注意,您不能利用VPC对等连接,因为它不是同一区域。
简单的答案是,您不能限制从另一个区域中的VPC访问一个区域中的S3存储桶。 您可以创建使用IP地址控制访问的S3策略。 您的NAT网关将具有一个公共IP地址,您的实例可以具有一个公共地址,等等。
当流量离开VPC时,它将使用公共IP地址空间。 当S3存储桶收到这些请求时,它将不知道它来自哪个VPC。 这是创建VPC端点和PrivateLink的原因之一。
以下是使用IP地址控制权限的示例S3策略。 使用您的VPC中的真实公共地址进行修改。
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": "*",
"Action":["s3:GetObject"] ,
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition" : {
"IpAddress" : {
"aws:SourceIp": "192.168.143.0/24"
},
"NotIpAddress" : {
"aws:SourceIp": "192.168.143.188/32"
}
}
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.