我在使用簽名URL的CloudFront(而不是s3)上使用原始服務器。我需要一種方法來確保對我的服務器的請求僅來自CloudFront。也就是說,阻止某人繞過CloudFront並直接在我的服務器上請求資源。如何才能做到這一點?只允許CloudFront從原始服務器讀取?
回答
根據文檔,目前還沒有支持。我能想到的唯一的事情就是可以限制更多的訪問權限,儘管並非完全只允許Amazon IP地址訪問您的Web服務器。他們應該能夠提供給他們(IP地址範圍),因爲他們已經提供給我們。
這是什麼文件說:
使用HTTP服務器的專用內容
您可以使用簽名的網址,任何CloudFront的分佈,無論起源是一個Amazon S3存儲或HTTP服務器。但是,爲了讓CloudFront訪問HTTP服務器上的對象,對象必須保持可公開訪問。因爲這些對象是可公開訪問的,所以擁有HTTP服務器上對象的URL的任何人都可以在沒有CloudFront簽名URL提供的保護的情況下訪問該對象。如果您使用簽名的URL並且您的源是HTTP服務器,請不要將HTTP服務器上的對象的URL提供給您的客戶或組織外的其他人。
這就是我從AWS論壇獲得的。這很不幸,因爲它們確實提供了一種保護S3服務器的機制,但不允許您爲非S3服務器啓用它。 –
我剛剛爲自己做過這件事,並認爲我會在這裏留下答案,我開始搜索。
下面是你需要把你的.htaccess中的幾行(假設你已經打開了重寫引擎):
RewriteCond %{HTTP_HOST} ^www-origin\.example\.com [NC]
RewriteCond %{HTTP_USER_AGENT} !^Amazon\ CloudFront$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
這都將訪問者重定向到您的Cloudfront分佈 - https://example.com在此,例如 - 只能讓www-origin.example.com適用於Amazon CloudFront。如果您的網站代碼也位於不同的URL(例如,開發或登臺服務器)上,則不會妨礙您的工作。
注意:用戶代理是可猜測和可欺騙的;更安全的方法是在Cloudfront中設置自定義HTTP標頭,並在.htaccess中檢查其值。
- 1. 允許服務器來讀取兩岸
- 2. Hangfire只允許一個服務器
- 3. 做fsockopen只允許某些服務器?
- 4. Cloudfront無法將某些路徑轉發到原始服務器
- 5. Amazon Cloudfront - 將CDN域名傳遞給原始服務器
- 6. 用於動態圖像的Amazon CloudFront原始服務器
- 7. 亞馬遜Cloudfront設置自己的原始服務器
- 8. 只允許特定用戶從服務器上下載文件
- 9. 允許在Web服務器
- 10. PHP - 獲取原始服務器響應?
- 11. XMLHttpRequest原始空值不允許訪問控制允許源文件:///到文件:///(無服務器)
- 12. Elasticsearch訪問策略 - 允許從客戶端讀取和從Node.js服務器讀取/寫入
- 13. 允許從外部服務器獲取POST數據YII2
- 14. Rails - 只允許訪問控制器動作到服務器端
- 15. 允許在SQL事務中讀取嗎?
- 16. 只允許用戶只讀訪問woocommerce
- 17. 具有自定義HTTPS來源的AWS CloudFront只允許來自CF的原始請求?
- 18. 主幹 - 從服務器獲取原始響應
- 19. Wamp服務器只允許外部ips的外部連接
- 20. mvc web api只允許來自同一服務器的請求
- 21. 只允許我的服務器執行PHP腳本
- 22. 只允許某些服務器/網站連接到腳本
- 23. 如何在服務器端配置WCF只允許Kerberos的?
- 24. 如何每天只允許服務器端提交一次
- 25. 允許elasticsearch集羣只能通過其他服務器
- 26. 服務器確實允許GET方法,但不允許POST
- 27. 如何只允許從WCF數據服務ServiceOperation訪問
- 28. 從服務器B讀取/獲取服務器A的Cookie
- 29. 不允許從節點讀取帖子
- 30. 允許用戶取消前臺服務
是否有可能知道您使用自定義來源製作符號網址時所採取的配置步驟,以及雲前臺對s3的選擇。我設法用s3做到這一點,現在我想用自定義來源配置成立類似的希望,你可以提供一些關於它的信息 –