如何安全地存储Mule应用程序的身份文件



我们在Mule 4中使用SFTP连接器。对于SFTP连接,我们使用身份文件company.key和密码短语进行身份验证。私钥(company.key)和公钥(company.pub)是由另一个IT部门为我们生成的。
我犹豫将company.key文件放入src/main/resources,并通过文件路径从config.yaml引用它,并将其放入版本控制。
私钥是否不受版本控制?
MuleSoft论坛上的一个答案正是这样建议的。
我更愿意尝试将密钥存储在Anypoint平台上,无论是在信任存储中还是作为特定API的秘密,但我不知道如何。
存储身份文件的安全方法是什么?

私钥/秘密文件应该不受版本控制,这是毫无疑问的。公钥(像TLS公共证书)不是秘密的,可以自由共享。

如果你控制了主机服务器,你可以把文件放在应用程序和Mule安装目录之外的服务器目录中。通过使用操作系统权限来保护目录,这样只有Mule进程使用的用户才能读取它。使用属性指向正确的文件,以便它是可配置的。

如果你部署到一个托管环境,比如CloudHub或Anypoint Runtime Fabric,你不能选择使用服务器目录,你必须将文件打包到应用程序中。这并不意味着你必须把它们放在版本控制中。您可以将版本控制软件配置为忽略这些文件,并在构建过程中添加步骤,以便在构建时包含这些文件。对于开发,它们可以在您的开发环境中。对于生产版本,您可以将这些文件合并到CI服务器中,不受开发人员的控制。

在Anypoint平台上没有地方存储这些SSH密钥文件。请注意,对于TLS证书,您可以使用秘密管理器,但只能用于一些非常特定的用例,而不能用于CloudHub中的通用HTTPS Mule应用程序。但是TLS证书和SSH密钥文件是完全不同的。

最新更新