簡體   English   中英

如何使用s3存儲桶URL安全訪問應用程序中的文件

[英]How to securely access a file in the application using s3 bucket URL

在我的應用程序中,我們必須使用直接s3存儲桶url在圖標單擊時在新選項卡中打開一些pdf文件,如下所示:

http://MyBucket.s3.amazonaws.com/Certificates/1.pdf?AWSAccessKeyId=XXXXXXXXXXXXX&Expires=1522947975&Signature=XXXXXXXXXXXXXXXXX

我覺得這有些不安全,因為用戶可以看到存儲桶名稱, AWSAccessKeyIdExpirationSignature 這仍然被認為是安全的嗎? 還是有更好的方法來解決這個問題?

允許用戶看到這些參數不是問題,因為;

  1. AWSAccessKeyId可以是公共的(不要與SecretAccessKey混淆)
  2. 到期並使用您的SecretAccessKey簽名,因此沒人能操縱它(aws會針對您的SecretKey對其進行驗證)
  3. 由於您沒有公共對象,而且存儲桶本身也不是公共的,因此知道用戶存儲桶名稱的用戶可以使用它-您將始終需要有效的簽名來訪問這些對象。

但是我有兩個建議給你; 1.使用您自己的域,因此看不到存儲桶(如果使用CloudFornt,則可以使用AWS提供的免費SSL),2.使用HTTPS而不是純HTTP。

並且,如果出於任何原因您絕對不希望用戶看到AWS參數,那么我建議您通過自己的API代理對S3的訪問。 (盡管我認為這是不必要的)

我看到您使用http訪問(沒有SSL)。 您可以使用S3對多個域進行虛擬托管。

https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

並根據您的域創建簽名的URL,您一切順利。

如果使用SSL,則可以使用Cloudfront

並將Cloudfront原點配置為指向您的S3存儲桶。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM