有没有办法将静态 IP 绑定到我的 cloudfront 发行版?我想知道 VPC 是否可以实现这一点。我需要静态 IP 只是为了消除每次 AWS Cloudfront IP 更改时允许防火墙进入的问题。
答案1
“您的”Cloudfront 发行版不是位于某个地方的单一事物。它是全球分布式网络上的虚拟实体,访问它的地方越多,您可能看到的潜在 IP 地址就越多,因为请求会使用 DNS 路由到距离请求者最近的端点。如果我访问您的发行版,如果我们在不同的地方,这可能会涉及与您访问时不同的 IP 地址。
所以,不,这是不可能的。
不过,可能的地址列表已经公布……
https://forums.aws.amazon.com/ann.jspa?annID=2051
但是,如果您指的是防火墙规则允许 Cloudfront 出于安全原因访问您的原始服务器,那么您的假设又有缺陷。没有理由说多个发行版不能使用一组通用的 IP 地址……而且,它们确实这样做了……因此可以想象,如果您试图使用这些限制来实现内容的某种安全性,那么恶意用户可以配置自己的引用您的来源的发行版并通过 Cloudfront 访问它,如果他们知道如何访问您的原始服务器。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
Amazon CloudFront 开发人员指南中有一个部分——使用自定义标头限制对自定义来源内容的访问——描述了一种可能的解决方法:使用自定义源标头,其秘密值只有 CloudFront 和您的源服务器知道。CloudFront 将这些注入到请求中,对浏览器不可见。如果请求中不存在此标头及其秘密值,则请求未通过 CloudFront 分发发送给您,并且可能被您的源服务器拒绝或重定向。这对于确保正确的解析语义也很有用,因为X-Forwarded-For
通过 CloudFront 发出的请求的值可能需要不同的解释,特别是在负载均衡器后面的源服务器上。
答案2
是的,这是可能的,但每月需要花费 600 美元:
您需要设置自定义域和自定义 SSL 证书来执行此操作: https://aws.amazon.com/cloudfront/custom-ssl-domains