![](/img/trans.png)
[英]How to create a Secret using Google Cloud Secret Manager with gcloud command line tool?
[英]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很有用。
你必須:
versions.tf
的文件來定義版本約束。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.