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