从一个模板/堆栈创建和导出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:sg-0983409kdje5999
更新:这似乎与出口价值无关;由于某种原因将特定的SG分配给我的RDS实例失败(我明确使用了SG名称,但是这次我得到了上面的“ not found”错误,但使用名称而不是ID)。
由于某种原因,它找不到SG。
答案 0 :(得分:1)
由于使用的是AWS::EC2::SecurityGroup
,因此需要使用属性VPCSecurityGroups
来指定导入的安全组,而不要使用DBSecurityGroups
。它失败,因为您指定的SG不是DBSecurityGroup。
有两种方法来设置here的RDS实例的安全组:
DBsecurityGroups :类型的安全组
AWS::RDS::DBSecurityGroup
。这是保护RDS的较旧方法
实例。
VPCSecurityGroups :类型的安全组
AWS::EC2::SecurityGroup
,可让您指定VPC安全性
组来保护您的RDS实例。