尝试通过CloudFormation创建SG和RDS时显示“无效的安全组”

Yuk*_*oue 4 amazon-web-services aws-cloudformation

我制作了以下简单的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
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种错误。

题:

  • 这个简单的云形成模板怎么了?
    • 如何创建指定的安全组并将其分配给CloudFormation上的RDS?

Joh*_*ely 6

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