Amazon web services AWS Cloudfront和ELB安全组

Amazon web services AWS Cloudfront和ELB安全组,amazon-web-services,amazon-ec2,amazon-cloudfront,amazon-elb,Amazon Web Services,Amazon Ec2,Amazon Cloudfront,Amazon Elb,有人知道如何将cloudfront发行版添加到ELB的安全组入站规则中吗 我们为一个新站点设置了cloudfront发行版,该站点的源站点有一组白名单上的安全组规则。我看不出如何配置安全组以允许来自cloudfront发行版的请求 有什么想法吗?当您在Cloudfront发行版中说“添加源站”并单击“源站域名”框时,它会列出此帐户中的所有AWS资源(包括ELB)。你可以选择它 但是,与ELB关联的安全组应允许公共访问(HTTP/HTTPS,0.0.0.0/0)。这并没有降低安全性,因为无论如何,

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

我们为一个新站点设置了cloudfront发行版,该站点的源站点有一组白名单上的安全组规则。我看不出如何配置安全组以允许来自cloudfront发行版的请求

有什么想法吗?

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

但是,与ELB关联的安全组应允许公共访问(HTTP/HTTPS,0.0.0.0/0)。这并没有降低安全性,因为无论如何,您希望公众通过cloudfront访问ELB。当您通过CDN提供内容时,它是供公众访问的。我一直以这种方式配置ELB安全组。欢迎其他建议

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


现在,如果源代码是S3,则可以对其进行稍微不同的配置。在这里,您不需要将bucket公开。而是使用bucket策略限制对bucket的访问(这里没有任何安全组)仅允许IAM源访问标识。此处提供更多信息-

如果您遵循上面评论中Amir Mehler提供的链接,则博客作者指向一个将使用CloudFront IP更新安全组的on Github。我使用了这个,效果非常好

如果你不喜欢Lambda


注意
首次尝试使用示例测试配置时,请更新MD5以匹配当前ip-ranges.json文件的散列,否则它将出错。

这与其说是一个答案,不如说是一个问题,但其中包含的是我将如何做到这一点:

步骤1:从此处获取数据:->

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

问题部分: 为什么AWS API对规则数量的限制小于其服务的端点数量

这就是调用API时发生的情况(我就是这样结束的):
HTTP:400->

我在这篇文章的帮助下解决了这个问题:

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


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

是的,我可以选择它作为源站,但cloudfront在连接回源站时会挂起(它被安全组rultes阻止)。它仍然找不到这样做的方法:(我喜欢只有cloudfront可以访问ELB的想法。例如,有人在ELB上进行DDoS攻击。ELB启动实例,直到它达到liimit并且您的应用程序不再工作。但是,如果有人在cloudfront URL上进行DDoS攻击,亚马逊将保护您的ELB并为您节省高昂的成本。那么,如何做到这一点呢?目前还没有明确的前进方向。)(至少我没有找到它)但是这家伙写了一个脚本,用CloudFront的所有IP更新了一个专门的安全组。所以你只能允许这个sg。自从AWS WAF问世以来,如果你通过CloudFront使用AWS WAF,现在向世界开放你的ELB是个坏主意。否则,人们可以绕过你的WAF设置。我们使用Terraform使我们的SGs保持最新。一个t需要注意的是,每个SG只能有50条规则,因此如果在ELB支持HTTP和HTTPS,则可能需要多个SG。@SonyKadavan CloudFront如何与ELB通信?是AWS内部通信还是通信不加密(如果设置为HTTP)而且容易受到中间人攻击?还有一个逐步解决的方法:这似乎不再有效,因为所需的Cloudfront IP地址数超过了安全组允许的最大规则数。因此,Lambda不会运行。请尝试:这是您的参考github bug:->从2017年开始,他们仍然没有修复它。