我有一個Amazon S3存儲桶,並希望在特定計算機上使其可用於腳本,而無需部署登錄憑證。所以我的計劃是隻允許從該機器的IP進行匿名訪問。我對亞馬遜雲很陌生,並且存儲區策略看起來像是要走的路。我在我的存儲桶中添加了以下策略:Amazon S3:授予來自IP的匿名訪問(通過存儲桶策略)
{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::name_of_my_bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"my_ip_1/24",
"my_ip_2/24"
]
}
}
}
]
}
但匿名訪問仍然不起作用。爲了進行測試,我授予了S3管理控制檯中「Everyone」的訪問權限。這工作正常,但顯然不是我想要做的。 ;-)任何提示我做錯了什麼,以及如何讓這個工作?
我的用例是使用EC2和S3進行的一些數據處理,所以通過IP進行訪問控制將比用戶帳戶的操作簡單得多。如果有更簡單的解決方案,我願意提供建議。
你到底打的問題。資源名稱只是一個前綴?所以假設我有桶'com.mydomain.xxx'和'com.mydomain.yyy'。是否有可能通過'arn:aws:s3 ::: com.mydomain。*'向所有桶(包括內容)授予對所有操作的訪問權限? – Achim 2013-04-22 09:50:54
通過ARN的資源規範的確切語法和含義因服務而異,參見例如。 [ARN的語法和示例](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax) - 對於S3,您可以使用前綴(或更確切地說一個[路徑](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-paths))確實是對象,但是這個存儲區必須全部指定暫時不能包含通配符,參見例如AWS團隊對[針對s3桶通配符的IAM語句?]的響應(https://forums.aws.amazon.com/message.jspa?messageID=377764#387497)。 – 2013-04-22 10:03:06