问题范围
我有一个使用多个云形成模板构建的应用程序。他们需要相互交互,但是太大/太复杂,无法在一个模板中构建。
方案详情
想象一下,只有两个模板(显着更多)
模板A创建一个安全组(安全组A),其自身是唯一的入口规则。它适用于此模板中执行相同功能的一系列主机。
模板B创建另一个安全组(安全组B)和许多主机(在弹性beanstalk中)。
问题
我想使用云计算为来自安全组B 的流量向安全组A 添加入口规则?
我尝试了什么
我查看了文档,我想创建一个安全组Ingress规则并将其与安全组A相关联,但据我所知,这似乎不可行 - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html
其他替代方案
我可以使用安全组B中的主机的CIDR范围,因为在构建任何这些主机之前已知这些主机(所有这些都在具有单独子网的VPC中)但是我觉得必须有比接受更安全的方式来自cidr范围的流量。
答案 0 :(得分:1)
AWS :: EC2 :: SecurityGroupIngress就是答案。
将安全组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" }
}
}
}
}