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