Amazon web services 将安全组的参数化列表添加到另一个安全组';侵入
我想创建一个CloudFormation模板,创建一个安全组资源,允许从其他安全组的可变列表进入。模板将采用类型为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
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"}
}
}
}