我正在使用带有负载均衡和ec2实例的Cloudfront。
在AWS中,我的负载均衡器接受来自所有http连接的流量。可以将其限制为仅接受来自我的Cloudfront发行版的http连接?我怎么能这样做?
感谢。
答案 0 :(得分:1)
AFAIK,你不能在第3层这样做,因为ELB允许从任何地方(0.0.0.0/0)进行访问。
如果您正在运行Apache并且可以找到cloudfront使用/设置的特定标头,那么您可以使用mod_headers在第7层执行此操作。
根据http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html,cloudfront会将标头Via
设置为 1.1 alphanumeric-string.cloudfront.net ,因此您可以通过以下操作在虚拟主机中将其匹配:
SetEnvIf Via "^1\.1\ [a-z0-9]+\.cloudfront\.net$ VIA_CLOUDFRONT
<LocationMatch /origin/>
Options -Indexes
Order deny,allow
Deny from all
# allow from cloudfront only
Allow from env=VIA_CLOUDFRONT
</LocationMatch>
答案 1 :(得分:1)
现在有一个解决方案。现在有一个lambda侦听来自Amazon的IP更新,并将使用Cloudfront IP更新您的安全组。