2015-06-01 43 views
3

我正在使用'standard-prefix-{variable}'的程序中創建S3存儲桶。在嘗試創建IAM策略時,用戶可以更新,創建和刪除帳戶中的存儲桶,但前提是存儲桶名稱包含「標準前綴」。 IE瀏覽器,我不想允許修改帳戶中的其他存儲桶。考慮到特定的存儲桶名稱,我發現許多方法限制對存儲桶中資源的訪問,但在存儲桶名稱更改時無法限制訪問。AWS IAM策略中的變量資源名稱

喜歡的東西(這似乎並不奏效):從AWS Docs

"Resource": "arn:aws:s3:::standard-prefix-*" 

例子:

動態域名基礎上的用戶名是我找到的最接近。但我需要一個通配符桶名稱的可變部分:在指定桶名稱

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": "sqs:*", 
    "Resource": "arn:aws:sqs:us-west-2:*:${aws:username}-queue" 
    }] 
} 

項目有:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": ["s3:ListBucket"], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket"], 
     "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}} 
    }, 
    { 
     "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"] 
    } 
    ] 
} 

回答

1

這是結束了工作的政策。在創建存儲桶時,他們會得到一個名稱,例如standard_prefix-20150101,standard_prefix-20150515等。具有此IAM策略的用戶可以在這些存儲桶上執行任何操作,但不能修改該帳戶中的其他存儲桶。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "One", 
      "Effect": "Allow", 
      "Action": [ 
       "*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::standard_prefix-*" 
      ] 
     }, 
       { 
      "Sid": "Two", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:List*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::*" 
      ] 
     } 
    ] 
} 
+0

我不知道爲什麼我在問題中的'類似...'不起作用,因爲答案基本相同。 – voidnologo