2017-07-06 87 views
1

我們有一個託管在AWS S3上的網站,我們打算僅由有限的一組用戶訪問。現在,我們列出了允許的IP,如Restrict access to website hosted on S3中所述。限制對S3託管網站的訪問,而無需白名單ips

但是,必須有權訪問此網站的某些人沒有靜態IPS,這迫使我們不斷更新AWS策略上的白名單的IPS。

我很確定像客戶端證書應該工作,但我不知道如何在AIM政策方面實施。任何其他(更簡單)的替代方案不依賴於IP是靜態的?我猜想在這種情況下向AWS添加ssh密鑰不會有什麼好處,對吧?

+0

您是否計劃擁有基於用戶的訪問控制? – Ashan

回答

1

另一種方法是設置基於用戶的訪問控制。您可以通過使用以下AWS服務來完成此操作。

  • AWS Cognito UserPools
  • AWS API網關
  • AWS S3

的步驟如下

  1. 創建AWS Cognito UserPool
  2. 與認證IAM創建的用戶有允許API網關執行的角色。
  3. Cognito Login SDK
  4. 安裝API網關創建S3公衆登錄頁面,並通過對S3 AWS服務,並添加Cognito了userpool授權創建requred IAM角色(檢查this例子)

設置完成後,用戶應該能夠通過API網關登錄和訪問S3。

+0

我不確定我瞭解這會如​​何阻止某人訪問S3中託管的頁面。除非我更改我的代碼以強制重定向(如果我沒有登錄),否則頁面仍然不可訪問?我從來沒有使用Cognito服務,但我的理解是,它會像我在自己的網站上實施身份驗證一樣。我錯過了什麼嗎? – redwulf

+0

是的,它類似於實現認證機制。與您自己的自定義實現和使用Userpools和IAM授權的明顯區別在於,重要的數量是配置而非編碼。 – Ashan

+0

因此,如果我理解正確,Cognito會阻止對特定S3存儲桶的任何訪問,除非用戶先得到認證,對吧?謝謝,如果我找不到其他解決方案,我可能會放棄它。儘管如此,我仍然希望避免任何類型的用戶/密碼身份驗證...... – redwulf