У меня есть сценарий CloudFormation, который работает нормально, за исключением того, что мне нужно добавить мою группу безопасности EC2 в группу безопасности RDS, чтобы экземпляр EC2 мог получить доступ к базе данных MySQL на экземпляре RDS.
Вот раздел, который создает группу безопасности EC2;
"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" }
} ]
}
}
Любой ввод или указатели с благодарностью принимаются.
Ваша проблема в сообщении об ошибке. В твоем AWS::RDS::DBSecurityGroup
ресурс, вы указываете оба EC2SecurityGroupName
и EC2SecurityGroupId
для правила входа. Для EC2 Classic укажите только EC2SecurityGroupName
.
РЕДАКТИРОВАТЬ: новые регионы, такие как EU Central (Франкфурт), не поддерживают EC2-Classic. Таким образом, вы должны поместить свой экземпляр RDS в VPC. Это означает, что вам нужно создать группу безопасности VPC вместо группы безопасности RDS.