[英]How to restrict S3 bucket access by network
我想允許對我的S3存儲桶進行公共讀取訪問,但2個文件夾除外。
在2個文件夾中,我只想允許來自特定網絡的訪問者訪問。
有沒有辦法定義這個?
有幾種方法可以授予對存儲在Amazon S3中的數據的訪問權限:
您的用例將符合“ 存儲桶策略” 。
您可以使用以下策略授予對整個Amazon S3存儲桶的訪問權限 :
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}
您可以根據以下IP地址范圍來授予訪問權限 :
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"},
"NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}
}
}
]
}
您希望“允許對我的S3存儲桶進行公共讀取訪問,但2個文件夾除外”的情況要困難一些,因為這是一個“除”之外的所有用例。
選項1:特定的文件夾
例如:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource":["arn:aws:s3:::examplebucket/folder1/*",
"arn:aws:s3:::examplebucket/folder2/*"]
},
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": ["arn:aws:s3:::examplebucket/folder3/*",
"arn:aws:s3:::examplebucket/folder4/*"],
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
]
}
但是,這要求您專門列出每個文件夾。
選項2:除...以外的所有內容
在此規則中,您授予公共訪問權限,但是如果某些文件夾不在正確的IP范圍內,則拒絕它們:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource":["arn:aws:s3:::examplebucket/*"]
},
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": ["arn:aws:s3:::examplebucket/folder3/*",
"arn:aws:s3:::examplebucket/folder4/*"],
"Condition": {
"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
]
}
注意使用的Deny
與NotIpAddress
,它說,訪問被拒絕,如果請求不是從定義的IP地址范圍的到來。
但是, DENY
會覆蓋ALLOW
,因此這也意味着,除非您來自該IP地址范圍,否則您將無法訪問受限存儲區-即使您的IAM用戶已被明確授予ALLOW
權限也是如此。 例如,如果您是具有S3中所有權限的管理員,但如果您來自給定IP范圍,則仍將拒絕訪問受限制的文件夾。 因此,它可能對您來說過於嚴格,因為它會影響所有使用情況,即使通過控制台/ API訪問也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.