我試圖使用允許他們僅上傳到s3存儲桶的特定文件夾的策略來配置Amazon IAM用戶。如何在Amazon S3存儲桶中的特定目錄上僅允許PutObject權限
我可以成功上傳圖片時,政策是這樣寫的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Put*"
],
"Resource": "*"
}
]
}
我的上傳功能(在瀏覽器端的CoffeeScript JavaScript的AWS-SDK):
s3.putObject data, (err, data) =>
if err
console.log err
console.log 'Error uploading data: ', data
else
console.log 'succesfully uploaded the image!'
不過,我想將權限範圍限制爲僅允許putObject,並且僅限於特定的目錄中。我想這個政策會工作,但它拋出一個403錯誤:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my_bucket/example_directory"
}
]
}
是否有語法錯誤,在我的政策,還是我做別的事情不正確?我對編寫IAM策略還不熟悉。
更新
我做了通過讓下面的代碼在IAM模擬器的工作取得了一些進展,但是當我試圖儘管說putObject應該允許實際上傳遺憾的是它仍然拋出一個403錯誤。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject*"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"s3:PutObjectAcl*",
"s3:PutObjectVersionAcl*"
],
"Resource": "*"
}
]
}
可以添加'「校長」:「*」,'(或要限制IAM帳戶)在您的策略並重試 –
感謝您的幫助,當我這樣做時,我收到了一個錯誤 – satyrsynth