Amazon web services 云形成模板将入口规则添加到现有安全组

Amazon web services 云形成模板将入口规则添加到现有安全组,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,问题范围 我有一个使用多个云形成模板构建的应用程序。它们需要相互交互,但太大/太复杂,无法在一个模板中构建 场景细节 假设只有两个模板(明显更多) 模板A 模板B 模板A创建一个安全组(安全组A),将其自身作为唯一的入口规则。它应用于此模板中执行相同功能的一系列主机 模板B创建另一个安全组(安全组B)和多个主机(在弹性beanstalk中) 问题 我想使用云形成为安全组B的流量向安全组A添加入口规则 我试过什么 我已经阅读了文档,我想创建一个安全组入口规则并将其与安全组a关联,但就我所见,这

问题范围

我有一个使用多个云形成模板构建的应用程序。它们需要相互交互,但太大/太复杂,无法在一个模板中构建

场景细节

假设只有两个模板(明显更多)

  • 模板A
  • 模板B
模板A创建一个安全组(安全组A),将其自身作为唯一的入口规则。它应用于此模板中执行相同功能的一系列主机

模板B创建另一个安全组(安全组B)和多个主机(在弹性beanstalk中)

问题

我想使用云形成为安全组B的流量向安全组A添加入口规则

我试过什么

我已经阅读了文档,我想创建一个安全组入口规则并将其与安全组a关联,但就我所见,这似乎不可行-

其他备选方案


我可以只使用安全组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" }
            }
        }
    }
}