基本上有一堆服务器部署脚本引用服务器凭据(例如用户名、密码)。目前,凭据存储在他们自己的名为server_info的 python 模块内的服务器字典中:
servers = {
'dev_server':{'server':'localhost', 'port':'80', 'username':'*********','password' : '*******'},
'staging_server':{'server':'www.google.com', 'port':'80', 'username':'********','password' : '***********'},
}
部署脚本导入此模块并通过密钥引用凭据:
from server_info import servers
server_creds = servers['dev_server']
update_server(server_creds['username'], server_creds['password'], server_creds['port'])
server_creds = servers['staging_server']
update_server(server_creds['username'], server_creds['password'], server_creds['port'])
单独的模块防止在部署脚本中使用纯文本凭据,但 server_info 模块中仍然存在纯文本。
任何有关如何更好地存储此敏感信息的建议将不胜感激。欢迎所有想法,但寻找与平台无关的解决方案。