【问题标题】:Where to store credential in terraform-gcp-github project?在 terraform-gcp-github 项目中将凭证存储在哪里?
【发布时间】:2021-05-04 08:57:04
【问题描述】:

我有一个访问谷歌云存储桶的 terraform 项目。所有的拉取请求都是通过 github 完成的。但是,我不确定应该在哪里安全地存储我的存储桶凭据?当然,我不想将它们上传到 github,但我不确定它们应该保存在哪里。这是我的变量文件


variable "credentials_filepath" {
  default = "../../../creds.json"
}

这是我的主要文件

provider "google" {

  credentials = file(var.credentials_filepath)

  project = var.project
  region  = "europe-west2"
  zone    = "europe-west2-a"
}

【问题讨论】:

  • 你在哪里运行你的 terraform?
  • 您介意从 Cloud Build 运行您的 terraform 吗?在这种情况下,您可以提前将存储桶的权限授予云构建服务帐户,因此不需要凭据。

标签: github google-cloud-platform terraform


【解决方案1】:

主要思想是将秘密安全地存储在秘密管理器中,并使用包装器使秘密仅在包装器过程期间作为环境变量可用。

在我可以推荐的工具中:passgopasssummon

例如,一旦秘密存储在 GPG 中并且您配置了 gpg-agent,您就可以运行:

TF_VAR_secret=$(pass gc/myproject) terraform ...
  • 这将告诉 shell 将环境变量 TF_VAR_secret 设置为 pass gc/myproject 的输出。
  • 该命令告诉pass 使用gpg 和gpg-agent 读取存储在gc/myproject 的秘密值。
  • secret 是一个 Terraform 变量,TF_VAR_secret 告诉 Terraform 从该环境变量中填充该变量。 (请参阅 Terraform documentation)。

【讨论】:

    猜你喜欢
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2014-09-07
    • 1970-01-01
    • 2021-05-10
    相关资源
    最近更新 更多