VPC 中的 AWS Cloudformation RDS 安全组

AWS Cloud Formation RDS security group in VPC

我正在尝试将入口规则添加到 RDS 实例的安全组,但是当我添加它们时它显示 The security group 'sg-14820a71' does not exist in default VPC 'vpc-527a8037'

我已经明确指定了我想要安全组所在的 VPC,它不应该使用默认值。关于如何使其使用正确的 VPC 的任何想法?

"Resources": {
    "DbVpcSecurityGroup": {
        "DependsOn": ["VPC", "BeanstalkSecurityGroup"],
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "Security group for RDS DB Instance.",
            "VpcId": {
                "Ref": "VPC"
            },
            "SecurityGroupIngress": [{
                    "IpProtocol": "tcp",
                    "FromPort": 3306,
                    "ToPort": 3306,
                    "SourceSecurityGroupName": {
                        "Ref": "BeanstalkSecurityGroup"
                    }
                }]
        }
    }
}

它在没有入口规则的情况下工作正常(在 GUI 中手动创建):

"Resources": {
    "DbVpcSecurityGroup": {
        "DependsOn": ["VPC", "BeanstalkSecurityGroup"],
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "Security group for RDS DB Instance.",
            "VpcId": {
                "Ref": "VPC"
            },
        }
    }
}

这是 beantalk 安全组:

"BeanstalkSecurityGroup": {
    "DependsOn": ["VPC"],
    "Type": "AWS::EC2::SecurityGroup",
    "Properties": {
        "GroupDescription": "Allow the Elastic Beanstalk instances to access the NAT device",
        "VpcId": {
            "Ref": "VPC"
        },
    }
}

在 VPC 中工作时,我们应该始终使用 Security Group ID 而不是 Security Group Name.

因此在 CloudFormation 的这种情况下,使用 SourceSecurityGroupOwnerId 而不是 SourceSecurityGroupName