gpt4 book ai didi

git - 在哪里存储用于持续集成 (CI) 部署的私钥?

转载 作者:太空狗 更新时间:2023-10-29 14:46:03 25 4
gpt4 key购买 nike

我正在构建一个基于私有(private) git 存储库的持续集成部署。我的项目在资源目录中包含一个未版本化的 PK 文件。这在我手动部署时工作正常,我确保私钥的副本位于来自任何工作站的路径上。

现在我正在从存储库进行部署,我很好奇将 key 存储在何处。这是一个私有(private)仓库,我想我可以只对 PK 进行版本控制,但如果有其他选择,我宁愿不这样做。

有什么提示或技巧吗?

更新:抱歉含糊不清,PK 是与 Google API 一起使用的服务帐户。所以它是必须在运行时提供给 Java API 库的东西。例如:

public void startGoogleDrive() {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(Arrays.asList(DriveScopes.DRIVE))
.setServiceAccountUser(userEmail)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH)) // <- private key file
.build();
}

最佳答案

是的,将凭据或其他敏感数据保存在 Git 存储库中几乎总是一个坏主意。

据我所知,对于诸如私钥之类的版本控制,唯一好的做法是将它们放在 configuration management 的私有(private)存储库中。政策,例如 CFEngine , Puppet , Ansible , ChefSalt .当配置管理系统守护进程运行时,它可以从存储库创建或更新 key 。话又说回来,如果随意进行,即使这样也可能导致 key 被滥用。

我个人不会将该 key 保存在项目的源存储库中。您可能还会发现有人需要查看代码但无权访问 key 的情况。理想情况下, key 应该单独部署到应用程序服务器,可以手动或通过配置管理系统。

关于git - 在哪里存储用于持续集成 (CI) 部署的私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com