我正在开发一个需要各种 API 密钥的大型 Go 项目,我们在推送时触发了一个操作,该操作构建服务器二进制文件并将其上传到 GCP 实例。 还上传了一个 systemd 服务,该服务使用每个 API 密钥的标志调用二进制文件(尽管 .env 文件也可以在功能上使用相同的功能)。 我认为很多 CI/CD 管道都会做类似的事情,为什么不直接将秘密嵌入到二进制文件本身中呢? (通过ldflags或sed之类的)
有几个原因导致这种情况不常见。这不是一个详尽的列表,但这里有几个: