问题范围
我有一个使用多个云形成模板构建的应用程序。它们需要彼此交互,但太大/太复杂,无法在一个模板中构建。
场景详细信息
假设只有两个模板(还有更多)
- 模板A
- 模板 B
模板 A 创建一个安全组(安全组 A),并将其自身作为唯一的入口规则。应用于该模板中一系列执行相同功能的主机。
模板 B 创建另一个安全组(安全组 B)和一些主机(在弹性 beanstalk 中)。
问题
我想使用云形成向安全组A添加来自安全组B的流量的入口规则?
我尝试了什么
我已经查看了文档,我想创建一个安全组入口规则并将其与安全组 A 关联,但据我所知,这似乎不可行 - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html
其他替代方案
我可以只使用安全组 B 中的主机的 CIDR 范围,因为在构建任何这些之前都知道这一点(全部位于具有单独子网的 VPC 中),但是我觉得必须有一种比接受更好更安全的方法来自某个 cidr 范围的流量。
最佳答案
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" }
}
}
}
}
关于amazon-web-services - Cloud Formation 模板将入口规则添加到现有安全组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078031/