AWS CloudFormation:无法找到要分配给 RDS 实例的现有 SG
AWS CloudFormation: Unable to find existing SG to assign to RDS instance
从一个 template/stack:
创建并导出 SG
Resources
RDSSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: "sg-name"
Outputs:
SGRDS:
Description: security group of rds instances
Value: !Ref RDSSecurityGroup
Export:
Name: SGRDS
但是,尽管导出是在尝试使用另一个模板(和堆栈)在 RDS 创建中使用此 SG 时创建的
Resources
MYRDS:
Type: AWS::RDS::DBInstance
Properties:
DBSecurityGroups:
- !ImportValue SGRDS
失败并出现以下错误:
DBSecurityGroup not found: sg-0983409kdje5999
Update:这个好像不是导出值相关的问题;由于某种原因,将特定的 SG 分配给我的 RDS 实例失败了(我明确使用了 SG 名称,但这次我得到了上面的 "not found" 错误名称而不是 ID)。
由于某种原因,找不到 SG。
由于您使用的是 AWS::EC2::SecurityGroup
,因此您需要使用 属性 VPCSecurityGroups
来指定导入的安全组,而不是使用 DBSecurityGroups
。它失败了,因为您指定的 SG 不是 DBSecurityGroup。
有两种方法可以为 RDS 实例设置安全组here:
DBsecurityGroups : 安全组类型
AWS::RDS::DBSecurityGroup
。这是保护 RDS 的旧方法
实例。
VPCSecurityGroups: 安全组类型
AWS::EC2::SecurityGroup
允许您指定 VPC 安全性
组来保护您的 RDS 实例。
从一个 template/stack:
创建并导出 SG Resources
RDSSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: "sg-name"
Outputs:
SGRDS:
Description: security group of rds instances
Value: !Ref RDSSecurityGroup
Export:
Name: SGRDS
但是,尽管导出是在尝试使用另一个模板(和堆栈)在 RDS 创建中使用此 SG 时创建的
Resources
MYRDS:
Type: AWS::RDS::DBInstance
Properties:
DBSecurityGroups:
- !ImportValue SGRDS
失败并出现以下错误:
DBSecurityGroup not found: sg-0983409kdje5999
Update:这个好像不是导出值相关的问题;由于某种原因,将特定的 SG 分配给我的 RDS 实例失败了(我明确使用了 SG 名称,但这次我得到了上面的 "not found" 错误名称而不是 ID)。
由于某种原因,找不到 SG。
由于您使用的是 AWS::EC2::SecurityGroup
,因此您需要使用 属性 VPCSecurityGroups
来指定导入的安全组,而不是使用 DBSecurityGroups
。它失败了,因为您指定的 SG 不是 DBSecurityGroup。
有两种方法可以为 RDS 实例设置安全组here:
DBsecurityGroups : 安全组类型
AWS::RDS::DBSecurityGroup
。这是保护 RDS 的旧方法 实例。VPCSecurityGroups: 安全组类型
AWS::EC2::SecurityGroup
允许您指定 VPC 安全性 组来保护您的 RDS 实例。