AWS Cloudformation:如何在 AWS 弹性 beanstalk 配置中引用多个安全组
Posted
技术标签:
【中文标题】AWS Cloudformation:如何在 AWS 弹性 beanstalk 配置中引用多个安全组【英文标题】:AWS Cloudformation: how to refer multiple security groups in AWS elastic beanstalk configuration 【发布时间】:2018-02-09 07:35:50 【问题描述】:我是 AWS Cloudformation 世界的新手。我正在尝试创建一个 elasticbeanstalk 配置模板。因为它是其中一种设置,我需要使用两个安全组。所以,我给它如下
MyConfigurationTemplate:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
Properties:
ApplicationName: MyApplication
Description: A default Application
SolutionStackName: SolutionStack
OptionSettings:
....
....
- Namespace: aws:autoscaling:launchconfiguration
OptionName: SecurityGroups
Value:
!If
- ConditionIsTrue
- [!Ref FirstGroup, !ImportValue SecondGroup]
- !Ref FirstGroup
....
....
我从 AWS 文档 here 中读到,SecurityGroups 是一个列表,我们可以提供逗号分隔的列表。但这对我不起作用。 AWS 抛出以下错误
属性Value的值必须是String类型
我尝试通过以下方式为安全组赋予价值,但都没有奏效。
1) "!Ref FirstGroup, !ImportValue SecondGroup"
2) !Ref FirstGroup, !ImportValue SecondGroup
知道如何提供此安全组列表吗?
【问题讨论】:
【参考方案1】:我自己通过反复试验得到了它。因为它接受逗号分隔的列表。我们需要使用 !join 如下。
MyConfigurationTemplate:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName: MyApplication
Description: A default Application
SolutionStackName: SolutionStack
OptionSettings:
....
....
- Namespace: aws:autoscaling:launchconfiguration
OptionName: SecurityGroups
Value:
!If
- ConditionIsTrue
- !Join [',', [!Ref FirstGroup, !ImportValue SecondGroup]]
- !Ref FirstGroup
....
....
【讨论】:
以上是关于AWS Cloudformation:如何在 AWS 弹性 beanstalk 配置中引用多个安全组的主要内容,如果未能解决你的问题,请参考以下文章
AWS::CloudFormation::Init 它是如何工作的?
如何在 aws Secrets Manager 服务中管理 aws RDS(由 cloudformation 创建)的主用户凭证?
如何使用 AWS CloudFormation 在 AWS API Gateway 上应用安全策略?
如何使用 Cloudformation 在 AWS RestAPI 中创建嵌套资源路径?