繁体   English   中英

如何允许从不同区域上的特定VPC访问特定的S3存储桶

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM