在gitlab中隐藏GCP令牌的最佳方法是什么



我有这个文件token.json,它是我在使用GCP服务帐户时下载的服务令牌。所以我在我的存储库中使用这个令牌。

但我不需要任何人公开查看这个代币。

这就是它的样子:(我已经删除了一些值(

{
  "type": "service_account",
  "project_id": "possible-origin-236919",
  "private_key_id": "e6a2d1400d077701190559b5c94804357ce4f0ce",
  "private_key": "-----BEGIN PRIVATE KEY-----n-----END PRIVATE KEY-----n",
  "client_email": "banuka-terraform@possible-<>",
  "client_id": "<>",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<>"
}

我甚至不能使用gitlab变量,因为它只能从.gitlab-ci.yaml访问。那么,最好的方法是什么呢?

使用类似https://www.vaultproject.io/是更好的方法,但是,如果您没有此选项,您可以创建一个作业来从外部本地检索此令牌,如另一个repo、s3或文件服务器

TL;DR:永远不要将密码或密钥存储在git中,并使用集中的机密管理

GCP提供了一款名为Secret Manager的产品,允许您以安全的方式在安全的环境中存储敏感数据。关于访问秘密版本部分解释了如何调整代码以使用此服务。

谷歌创建了一个简短的博客条目,名为"通过集中的秘密管理改善你的安全态势",其中明确解释了如何使用该工具存储秘密,以及如何集成GitHub Actions和Terraform等第三方服务。

相关内容

最新更新