2017-09-21 31 views
2

我有一個使用火力認證和數據庫,並Angular4爲前端的Web應用程序。我通過我的網絡應用上傳圖像到AWS S3,它工作正常。上傳到S3不會暴露你的accessKeyId

問題:

我目前使用我的angular4代碼裏面我accessKeyIdsecretAccessKey將文件直接上傳到AWS S3(使用AWS SDK的JavaScript)。編譯角度時,它仍然只是由客戶端瀏覽器在前端使用的JavaScript。我不喜歡這個,它對我造成了安全風險。

如何在不暴露我的密鑰的情況下直接從Angular4上傳圖像到S3?

+0

在yml文件上寫入憑證,通過後端加載。不要通過前端上傳,在後端執行。上傳圖像並將其發佈到後端,從那裏你做上傳。 – leo277

+0

聽起來不錯thx!我正在考慮使用aws lambda ...還有其他建議嗎? – Janpan

回答

6

創建一個小的後端服務/ API,可以生成AWS S3 pre-signed URLs。然後,您的Angular應用程序可以使用該預先簽名的URL將圖像上傳到S3。後端服務將是唯一需要您的AWS訪問權限的服務。

AWS Lambda + API網關對於這類後端服務來說是完美的。

+0

謝謝馬克。是的,我現在正在忙着做這件事。認爲這將是最好的解決方案,謝謝! – Janpan