繁体   English   中英

是否按AWS区域限制对S3存储桶的访问?

[英]Restricting access to an S3 bucket by AWS region?

我们有许多需要在互联网上搜寻的MySQL数据库和图像文件(xx TB),这些数据库和图像文件需要分发给我们的用户。 为避免潜在的数据传输账单混乱,我们仅允许从同一区域内访问我们的数据下载。

我们如何在S3存储桶策略中强制执行此操作? 我们想到的是这样的:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Same region access only",
         "Effect": "Allow",
         "Action": [
            "s3:GetBucketLocation",
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::ourbucket"
         ],
         "Condition": {
            "IpAddress": {
                "aws:SourceIp": ["18.208.0.0/13", "52.95.245.0/24", "54.196.0.0/15", ... ]
            }
        }
      },
   ]
}

IP范围来自此处: https//ip-ranges.amazonaws.com/ip-ranges.json

但是,对于任何特定的AWS区域而言,那里的IP范围太多 ,很难将它们添加到我们的存储桶策略中,这很容易受到我们将来必须保持的更改的影响。

有没有更好的方法可以实现这一目标,例如:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Permissions to foreign account 1",
         "Effect": "Allow",
         "Action": [
            "s3:GetBucketLocation",
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::ourbucket"
         ],
         "Condition": {
            "Source": {
                "aws:Region": ["us-east-1", "eu-central-1", ... ]
            }
        }
      },
   ]
}

这将是非常好的。 可能? 还是IP范围是执行此操作的唯一方法?

尽管S3存储桶是特定于区域的,但这仅会影响访问它们时的延迟。 默认情况下,从公共互联网访问时,不管原始区域如何,传出数据传输的价格都相同。 S3存储桶之间的转移也是免费的。

如果您启用了CRR之类的功能,则需要支付单独的复制费用,但是再次向公共Internet传输则无需另外付费。

当您将数据从S3移至其他地区的任何其他Amazon服务时,跨区域传输将收费。

所有相关数据和详细信息都可以在这里找到。

如果您觉得上一页中的定价详细信息不够清楚,则应向Amazon提出支持案例,他们应该能够为您提供更详细的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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