我们有多个AWS账户。在创建 CFTemplate 来创建安全组时,我应该添加来自其他 VPC 的 SG 作为入站规则。当我尝试使用“CidrIp”相同的代码时,我的堆栈创建没有错误,但是当我给出
SourceSecurityGroupId
& SourceSecurityGroupOwnerId
时。我收到错误,因为给定的 VPC 不存在这是我使用的代码。
"Resources" : {
"PrivateWindowsSg" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Ingress from AD & DC in CS",
"VpcId" : {
"Ref" : "VPCID"
}
}
},
"PrivateWindowsSgIngress" : {
"Type" : "AWS::EC2::SecurityGroupIngress",
"Properties" :{
"Description" : "Ingress from AD & DC in CS",
"GroupId" : {
"Ref" : "PrivateWindowsSg"
},
"IpProtocol" : "UDP",
"FromPort" : "49152",
"ToPort" : "65535",
"SourceSecurityGroupId" : "SG from Other VPC",
"SourceSecurityGroupOwnerId" :"AWSAccountID"
}
}
}
我每次遇到的错误是
默认 VPC“none”中不存在安全组“sg-055f0xxxx”(服务:AmazonEC2;状态代码:400;错误代码:InvalidGroup.NotFound;请求 ID:056cc269-421d-4985-a15a-b672f20041c8)
谁能帮忙解决这个问题吗?
您尝试添加的源安全组是否符合以下条件:
另一个安全组。这允许与指定安全组关联的实例访问与该安全组关联的实例。这不会将源安全组中的规则添加到此安全组。您可以指定以下安全组之一:
- 当前安全组
- 同一 VPC 的不同安全组
- VPC 对等连接中对等 VPC 的不同安全组
如果没有,您将无法添加。请参阅此处了解更多信息。您还可以尝试通过管理控制台手动执行此操作来测试这一点。如果它在那里工作,那么你应该能够使用 CloudFormation 来完成它,如果没有,那么你就知道你的问题出在哪里。
我发现我的代码可以工作。问题不在于代码,而在于来自错误 VPC 的测试模板,该 VPC 与目标 VPC 没有对等连接。