在 Elastic Beanstalk 中,如何使用 .ebextensions 将现有安全组设置为负载均衡器?
Posted
技术标签:
【中文标题】在 Elastic Beanstalk 中,如何使用 .ebextensions 将现有安全组设置为负载均衡器?【英文标题】:In Elastic Beanstalk, how to set existing security group to load balancer with .ebextensions? 【发布时间】:2016-10-08 15:01:36 【问题描述】:我正在尝试使用.ebextensions
在我的 Elastic Beanstalk 应用程序中为 ELB 设置现有安全组。
出于某种原因,.configs 喜欢
option_settings:
aws:elb:loadbalancer:
SecurityGroups: sg-abcd1234
似乎什么也没做。另外,由于现有的 SG 是严格定义的,我不想使用 ManagedSecurityGroup
,因为这会修改现有的 SG。
任何想法如何实现这一目标?非常感谢您的帮助。
【问题讨论】:
【参考方案1】:您可以使用 SecurityGroups 选项设置为您的 ELB 指定自己的安全组,beantalk 会将您的 ELB 与该安全组相关联。此外,beantalk 将创建一个新的安全组,允许在该新安全组上的 HTTP 端口 80 上进出。 Beanstalk 不会修改您在上面的选项设置中指定的安全组。
当你说它似乎没有做任何事情时,你的意思是它没有连接到 ELB?除了新的安全组之外,它还应该附加到 ELB。您能否通过在 ELB 控制台中检查与您的 ELB 关联的安全组来确认。
如果您不希望 beanstalk 创建新的安全组,那么您也可以指定该安全组管理的安全组选项设置,但这会更新您的安全组并提供从该安全组到您的 EC2 安全组的入口.
如果您不希望修改安全组,则可以使用选项设置。它将创建一个新的安全组并将新的安全组和您的安全组都附加到 ELB。如果您可以解释您在使用此设置时遇到的具体问题,那么我可以解释更多。
【讨论】:
就像我说的,我需要的是一种在环境构建时自动设置安全组的方法,而不是手动抚摸控制台,所以这不是解决方案。此外,SG on EB deploy 仅适用于服务器,不适用于 ELB 本身。我也知道,如果我手动设置 SG,它不会被修改,这就是我提到ManagedSecurityGroup
的原因,如果你提供 .ebextensions
,它将被修改(根据文档)。
因此,如果您提供自己的安全组并且不希望对其进行修改,那么目前 beanstalk 将始终在您的安全组之外创建一个新的安全组并将其与 ELB 关联。到目前为止,这基本上是两种选择。【参考方案2】:
问题是 Application Load Balancer aws:elbv2
的命名空间(不同于 Elastic Load Balancer 经典 aws:elb
)
http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/environments-cfg-applicationloadbalancer.html
这在 ALB 中有效
option_settings:
- namespace: aws:elbv2:loadbalancer
option_name: ManagedSecurityGroup
value: sg-XXXXXXXX
- namespace: aws:elbv2:loadbalancer
option_name: SecurityGroups
value: sg-XXXXXXXX
【讨论】:
以上是关于在 Elastic Beanstalk 中,如何使用 .ebextensions 将现有安全组设置为负载均衡器?的主要内容,如果未能解决你的问题,请参考以下文章
无法使 HTTPS 在 CloudFront 和 Elastic BeanStalk 之间工作
使用 eb-cli 创建单实例 Elastic Beanstalk 应用程序
如何在 elastic-beanstalk 中应用 ruby 版本补丁