- 我有一个S3存储桶,用作静态网站。
- 我有一个Cloudfront分发,指向存储桶的HTTP端点。
- 我想将对我的S3存储桶的访问限制为仅限Cloudfront。
我猜我可以通过添加Principal:arn:iam:cloudfront ....来实现此目的。
但这允许直接访问S3,而不是HTTP端点访问。
当我配置Cloudfront直接服务于S3存储桶时,它不显示子目录index.htmls。为了访问mysite.com/blog/,我必须键入mysite.com/blog/index.html
因此,我必须使用S3的HTTP端点,就像站点不在S3上而在Apache服务器上一样。
现在我无法通过arn:iam:cloudfront限制访问。因为Cloudfront变成了另一个网络爬虫,S3变成了另一个Web服务器。
他们建议添加自定义标头,以便服务器理解它是cloudfront。但S3不支持自定义标头。
将用户代理限制为CloudFront和Principal到AWS:*可以做一些简要工作,但它不能阻止UserAgent欺骗。
我该如何解决这个问题?