如何在外部存储SQLAlchemy连接的密码

时间:2019-05-20 22:40:54

标签: python apache-superset

对于Superset,我想从超集元数据数据库中删除SQLAlchemy连接到其他数据库的密码。示例:

   sqlalchemy_uri: mysql://superUser:XXXXXXXXXX@localhost:3306/superDb

我正在跟踪链接:https://superset.incubator.apache.org/installation.html#external-password-store-for-sqlalchemy-connections

当前大约有20个sqlalchemy_uris用于不同的数据库连接。如何为不同的sqlalchemy_uri设置机密,以便它为每个URL设置正确的密码。

这是代码,我试图从SSM获取密码,然后将其传递给URL。

def getPassword():
ssm = boto3.client('ssm')
password = ssm.get_parameter(Name='<path to parameter>', WithDecryption=True)
return password['Parameter']['Value']

def example_lookup_password(url):
print(url)
secret = getPassword()
return 'secret'

我有两个担忧: 1.从SSM获取所有密码(图一) 2.将相应的密码传递到URL。

更新:

似乎SQLALCHEMY_CUSTOM_PASSWORD_STORE仅存储SQLALCHEMY_DATABASE_URI的密码,这是超集元数据库,无法从UI查找URL。因此,我们只能为URL传递一个密码。因此,从用户界面创建与其他数据库的连接仍会将密码存储在Superset的元数据库中

0 个答案:

没有答案