AWS Cloudfront和ELB安全组

时间:2014-03-05 04:12:48

标签: amazon-web-services amazon-ec2 amazon-cloudfront amazon-elb

有谁知道如何将您的cloudfront发行版添加到ELB的安全组入站规则中?

我们为新网站设置了一个云端发行版设置,其中包含一组白名单的安全组规则。我无法看到如何配置安全组以允许来自cloudfront发行版的请求...

任何想法?

4 个答案:

答案 0 :(得分:6)

如果您按照Amir Mehler在上述评论中提供的链接,该博客的作者将指向Github上的official AWS Lambda function,它将使用CloudFront IP更新安全组。我用过这个,效果很好。

如果你不喜欢Lambda,you could do it manually

Note第一次尝试使用示例测试配置时,更新MD5以匹配当前ip-ranges.json文件的哈希值,否则会出错。

答案 1 :(得分:3)

当您在Cloudfront分发中说“添加来源”并单击“原始域名”框时,它会列出此帐户(包括ELB)中的所有AWS资源。你可以选择它。

但是,与ELB关联的安全组应允许公共访问(HTTP / HTTPS,0.0.0.0 / 0)。这不是更安全,因为无论如何,您希望公众通过cloudfront访问ELB。您可以通过CDN提供服务,这是为了公共访问。我一直在以这种方式配置ELB安全组。打开其他建议!

现在ELB背后的EC2安全组:在这里你不应该允许公共访问。而只允许从ELB的安全组访问(您可以通过从列表中选择ELB安全组来实现此目的,而不是键入入站IP地址。

现在,如果原点是S3,则可以稍微改变配置。在这里你不需要公开桶。而是使用Bucket策略(此处不是任何安全组)限制对存储桶的访问,仅允许IAM源访问标识。更多信息 - Serving Private Content through CloudFront - Amazon CloudFront

答案 2 :(得分:0)

这比答案更像是一个问题,但我将如何嵌入其中:

第1步:从此处获取数据:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html-> http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips

第2步:使用数据创建安全组...

问题部分: 为什么AWS API的规则数量比其服务的端点数量少呢?

这是在您调用API时发生的事情(这就是我在这里结束的方式): HTTP:400-> enter image description here

答案 3 :(得分:0)

我在这篇文章的帮助下解决了这个问题:Automatically update security groups for Amazon CloudFront IP ranges using AWS Lambda

这是一个循序渐进的教程,非常详细,已经有点过时了,但你不会迷路。

唯一的缺点是每次 Lambda 函数创建新的安全组时,您都必须手动将其附加到 EC2 实例或 ELB。或许这也可以通过高效的方式自动解决,但博文没有提及。