0

我是Amazon S3的新手。我需要一些S3存儲解決方案的幫助。這是我的問題。如何僅允許特定用戶訪問Amazon S3上的內容

我在Amazon S3中創建了一個存儲桶。現在,每個人都可以訪問我的存儲區網址(例如https://BUCKET_NAME.s3.amazonaws.com),他們可以查看存儲區中的所有文件。我只想讓我的移動應用用戶能夠查看/查看/下載存儲桶中的文件。但是,如果我阻止文件/將存儲區中的文件設置爲私人文件,我的移動應用用戶將無法查看他/她的文件。

所以問題:

  • 有沒有一種辦法,以確保到AWS S3訪問?或者我如何只允許特定用戶訪問Amazon S3上的內容?是服務器端身份驗證還是其他?

如果你有任何想法如何做,你可以給我一個例子嗎?謝謝:)

注意:我使用的JavaScript解析SDK,AWS S3,EC2 AWS,彈性青苗和離子2角2

如果你認爲我已經錯過任何細節,請讓我知道所以我可以添加它:)

回答

2

有多種選項可用於特定用戶的安全訪問。

  • 如果您正在使用AWS Cognito,您可以使用IAM策略使用AWS的JavaScript SDK直接訪問權授予特定的桶和對象S3與AWS Cognito(或聯合通過Cognito)認證後,暫時使用您收到的憑證從Angular應用程序。
  • 您也可以使用AWS CloudFront Signed UrlsSigned Cookies來保護對S3對象的訪問。要訪問內容,請使用後端端點(對於通過身份驗證的用戶),您可以生成一個簽名URL或簽名Cookie,Angular應用程序將使用該Cookie來通過CloudFront訪問S3。
  • 另一個選擇是從服務器端訪問S3並返回文件(與其他方法相比,這會爲您的服務器增加大規模的開銷,因此不建議使用,除非您有特定的方案來動態修改文件或內容之前檢索)
  • 您還可以使用AWS API網關作爲S3的代理服務文件。這裏適用10MB文件大小限制,因爲API網關最多可以將文件傳輸至10MB。
+0

非常感謝你的答案。我真的很感激:)順便說一下,您提到的'AWS CloudFront Signed Url'無法聯繫到。 – Antoni

+0

謝謝。修復了鏈接。 – Ashan

+0

嗨阿山,如果你不介意,你能幫我回答這個問題嗎?謝謝:) https://stackoverflow.com/questions/46484880/how-to-upload-image-to-s3-bucket – Antoni

1

您可以通過S3存儲桶訪問特定的IAM角色。因此,創建一個新用戶並將IAM策略附加到該用戶。使用該角色配置您的Lambda。如果你想要,你可以根據每個用戶類型創建多個角色(例如: - 對於移動用戶唯一的角色,對於桌面用戶的另一角色等)

請閱讀更多關於如何限制Amazon S3 Bucket訪問特定IAM角色here

+0

嗨Vijayanath,謝謝你的回答:)有沒有可用於示例代碼離子2與Angular 2?謝謝 – Antoni

相關問題