我有许多在批处理环境中登录到SQLPLUS的Unix Shell脚本。为了登录到SQLPLUS,shell脚本当前以纯文本格式从文本文件中提供用户名和密码。不好 !我需要对此进行更改,以便保护密码并可能对其进行加密,但是Shell脚本可以选择密码并使用decrpyt。除了我认为我需要编写一些可以位于库中并根据需要放入所有我的shell脚本中的shell脚本代码外,我不太确定如何实现自己的目标。任何建议都将受到欢迎。
答案 0 :(得分:0)
可能不是您想听到的。
对shell脚本中的密码进行加密或其他方式的混淆并不能提供任何真正的安全性:仅提供“不明朗的安全性”,而这实际上并不安全。这是关于passwords in plaintext的不错的读物。
所以我认为最好是,尽可能少的人可以访问shell脚本。
答案 1 :(得分:0)
在这种情况下,恕我直言,最好的解决方案是像HashiCorp Vault Vault 您正在安全/经审核的网络/主机中设置Vault服务器,并将密码存储在此处(Vault将为您加密)。然后,您将生成具有读取数据库密码权限的Vault访问令牌。使用Vault,您可以使用http(s)API,如果您有正确的令牌(shell脚本中的curl),它将提供您的秘密。示例:api documentation
这不是最佳解决方案,但是通过此方法,您可以集中存储秘密信息,将所有内容加密,从而可以审核和撤消对秘密的访问。这比在整个基础架构中使用纯文本形式的db密码更好。