跳至內容

如何允許使用者只將特定檔案類型上傳至我的 Amazon S3 儲存貯體?

1 分的閱讀內容
0

我想要在我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體上只儲存特定的檔案類型。我想要限制上傳,讓我的儲存貯體只接受這些檔案類型。

解決方法

您可以使用結合允許和拒絕陳述式的儲存貯體政策,將檔案上傳限制為特定檔案類型。此方法會在物件索引鍵上使用模式比對,以強制執行副檔名要求。

**注意:**此方法會根據物件索引鍵中的副檔名進行篩選,而不是根據實際檔案內容或 多用途網際網路郵件延伸標準 (MIME) 類型。使用者若重新命名檔案即可繞過此限制。如需根據內容進行驗證,請考慮在您的應用程式層進行額外檢查。

在您的儲存貯體政策中使用以下兩種陳述式:

  • Allow 陳述式只允許符合已核准檔案類型的物件執行 s3:PutObject 動作。

  • Deny 陳述式會拒絕不符合已核准檔案類型的物件執行 s3:PutObject 動作。

    **注意:**明確拒絕陳述式可防止上傳未經授權檔案類型,即使是具有廣泛 S3 權限 (例如管理存取權限) 的使用者也是如此。

例如,此儲存貯體政策僅允許 exampleuser 對副檔名為 .jpg.png.gif 的物件執行 PutObject 動作:

{
  "Version": "2012-10-17",
  "Id": "Policy1464968545158",
  "Statement": [
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:user/exampleuser"
      },
      "Action": "s3:PutObject",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    },
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "NotResource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.png",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.gif"
      ]
    }
  ]
}

**注意:**將 DOC-EXAMPLE-BUCKET 替換為您的儲存貯體名稱。

在第一個 Principal 值,請列出您要授予上傳權限之使用者的 Amazon Resource Name (ARN)。

**注意:**當您在儲存貯體政策中指定資源時,儲存貯體政策評估會區分大小寫。拒絕對 NotResource arn:aws:s3:::DOC-EXAMPLE-BUCKET/*.jpg allows you to upload my_image.jpg 執行 s3:PutObject 動作的儲存貯體政策,可允許您上傳 my_image.jpg。不過,如果您嘗試上傳 my_image.JPG,Amazon S3 會傳回 Access Denied 錯誤。若要支援兩種大小寫,請在您的政策中包含 *.jpg 和 *.JPG 副檔名。

此範例儲存貯體政策包含明確拒絕陳述式。如果使用者不符合條件,則即使是設定儲存貯體政策的使用者,也可能失去對儲存貯體的存取權。因此,請在儲存前仔細檢閱儲存貯體政策。如果您不小心鎖定了儲存貯體,請參閱如果我不小心拒絕所有人的存取權限,該如何重新取得 Amazon S3 儲存貯體的存取權?

若要根據檔案類型以外的條件保護 Amazon S3 儲存貯體,請使用 Amazon GuardDuty Malware Protection for S3Amazon Macie。Amazon GuardDuty Malware Protection 掃描引擎會檢查所有上傳的檔案是否含有惡意軟體。Amazon Macie 會針對您已上傳至 S3 的支援檔案格式報告敏感資料的調查結果。它會使用內建條件,或您的自訂資料識別碼

AWS 官方已更新 6 個月前