CloudFormation配置RDS安全组白名单EC2私有IP失败求助
问题解决:CloudFormation安全组添加EC2私有IP白名单失败
你的配置错误出在CidrIp参数的写法上:!GetAtt "EC2Instance.PrivateIp/32" 不符合CloudFormation函数的使用规则。!GetAtt只能提取指定资源的属性值,无法直接在属性名称后拼接字符串。EC2实例的PrivateIp属性返回的是纯IP地址,必须拼接/32才能形成合法的CIDR格式,用于安全组的白名单规则。
修正后的配置代码如下:
TestSecuri: Type: AWS::EC2::SecurityGroup DependsOn: EC2Instance Properties: GroupDescription: allow connections from specified CIDR ranges SecurityGroupIngress: - IpProtocol: tcp FromPort: 800 ToPort: 800 CidrIp: !Sub "${EC2Instance.PrivateIp}/32"
使用!Sub函数可以将EC2实例的私有IP属性值与/32拼接成合法的CIDR(例如10.0.1.5/32),CloudFormation就能正确解析并创建安全组规则。另外你已经通过DependsOn确保安全组在EC2实例创建完成后再部署,这部分配置是正确的,无需调整。
内容的提问来源于stack exchange,提问作者Amjed saleel
相关产品推荐
相关产品推荐

