2012-07-21 151 views
6

我在IAM帳戶的用戶名爲「testuser的」誰擁有管理員權限,就像這樣:爲什麼我的AWS S3桶策略不會覆蓋我的IAM策略?

{ 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "*", 
     "Resource": "*" 
    } 
    ] 
} 

然後,我有我的S3存儲桶的策略,拒絕該用戶的訪問,就像這樣:

{ 
    "Statement": [ 
    { 
    "Effect": "Deny", 
    "Principal": { 
    "AWS": "my-account-id:user/testuser" 
    }, 
    "Action": "s3:*", 
    "Resource": "arn:aws:s3:::my-bucket-name/*" 
    } 
    ] 
} 

那麼,S3存儲桶策略中的顯式拒絕應該覆蓋來自IAM策略的允許權限嗎?但是,當我以testuser身份登錄時,我仍然可以訪問該存儲桶中的所有內容 - 我甚至可以更改或刪除該存儲桶(以及其他每個存儲桶)的存儲桶策略。爲什麼我不明確否認做任何事情?

+0

通過獲得的一切你的意思剛剛上市的桶含量或者你也可以得到/放文件? – 2012-07-21 23:09:17

+0

我的意思是任何事情 - 查看文件,添加文件,查看存儲桶策略,編輯存儲桶策略等。 – Dasmowenator 2012-07-22 04:02:00

回答

6

嘗試使用完整的ARN形式在桶策略的用戶ID:

"Principal": { 
    "AWS":["arn:aws:iam::accountid:user/testuser"] 
} 
+0

感謝您的回覆 - 不幸的是這沒有任何影響 – Dasmowenator 2012-07-22 04:09:54

+7

您指定的策略應該防止'testuser'獲得/放入/刪除對象,但不會阻止他們列出存儲桶內容。爲此你必須使用''Resource':[「arn:aws:s3 ::: my-bucket-name/*」,「arn:aws:s3 ::: my-bucket-name」]'in拒絕規則(因爲'ListBucket'這樣的動作由桶ARN而不是桶/ *控制)。 – 2012-07-22 09:16:26

+0

謝謝 - 修復了這個問題 – Dasmowenator 2012-07-22 20:08:15