CloudFormation Script - ссылка на ранее созданную группу безопасности

У меня есть скрипт 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" }
       } ]
 }
}

Любой вклад или указатели принимаются с благодарностью.

1 ответ

Решение

Ваша проблема в сообщении об ошибке. В вашем AWS::RDS::DBSecurityGroup ресурс, вы указываете как EC2SecurityGroupName а также EC2SecurityGroupId для правила входа. Для EC2 Classic укажите только EC2SecurityGroupName,

РЕДАКТИРОВАТЬ: Новые регионы, такие как ЕС Центральная (Франкфурт), не поддерживают EC2-Classic. Поэтому вы должны поместить свой экземпляр RDS в VPC. Это означает, что вам нужно создать группу безопасности VPC вместо группы безопасности RDS.

Другие вопросы по тегам