我正在用python语言创建一个AWS lambda以从RDS(Aurora)中获取数据。 RDS凭证存储在AWS Secret Manager中。在创建机密时,要求我选择RDS群集。选定的RDS群集具有主主机和从属主机。 但是,当我通过访问使用密钥管理器创建的密钥在lambda中获取凭据时,它仅返回该群集中的主主机,而不返回从属主机。 有什么方法可以访问从属主机?
代码:
def get_secret():
secret_name = "abc"
region_name = "xyz"
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
print(e)
else:
if 'SecretString' in get_secret_value_response:
secret = get_secret_value_response['SecretString']
#Print Credentials
print(secret)
输出:
{"username":"xxxxx","password":"yyyyyyy","engine":"mysql","host":"**returned only master host here**","port":1234,"dbClusterIdentifier":"aaaaaaaaa"}
答案 0 :(得分:1)
主服务器和从服务器上的密码(实际密码)相同。由于Secrets Manager只需要知道母带即可完成轮换,因此它存储在秘密中的全部内容。
通常,应用程序仅连接到主服务器,以便它们可以写入数据。如果要连接到只读从属服务器(例如,卸载主服务器),则可能必须调用describe db clusters才能获取从属端点。但是,这并不总是一个好主意。如果从属设备承受重负载,则与主设备同步可能会失败,从而使其处于损坏状态。我以前在MySQL上已经看到过这一点,它需要手动操作来恢复从服务器。