0

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

4

1 回答 1

1

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

如果您控制主机服务器,则可以将文件放在应用程序和 Mule 安装目录之外的服务器目录中。使用操作系统权限保护目录,以便只有 Mule 进程使用的用户可以读取它。使用属性指向正确的文件,因此它是可配置的。

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

Anypoint Platform 中没有地方存储这些 SSH 密钥文件。请注意,对于 TLS 证书,您可以使用Secrets Manager,但仅适用于一些非常具体的用例,而不适用于 CloudHub 中的通用 HTTPS Mule 应用程序。但是 TLS 证书与 SSH 密钥文件完全不同。

于 2021-09-10T10:13:23.523 回答