簡體   English   中英

如何通過 Terraform 在 Google Cloud Secret Manager 中創建密鑰?

[英]How to create a secret in Google Cloud Secret Manager by Terraform?

這是官方頁面: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/secret_manager_secret

我創建了這些文件:

變量.tf

variable gcp_project {
  type = string
}

主文件

resource "google_secret_manager_secret" "my_password" {
  provider = google-beta

  secret_id = "my-password"

  replication {
    automatic = true
  }
}

data "google_secret_manager_secret_version" "my_password_v1" {
  provider = google-beta
  project  = var.gcp_project
  secret   = google_secret_manager_secret.my_password.secret_id
  version  = 1
}

輸出.tf

output my_password_version {
  value = data.google_secret_manager_secret_version.my_password_v1.version
}

應用時出現錯誤:

Error: Error retrieving available secret manager secret versions: googleapi: Error 404: Secret Version [projects/2381824501/secrets/my-password/versions/1] not found.

所以我通過 gcloud cli 創建了這個秘密:

echo -n "my_secret_password" | gcloud secrets create "my-password" \
    --data-file - \
    --replication-policy "automatic"

然后再次申請 terraform ,它說Error: project: required field is not set

如果使用 terraform 創建一個具有真實值的秘密,怎么辦?

我發現以下文章對使用 Terraform 管理 Secret Manager很有用。

你必須:

  1. 創建設置
  2. 創建一個名為versions.tf的文件來定義版本約束。
  3. 創建一個名為main.tf的文件並配置 Google 提供程序節:

這是使用自動復制策略創建名為“my-secret”的 Secret Manager 密鑰的代碼:

resource "google_secret_manager_secret" "my-secret" {
  provider = google-beta

  secret_id = "my-secret"

  replication {
    automatic = true
  }

  depends_on = [google_project_service.secretmanager]
}

按照@marian.vladoi 的回答,如果您在使用雲資源管理器 api 時遇到問題,請像這樣啟用它:

resource "google_project_service" "cloudresourcemanager" {
  service = "cloudresourcemanager.googleapis.com"
}

您還可以在終端中使用以下 gcloud 命令啟用雲資源管理器 api:

gcloud services enable secretmanager.googleapis.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM