创建RDS实例时MasterUserPassword参数无效的问题求助
大家好,我最近在部署RDS实例的时候卡壳了,一直碰到MasterUserPassword参数无效的错误,实在找不到问题所在,来这里求助各位大佬!
事情是这样的:我用Terraform管理基础设施,通过Secrets Manager存储RDS的数据库密码,但是在创建RDS实例的时候,一直返回这个错误:
Error: creating RDS DB Instance (csye6225): operation error RDS: CreateDBInstance, https response error StatusCode: 400, RequestID: d45ec645-b0d1-4902-b769-2dcc448cd993, api error InvalidParameterValue: The parameter MasterUserPassword is not a valid password. Only printable ASCII characters besides '/', '@', '"', ' ' may be used.
我特意用aws secretsmanager get-secret-value --secret-id db-password命令拉取了存储的密码,检查了好几遍,确定密码里没有包含错误提示里说的禁用字符(/、@、"、空格),可还是报这个错,实在搞不懂。
下面是我和密码存储相关的Terraform配置片段:
resource "aws_secretsmanager_secret" "db_password" { name = "db-password" description = "Database password for RDS" kms_key_id = aws_kms_key.secret_manager_key.id } resource "aws_secretsmanager_secret_version" "db_password_version" { secret_id = aws_secretsmanager_secret.db_password.id # 这里代码没贴全,核心是通过这个资源来管理密码版本 }
我已经排查的点:
- 手动验证了Secrets Manager里的密码,没有禁用字符
- 确认KMS密钥是正常可用的,能正常加密解密Secret
有没有大佬能帮我看看,是不是我的Terraform配置哪里有疏漏,或者还有什么我没考虑到的点会导致这个问题?
备注:内容来源于stack exchange,提问作者fangle xi

