describe-db-instances API 中缺少 MasterUserSecret 字段

问题描述 投票:0回答:2

我已经用

ManageMasterUserPassword=True
创建了数据库。但我无法从
describe-db-instances
命令获取 Secret Arn。

aws rds describe-db-instances --db-instance-identifier database-1 --query DBInstances[*].[MasterUsername,MasterUserSecret]
[
    [
        "postgres",
        null
    ]
]

我什至从控制台创建了数据库, enter image description here

我仍然面临同样的错误。 但我可以清楚地看到 SecretsManager 中的数据库 ARN 和数据库中的 Secrets ARN。 enter image description here enter image description here

amazon-web-services amazon-rds aws-cli
2个回答
4
投票

确保您有最新的 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"}

0
投票

遵循 Amazon aws 文档此处, 获取MasterUsername的MasterUserSecret信息的正确命令:

aws rds describe-db-clusters --db-cluster-identifier <rds_cluster_arn>

© www.soinside.com 2019 - 2024. All rights reserved.