CloudFormation模板创建栈报错:安全组与子网分属不同网络
解决CloudFormation中安全组与子网不属于同一网络的错误
嘿,这个错误我之前帮人排查过好多次啦,本质就是你指定的安全组sg-xxxxx和子网subnet-xxxxx不在同一个VPC里——毕竟安全组是绑定特定VPC的资源,子网也属于某个VPC,两者不配对的话,AWS肯定不让你把实例放进去呀。
从你给出的模板片段来看,你已经创建了自定义VPC TwitterappVPC,那问题大概率出在这两个方向:要么你用的安全组是默认VPC或者其他VPC里的,要么你引用的子网和这个VPC不匹配。
具体解决方案
1. 模板内统一创建同VPC的安全组和子网
如果你的子网和安全组都打算通过这个CloudFormation栈创建,那一定要把它们都关联到TwitterappVPC上,示例代码如下:
"Resources" : { "TwitterappVPC": { "Type": "AWS::EC2::VPC", "Properties" : { "CidrBlock" : "10.0.0.0/16", "EnableDnsSupport" : "true", "EnableDnsHostnames": "true" } }, "SwarmNodeSubnet": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": {"Ref": "TwitterappVPC"}, "CidrBlock": "10.0.1.0/24", "AvailabilityZone": "us-east-1a" // 替换成你需要的可用区 } }, "SwarmSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Docker Swarm节点通信安全组", "VpcId": {"Ref": "TwitterappVPC"}, "SecurityGroupIngress": [ { "IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "CidrIp": "0.0.0.0/0" }, { "IpProtocol": "tcp", "FromPort": 2377, "ToPort": 2377, "CidrIp": "10.0.0.0/16" // 允许VPC内节点通信 } ] } }, "SwarmNodeInstance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": "t2.micro", "ImageId": "ami-0c55b159cbfafe1f0", // 替换成你所在区域的合适AMI "SubnetId": {"Ref": "SwarmNodeSubnet"}, "SecurityGroupIds": [{"Ref": "SwarmSecurityGroup"}] } } }
这里的关键就是子网和安全组都通过{"Ref": "TwitterappVPC"}绑定到同一个VPC,之后实例引用这两个资源,就不会出现跨网络的问题了。
2. 引用现有资源时验证VPC一致性
如果你要使用已经存在的子网或安全组,先手动确认它们的VPC是否一致:
- 登录AWS控制台,进入EC2控制台的「安全组」页面,找到
sg-xxxxx,查看它的VPC ID - 再进入「子网」页面,找到
subnet-xxxxx,查看它的VPC ID - 如果两者的VPC ID不一样,要么把其中一个资源迁移到同一个VPC,要么在模板里创建对应VPC下的新资源
3. 修正模板中外部资源的引用
如果你的模板里引用了外部子网(比如用Fn::ImportValue或者直接写死子网ID),而安全组是模板内创建的,那要确保安全组的VpcId和现有子网的VPC完全匹配。比如现有子网属于VPC vpc-123456,那安全组的配置要改成这样:
"SwarmSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Docker Swarm节点通信安全组", "VpcId": "vpc-123456", // 这里填写现有子网所属的VPC ID // 其他安全组规则... } }
总的来说,核心原则就是安全组和子网必须属于同一个VPC,不管是模板内创建的还是引用外部的,只要验证并保证这一点,这个错误就能解决啦。
内容的提问来源于stack exchange,提问作者Quinten Scheppermans
相关产品推荐
相关产品推荐

