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

问题描述 投票:0回答:1

从一个模板/堆栈创建并导出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名称,但是这次使用名称而不是id得到了上面的“not found”错误)。

由于某种原因,它无法找到SG。

amazon-web-services amazon-cloudformation amazon-rds
1个回答
1
投票

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

有两种方法可以为RDS实例设置安全组,其中描述了here

  1. DBsecurityGroups:AWS::RDS::DBSecurityGroup类型的安全组。这是保护RDS实例的旧方法。
  2. VPCSecurityGroups:AWS::EC2::SecurityGroup类型的安全组,允许您指定VPC安全组以保护RDS实例。
© www.soinside.com 2019 - 2024. All rights reserved.