Amazon web services 将安全组的参数化列表添加到另一个安全组';侵入

Amazon web services 将安全组的参数化列表添加到另一个安全组';侵入,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我想创建一个CloudFormation模板,创建一个安全组资源,允许从其他安全组的可变列表进入。模板将采用类型为List的参数。在本例中,我将此参数命名为SourceSecurityGroupIds。然后,它将使用以下内容创建安全组资源: { "LogServerSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescriptio

我想创建一个CloudFormation模板,创建一个安全组资源,允许从其他安全组的可变列表进入。模板将采用类型为
List
的参数。在本例中,我将此参数命名为
SourceSecurityGroupIds
。然后,它将使用以下内容创建安全组资源:

{
    "LogServerSecurityGroup": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "XYZ security group",
            "VpcId": "vpc-abcxyz",
            "SecurityGroupIngress": [
                {
                    "IpProtocol": "tcp",
                    "FromPort": 1234,
                    "ToPort": 1234,
                    "SourceSecurityGroupId": { "Ref": "SourceSecurityGroupIds" }
                }
            ]
        }
    }
}
当然,
securitygroupingres
SourceSecurityGroupId
属性不包含列表。有没有办法让这一切顺利进行

更新日期:2019年2月27日
回想起来,正确的方法是创建一个
LogSourceSecurityGroup
,并且只允许从该安全组进入。然后,将该安全组添加到应该能够与日志服务器通信的任何EC2实例等中。

SecurityGroupIngress
上面的参数是一个数组/列表。因此,在这里定义多个入口规则

e、 g:


我知道已经很晚了,所以你已经明白了,但我只是遇到了同样的问题,我能够解决它。您需要创建一个“安全组入口”资源,该资源将向现有安全组添加规则,因此如下所示:

{
    "LogServerSecurityGroup": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "XYZ security group",
            "VpcId": "vpc-abcxyz"
        }
    },
    "LogServerSecurityGroupIngress" : {
        "Type" : "AWS::EC2::SecurityGroupIngress",
        "Properties" : { 
            "GroupId" : {"Ref" : "LogServerSecurityGroup"},
            "IpProtocol" : "tcp",
            "FromPort" : "1234",
            "ToPort" : "1234",
            "SourceSecurityGroupId" : {"Ref" : "SourceSecurityGroupIds"}
        }

   }
}
您可以在此处找到更多信息:

您的解决方案没有使用由参数指定的安全组的可变列表。@Sean,它不是这样工作的。
{
    "LogServerSecurityGroup": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "XYZ security group",
            "VpcId": "vpc-abcxyz"
        }
    },
    "LogServerSecurityGroupIngress" : {
        "Type" : "AWS::EC2::SecurityGroupIngress",
        "Properties" : { 
            "GroupId" : {"Ref" : "LogServerSecurityGroup"},
            "IpProtocol" : "tcp",
            "FromPort" : "1234",
            "ToPort" : "1234",
            "SourceSecurityGroupId" : {"Ref" : "SourceSecurityGroupIds"}
        }

   }
}