Amazon-Web-Services

AWS 上傳儲存桶策略:限製文件類型

  • June 26, 2018

I4m 將 PHP 對像上傳到 S3。我想只接受 PDF 文件並拒絕具有其他副檔名的文件。

所以我寫了這個桶策略:

{
"Version": "2012-10-17",
"Id": "Policy1464968545158",
"Statement": [
   {
       "Sid": "Stmt1464968483619",
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:PutObject",
       "Resource": "arn:aws:s3:::MYBUCKET/*.pdf"
   }
]
}

但它不起作用,我的儲存桶仍然接受具有任何副檔名的文件。

我做錯什麼了 ?

謝謝

您的策略允許 putObject 在匹配的文件上*.pdf。但是,它對 putObject 沒有任何限制。如果您通過其他方式獲得該權限,您仍然可以上傳其他文件。例如,AWS 託管策略arn:aws:iam::aws:policy/AmazonS3FullAccess目前如下所示:

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Effect": "Allow",
           "Action": "s3:*",
           "Resource": "*"
       }
   ]
}

如果您將此附加到您的 AWS IAM 使用者或 IAM 角色,您將能夠將所有對象放入具有該策略的儲存桶中。

該元素NotResource可能在此處有用,請參見此處。工作策略可能如下所示:

{
 "Version": "2012-10-17",
 "Statement": {
   "Effect": "Deny",
   "Action": "s3:putObject",
   "NotResource": [
     "arn:aws:s3:::MYBUCKET/*.pdf"
   ]
 }
}

這將拒絕任何人的 putObjects,如果那些不 macht *.pdf

引用自:https://serverfault.com/questions/918235