CloudFormation 脚本 - 引用先前创建的安全组

CloudFormation 脚本 - 引用先前创建的安全组

我有一个运行良好的 CloudFormation 脚本,只是我需要能够将我的 EC2 安全组添加到 RDS 安全组,以便 EC2 实例可以访问 RDS 实例上的 MySQL 数据库。

以下是创建 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。对于 EC2 Classic,仅指定。EC2SecurityGroupIdEC2SecurityGroupName

编辑:新区域(例如欧盟中部(法兰克福))不支持 EC2-Classic。因此,您必须将 RDS 实例放在 VPC 中。这意味着,您需要创建 VPC 安全组而不是 RDS 安全组。

相关内容