Cloudformation:当我在启动RDS时已创建默认安全组时,为什么RDS实例会创建默认安全组?

时间:2017-09-20 20:06:55

标签: mysqli amazon-rds amazon-cloudformation aws-security-group

这是我的RDS实例,我正在创建一个安全组,可以访问我的Workbench和后端代码。 RDS创建默认安全组,它与我创建的安全组重叠,从而使其无法访问。如何阻止RDS创建默认安全组。

这是我的RDS模板

"Resources": {
    "epmoliteDB": {
        "Type": "AWS::RDS::DBInstance",
        "Properties": {
            "DBName": {"Ref": "DBname"},
            "DBSecurityGroups": [{"Ref": "DBSecurityGroup"}],
            "AllocatedStorage": "5",
            "DBInstanceClass": "db.t2.micro",
            "Engine": "MySQL",
            "MasterUsername": {"Ref": "DBuser"},
            "MasterUserPassword": {"Ref": "DBpass"},
            "DBParameterGroupName": {"Ref": "epmoliteDBParameterGroup"}
        }
    },

    "DBSecurityGroup": {
        "Type": "AWS::RDS::DBSecurityGroup",
        "Properties": {
            "DBSecurityGroupIngress": {
                "EC2SecurityGroupName": {"Ref": "WebServerSecurityGroup"}
            },
            "GroupDescription": "Frontend Access"
        }
    },

    "WebServerSecurityGroup": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription" : "Enable MYSQL access via port 3306",
            "SecurityGroupIngress": [{
                "IpProtocol": "tcp","FromPort": "3306","ToPort": "3306","CidrIp": "0.0.0.0/0"
            }]
        }
    },

    "epmoliteDBParameterGroup": {
        "Type": "AWS::RDS::DBParameterGroup",
        "Properties" : {
          "Description" : "Parameter group to avoid schema import errors",
          "Family" : "MySQL5.7",
          "Parameters" : {
            "log_bin_trust_function_creators": "1"
          }
        }
    }

}

1 个答案:

答案 0 :(得分:0)

我无法准确解释为什么会创建默认安全组并与您指定的安全组重叠。我可以告诉你的是,你应该真正依靠VPCSecurityGroups取代旧版DBSecurityGroups,而play与" EC2 Classic"相关。 (在VPC时代之前)。也许这将解决问题。

文档中有一篇文章可以了解有关此内容的更多信息:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html#Overview.RDSSecurityGroups.Compare