2012-07-12 189 views
19

Amazon S3的文件訪問策略有沒有什麼辦法來限制Amazon S3存儲文件的基礎上,客戶端IP地址的訪問?基於IP地址

我存儲在那裏的文件時,這應該是隻能由特定的IP地址進行訪問。這個怎麼做?

回答

27

是有,雖然我還沒有使用這個自己。

S3支持通過在他們的桶和對象使用「訪問策略語言」精細的控制。有特定的白名單和黑名單IP語句可用。您將不得不編寫APL語句並上傳它們。

http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage.html

這裏的2個條件部分例子:

白名單

"Condition" : { 
     "IpAddress" : { 
      "aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"] 
     } 
} 

黑名單

"Condition" : { 
     "NotIpAddress" : { 
      "aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"] 
     } 
} 
+0

我沒有特定的IP的文檔政策找到。你能提供JSON的例子嗎? – 2012-07-12 18:03:08

+0

我用IP條件的例子修改了我的答案。 – gview 2012-07-12 18:09:50

+0

它不工作...我試過,資源能夠反正訪問:{ \t 「版本」: 「2008-10-17」, \t 「ID」: 「S3PolicyId1」, \t 「聲明」: \t \t { \t \t \t「 SID「: 」IPAllow「, \t \t \t 」效果「: 」允許「, \t \t \t 」校長「:{ \t \t \t \t 」AWS「: 」*「 \t \t \t}, \t \t \t 「行動」: 「S3:*」, \t \t \t 「資源」: 「阿爾恩:AWS:S3 ::: byBucketName」, \t \t \t 「條件」:{ \t \t \t \t 「NotIpAddress」:{ \t \t \t \t \t 「AWS:SOURCEIP」: 「0.0.0.0/0」 \t \t \t \t}, \t \t \t \t 「Ip地址」:{ \t \t \t \t \t 「AWS:SOURCEIP」: 「192.168.143.188/32」 \t \t \t \t} \t \t \t} \t \t} \t] } – 2012-07-12 19:15:39

12

亞馬遜介紹這在他們的S3文檔 「鬥策略示例」 下,在Restricting Access to Specific IP Addresses

此聲明中的條件標識了允許的IP地址的54.240.143。*範圍,但有一個例外:54.240.143.188。

{ 
    "Version": "2012-10-17", 
    "Id": "S3PolicyId1", 
    "Statement": [ 
    { 
     "Sid": "IPAllow", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:*", 
     "Resource": "arn:aws:s3:::examplebucket/*", 
     "Condition": { 
     "IpAddress": {"aws:SourceIp": ["54.240.143.0/24", "1.2.3.4/32" ]}, 
     "NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"} 
     } 
    } 
    ] 
} 

你可以添加類似的東西在AWS S3控制檯。選擇您的存儲桶,單擊屬性選項卡,然後權限。點擊「添加桶策略」並將其粘貼到彈出窗口中。

我修改亞馬遜的例子來說明如何IP多範圍可以包括通過提供一個JSON數組,而不是字符串政策英寸「1.2.3.4/32」的「aws:SourceIp」條目表示單個IP地址1.2.3.4也被授予訪問權限。