如何限制仅从自定义原始服务器访问 cloudfront?

如何限制仅从自定义原始服务器访问 cloudfront?

如果我理解得没错,为了创建自定义原点分布,我需要在我的自定义原点服务器上公开这些文件。

就我而言,这会将这些文件放入 apache 服务器的公共目录中。我的问题是,是否可以将对该 apache 服务器的访问限制为仅限 cloudfront?

我知道如何做才能只允许一个 IP,但是,如何使用 cf 来做到这一点?

提前致谢!

答案1

您可以限制对已发布的Amazon CloudFront 公有 IP 范围;但请注意亚马逊的相应免责声明:

CloudFront IP 地址经常更改,我们无法保证提前通知更改。我们将尽最大努力提供当前地址列表。客户不应将这些地址用于关键任务应用程序并且绝不能将其硬编码到 DNS 名称中。[重点是我的]

因此,您应该监视此论坛/帖子,以尽早注意相应的变化(当然,如果这个约束首先对于您的用例来说是可以接受的)。

答案2

我不是 AWS 专家,刚刚开始使用 AWS CF,但到目前为止我发现了两种方法可以做到这一点(可能还有更多):

  1. 在您的 CF 分发中,您可以添加自定义标头,以便从 CF 到您的自定义源的所有请求都将包含该标头。然后在您的自定义源上只需检查此标头是否存在。但是,使用自定义标头并不是真正必要的 - 请参阅下面的 #2。
  2. 所有来自 CF Distribution 的请求都应包含标头:X-Amz-Cf-IdX-Amz-Cf-Pop。这些标头的存在将告诉您该请求来自 CF。

答案3

在原始 Web 服务器上,您可以创建重定向规则,以便对原始 URL 的所有请求都重定向到网站 URL(指向 CloudFront)。

相关内容