【发布时间】:2014-04-06 22:59:11
【问题描述】:
有人知道如何将您的云端发行版添加到 ELB 的安全组入站规则中吗?
我们为一个新站点设置了一个 Cloudfront 发行版,该站点具有一组列入白名单的安全组规则作为其来源。我看不到如何配置安全组以允许来自云端发行版的请求...
有什么想法吗?
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudfront amazon-elb
有人知道如何将您的云端发行版添加到 ELB 的安全组入站规则中吗?
我们为一个新站点设置了一个 Cloudfront 发行版,该站点具有一组列入白名单的安全组规则作为其来源。我看不到如何配置安全组以允许来自云端发行版的请求...
有什么想法吗?
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudfront amazon-elb
Beginning 2022 年 2 月,您应该使用 AWS Managed Prefix List。它们是由 AWS 管理并保持最新的 IP 列表,您可以在路由表和安全组中使用这些 IP。
请注意,Amazon CloudFront 托管前缀列表在一个安全组中计为 55 条规则。默认配额为 60 条规则,在一个安全组中仅保留 5 条额外规则的空间。您应该请求增加此配额的配额。它在路由表中计为 55 条路由。默认配额为 50 个路由,因此您必须请求增加配额才能将前缀列表添加到路由表。
【讨论】:
我在这篇文章的帮助下解决了这个问题:Automatically update security groups for Amazon CloudFront IP ranges using AWS Lambda
这是一个循序渐进的教程,非常详细,已经有点过时了,但你不会迷路。
唯一的缺点是每次 Lambda 函数创建一个新的安全组时,您都必须手动将其附加到您的 EC2 实例或 ELB。或许这也能以高效的方式自动解决,但博文并未提及。
【讨论】:
这更像是一个问题而不是一个答案,但嵌入其中的是我将如何做到这一点:
第 1 步:从这里获取数据:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html -> http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
第 2 步:使用数据创建安全组...
问题部分: 为什么AWS API对规则数量的限制少于其服务的端点数量......
【讨论】:
如果您点击上述 cmets 中 Amir Mehler 提供的链接,则博客作者指向 Github 上的 official AWS Lambda function,它将使用 CloudFront IP 更新安全组。我用过这个,效果很好。
如果你不喜欢 Lambda,you could do it manually。
Note第一次尝试使用示例测试配置时,更新MD5以匹配当前ip-ranges.json文件的hash,否则会出错。
【讨论】:
当您在 Cloudfront 分发中说“添加源”并单击“源域名”框时,它会列出来自该账户的所有 AWS 资源(包括 ELB)。你可以选择它。
但是,与您的 ELB 关联的安全组应该允许公共访问(HTTP/HTTPS,0.0.0.0/0)。这一点也不安全,因为无论如何您都希望公众通过云端访问 ELB。当您通过 CDN 提供内容时,它是供公众访问的。我一直在以这种方式配置 ELB 安全组。接受其他建议!
现在对于 ELB 后面的 EC2 的安全组:这里您不应该允许公共访问。而是只允许来自 ELB 的安全组的访问(您可以通过从列表中选择 ELB 安全组来实现此目的,而不是键入入站 IP 地址。
现在,如果源是 S3,则可以稍作不同的配置。在这里,您无需公开存储桶。而是使用仅允许 IAM 源访问身份的存储桶策略(此处不是任何安全组)限制对存储桶的访问。更多信息在这里 - Serving Private Content through CloudFront - Amazon CloudFront
【讨论】: