我有一个工作正常的CloudFormation脚本,除了我需要能够将我的EC2安全组添加到RDS安全组,以便EC2实例可以访问RDS实例上的MySQL数据库。
以下是创buildEC2安全组的部分。
"WebSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "SSH Access, and complete access to ports 80 & 443.", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "My.IP.Add.Ress/32" }, { "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : "0.0.0.0/0" }, { "IpProtocol" : "tcp", "FromPort" : "443", "ToPort" : "443", "CidrIp" : "0.0.0.0/0" } ] } },
这里是RDS安全组,试图引用它;
"DBSecurityGroup" : { "Type" : "AWS::RDS::DBSecurityGroup", "Properties" : { "GroupDescription" : "Access from the EC2 instance to MySQL.", "DBSecurityGroupIngress" : [ { "EC2SecurityGroupName" : { "Ref": "WebSecurityGroup" }, "EC2SecurityGroupId" : { "Ref" : "WebSecurityGroup" } } ] } }
任何input或指针感激地收到。
您的问题是在错误信息。 在您的AWS::RDS::DBSecurityGroup资源中,您为input规则指定了EC2SecurityGroupName和EC2SecurityGroupId 。 对于EC2 Classic,仅指定EC2SecurityGroupName 。
编辑:新的地区,如欧盟中央(法兰克福),不支持EC2-经典。 所以你必须把你的RDS实例放在一个VPC中。 这意味着,您需要创build一个VPC安全组,而不是一个RDS安全组。