我想允許訪問具有特定檔案擴展名的檔案夾。我創建了這個政策:
{
"Version": "2012-10-17",
"Id": "Policy1464968545158",
"Statement": [
{
"Sid": "allow-policy-1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123123:user/myuser-s3-uploader"
},
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/only-allowed-folder/*/*.jpg",
"arn:aws:s3:::my-bucket/only-allowed-folder/*/*.jpeg",
"arn:aws:s3:::my-bucket/only-allowed-folder/*/*.png"
]
},
{
"Sid": "allow-policy-2",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
有了這個政策,我總是被拒絕訪問。但是,如果我洗掉第二個allow-policy-2,它會起作用。
我也替換"Principal" : "*"為"arn:aws:iam::123123:user/myuser-s3-uploader"但得到相同的行為。
這是因為Deny優先Allow嗎?有沒有辦法做到這一點?
僅供參考,我正在使用 AWS SDK 生成具有相同用戶的預簽名 URL,然后我的前端使用該預簽名 URL 來上傳/PUT 檔案。我找不到通過預簽名 URL 處理此問題的方法。
uj5u.com熱心網友回復:
洗掉拒絕策略(您命名為“allow-policy-2”)。默認情況下,沒有授予任何物件訪問權限,因此我看不到添加拒絕策略的意義,而且它看起來覆寫了您在陳述句中首先創建的允許策略(“allow-policy-1”)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/497634.html
上一篇:AWSS3強制創建檔案夾
下一篇:awscliput-bucket-encryption命令因BucketKeyEnabled引數的驗證錯誤而失敗
