首页 > 解决方案 > 尝试通过 CloudFormation 创建 SG 和 RDS 时显示“无效的安全组”

问题描述

我制作了以下简单的 CloudFormation 模板。它尝试创建一个安全组和一个 RDS,其中 RDS 使用创建的安全组作为其安全组配置。

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  TestDBMasterUserPassword:
    Type: String
    NoEcho: true
Resources:
  TestDB:
    Type: 'AWS::RDS::DBInstance'
    Properties:
      Engine: mysql
      DBInstanceClass: db.t2.micro
      AllocatedStorage: 20
      MasterUsername: root
      MasterUserPassword: !Ref TestDBMasterUserPassword
      VPCSecurityGroups:
        - !Ref TestDBSecurityGroup
  TestDBSecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupDescription: Security Group for TestDB

从该模板创建堆栈会导致错误,如下所示:

16:58:43 UTC+0900   CREATE_FAILED   AWS::RDS::DBInstance    TestDB  Invalid security group , groupId= inoue-test-stack-testdbsecuritygroup-10t6gvze4gs5k, groupName=. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterValue; Request ID: 16c7e4c5-9201-4dc7-b5b4-8f536c6b807d)

我无法弄清楚为什么会发生这样的错误..

问题:

标签: amazon-web-servicesamazon-cloudformation

解决方案


当您!Ref AWS::EC2::SecurityGroupVPCSecurityGroups属性中执行此操作时,这将返回安全组的名称而不是 ID,这是VPCSecurityGroups属性所需要的。尝试- Fn::GetAtt: [ TestDBSecurityGroup, GroupId ]改用。


推荐阅读