我有一个名为cert
的文件夹,我不想在存储库的代码中可见,但我需要在github工作流运行时看到它。
cert
ca-cert.pem
ca-key.pem
server-cert.pem
server-key.pem
server-req.pem
我首先把文件夹放在。gitignore里面。然后我把每个文件都放在文件夹里作为github的秘密,这是有效的,但非常重复,我想一定有一个更好的更有效的解决方案。
有更好的选择吗?
如果可以的话,不要把它们放在Github中。如果您确实将它们存储在GitHub中,请考虑在脚本中使用gh cli来自动存储这些秘密。可以选择将它们存储在GitHub组织级别而不是Repo级别,以便能够从UI分配访问权限。
$ gh secret set MYSECRET < myfile.txt
注意:在secret中添加多行和结构化数据时要小心。在这种情况下,GitHub Actions将很难确保秘密不打印在日志中。重新格式化、缩小或解码秘密将以这样一种方式转换它,GitHub动作将不再识别该值,因此不会从日志中清除它。
,
像Azure Key Vault和Hashi Corp Vault这样的工具是存储密钥的更安全的地方。即便如此,我还是会担心,如果你把ca证书私钥放在那里,这些私钥应该被安全地锁起来,最好是放在HSM或离线存储中。GitHub工作流与证书颁发机构私钥无关。如果你的工作流需要访问这些密钥,那么它可以从保险库请求它们。