Cloud Formation 模板将入口规则添加到现有安全组
Posted
技术标签:
【中文标题】Cloud Formation 模板将入口规则添加到现有安全组【英文标题】:Cloud Formation template add ingress rule to existing security group 【发布时间】:2016-10-30 21:19:26 【问题描述】:问题范围
我有一个使用多个云形成模板构建的应用程序。它们需要相互交互,但太大/太复杂而无法在一个模板中构建。
场景详情
想象一下只有两个模板(还有很多)
模板 A 模板 B模板 A 创建一个以自身为唯一入口规则的安全组(安全组 A)。它应用于此模板中执行相同功能的一系列主机。
模板 B 创建另一个安全组(安全组 B)和一些主机(在弹性 beanstalk 中)。
问题
我想使用云形成为安全组B的流量添加一个入口规则到安全组A?
我尝试了什么
我查看了文档,我想创建一个安全组入口规则并将其与安全组 A 相关联,但据我所知,这似乎不可行 - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html
其他选择
我可以只使用安全组 B 中主机的 CIDR 范围,因为这是在构建任何这些之前已知的(全部在具有单独子网的 VPC 中)但是我觉得必须有比接受更好更安全的方法来自 cidr 范围的流量。
【问题讨论】:
【参考方案1】:AWS::EC2::SecurityGroupIngress 就是答案。
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html
将安全组 A ID 作为参数 SGBase 传递到模板 B。然后像这样创建一个资源。
"AWSTemplateFormatVersion": "2010-09-09",
"Resources":
"SGBaseIngress":
"Type": "AWS::EC2::SecurityGroupIngress",
"Properties":
"GroupName": "Ref": "SGBase" ,
"IpProtocol": "tcp",
"FromPort": "80",
"ToPort": "80",
"SourceSecurityGroupName": "Ref": "SGBase"
【讨论】:
以上是关于Cloud Formation 模板将入口规则添加到现有安全组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cloud Formation 模板中使列表项有条件?
我能否在 SAM 模板中使用 AWS Cloud Formation 资源语法,反之亦然?
Cloud Formation:环境无法启动,因为它进入了已终止状态
Cloud Formation 将多个 S3 触发器添加到 LambdaConfigurations 中的同一个 S3 存储桶