为什么不构建嵌入秘密的 CD 管道?

问题描述 投票:0回答:1

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

devops continuous-deployment secret-key
1个回答
0
投票

有几个原因导致这种情况不常见。这不是一个详尽的列表,但这里有几个:

  1. 问题分离 - 在二进制文件中嵌入机密会使密钥管理和环境配置变得复杂。如果您需要轮换密钥,则必须重建并重新部署二进制文件。同样,管理不同的环境(dev/stg/prd)变得很困难,因为您需要为每个环境提供单独的二进制文件,并嵌入各自的秘密。将机密对外保密可以更轻松地进行更新和环境分离,而无需触及您的应用程序代码。
  2. 安全风险 - 如果有人获得了您的二进制文件的访问权限,他们可能会使用它直接与您的系统进行交互,而无需寻找或提取嵌入的秘密。
© www.soinside.com 2019 - 2024. All rights reserved.