RDS 数据库实例属性 - MasterUserPassword

ove*_*nge 1 amazon-web-services aws-cloudformation

在下面的 cloudformation 模板片段中:

AWSTemplateFormatVersion: "2010-09-09"
Description: "Todobackend Stack"

# Stack Parameters
Parameters:
  DbUsername:
    Type: "String"
    Description: "The RDS database username"
  DbPassword:
    Type: "String"
    Description: "The RDS database password"
    NoEcho: "true"

# Stack Resources
Resources:
  # Configure RDS
  DbInstance:
    Type: "AWS::RDS::DBInstance"
    Properties:
      DBSubnetGroupName: { "Ref": "DbSubnetGroup" }
      MultiAZ: "false"
      AvailabilityZone: { "Ref": "DbAvailabilityZone" }
      AllocatedStorage: 8
      StorageType: "gp2"
      DBInstanceClass: "db.t2.micro"
      DBName: "todobackend"
      Engine: "MySQL"
      EngineVersion: "5.6"
      MasterUsername: { "Ref": "DbUsername" }
      MasterUserPassword: { "Ref": "DbPassword" }
      VPCSecurityGroups:
        - { "Ref": "DbSecurityGroup" }
      Tags:
        - Key: "Name"
          Value: { "Fn::Join": ["", [ { "Ref": "AWS::StackName" }, "-db" ] ] }
Run Code Online (Sandbox Code Playgroud)

AWS CloudFormation 给出以下错误:

2019-12-19 17:28:03 UTC-0800    DbInstance  CREATE_FAILED   

Reason: The parameter MasterUserPassword is not a valid password. Only printable ASCII characters besides '/', '@', '"', ' ' may be used. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterValue; Request ID: d463b57c-d017-415a-abd6-454db4b08d84)
Run Code Online (Sandbox Code Playgroud)

如何解决此错误?

Ton*_*yVo 6

主用户的密码。密码可以包括任何可打印的 ASCII 字符,但“/”、“””或“@”除外。

来自AWS 文档

如果要限制用户输入意外字符,可以使用 AllowedPattern

请参阅 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-specific-parameter-types

  • 是的,您可以使用 `AllowedPattern: ^[a-zA-Z0-9]*$` 来限制用户输入意外字符 (2认同)