我已经用
ManageMasterUserPassword=True
创建了数据库。但我无法从 describe-db-instances
命令获取 Secret Arn。
aws rds describe-db-instances --db-instance-identifier database-1 --query DBInstances[*].[MasterUsername,MasterUserSecret]
[
[
"postgres",
null
]
]
我仍然面临同样的错误。 但我可以清楚地看到 SecretsManager 中的数据库 ARN 和数据库中的 Secrets ARN。
确保您有最新的 awscli,2.9.10 中添加了对此功能的支持:
https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst
2.9.10
...
* api-change:``rds``: Add support for managing master user password in AWS Secrets Manager for the DBInstance and DBCluster.
...
这样,输出(仅当在数据库实例上启用该功能时)将包含:
$ aws rds describe-db-instances --db-instance-identifier database-1 --region=us-east-1
...
"MasterUserSecret": {
"SecretArn": "arn:aws:secretsmanager:us-east-1:776665554444:secret:rds!db-88888888-82e1-4a59-8c35-888888888888-SyXcpL",
"SecretStatus": "active",
"KmsKeyId": "arn:aws:kms:us-east-1:888888888888:key/88888888-c6c4-43da-a4a4-888888888888"
},
您可以通过以下方式获取实际值(例如):
$ secret_arn=$(aws rds describe-db-instances --db-instance-identifier database-1 --region=us-east-1 --query DBInstances[*].[MasterUserSecret.SecretArn] --output text)
$ aws secretsmanager get-secret-value --secret-id ${secret_arn} --region us-east-1 --query SecretString --output text
{"username":"admin","password":"SVxxxxxxxxxxxxxxxxxxxxxxxY7gwkD"}
遵循 Amazon aws 文档此处, 获取MasterUsername的MasterUserSecret信息的正确命令:
aws rds describe-db-clusters --db-cluster-identifier <rds_cluster_arn>