AWS CloudFormation:无法找到要分配给RDS实例的现有SG

时间:2018-08-29 16:01:12

标签: amazon-web-services amazon-cloudformation amazon-rds

从一个模板/堆栈创建和导出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。

1 个答案:

答案 0 :(得分:1)

由于使用的是AWS::EC2::SecurityGroup,因此需要使用属性VPCSecurityGroups来指定导入的安全组,而不要使用DBSecurityGroups。它失败,因为您指定的SG不是DBSecurityGroup。

有两种方法来设置here的RDS实例的安全组:

  1. DBsecurityGroups :类型的安全组 AWS::RDS::DBSecurityGroup。这是保护RDS的较旧方法 实例。

  2. VPCSecurityGroups :类型的安全组 AWS::EC2::SecurityGroup,可让您指定VPC安全性 组来保护您的RDS实例。