[英]terraform create k8s secret from gcp secret
我已經設法在 terraform 中實現了創建敏感資源的流程,而沒有在任何時候透露敏感細節是什么,因此不會以純文本形式存儲在我們的 github 存儲庫中。 我通過讓 TF 創建一個服務帳戶,它是關聯的 SA 密鑰,然后創建一個從 SA 密鑰引用 output 的 GCP 機密來完成此操作。
我現在想看看是否有任何方法可以對某些預定義的數據庫密碼執行相同的操作。 流程會略有不同:
secret_data = ""
(否則將純文本密碼詳細信息放在這里會破壞對象!)google_secret_manager_version
中獲取secret_data
以添加到kube.netes_secret
,以便它可以在我們的 GKE 集群中使用。 但是,當我運行terraform plan
時,它想要更改我手動創建的 GCP 秘密的值
# google_secret_manager_secret_version.pgbouncer-secret-uat-v1 must be replaced
-/+ resource "google_secret_manager_secret_version" "pgbouncer-secret-uat-v1" {
~ create_time = "2021-08-26T14:42:58.279432Z" -> (known after apply)
+ destroy_time = (known after apply)
~ id = "projects/********/secrets/pgbouncer-secret-uat/versions/1" -> (known after apply)
~ name = "projects/********/secrets/pgbouncer-secret-uat/versions/1" -> (known after apply)
~ secret = "projects/********/secrets/pgbouncer-secret-uat" -> "projects/*******/secrets/pgbouncer-secret-uat" # forces replacement
- secret_data = (sensitive value) # forces replacement
有什么想法可以解決這個問題嗎? 我想導入 google secret 版本以在 kube.netes 中使用,但不在資源中設置secret_data
值,因為我不希望它覆蓋我手動創建的內容。 這是我正在談論的相關 terraform 配置:
resource "google_secret_manager_secret" "pgbouncer-secret-uat" {
provider = google-beta
secret_id = "pgbouncer-secret-uat"
replication {
automatic = true
}
depends_on = [google_project_service.secretmanager]
}
resource "google_secret_manager_secret_version" "pgbouncer-secret-uat-v1" {
provider = google-beta
secret = google_secret_manager_secret.pgbouncer-secret-uat.id
secret_data = ""
}
如果您只想檢索/讀取秘密而不主動管理它,那么您可以改用關聯data
:
data "google_secret_manager_secret_version" "pgbouncer-secret-uat-v1" {
provider = google-beta
secret = google_secret_manager_secret.pgbouncer-secret-uat.id
}
然后,您可以使用 Kube.netes 集群中的值作為數據導出資源屬性的秘密: data.google_secret_manager_secret_version.pgbouncer-secret-uat-v1.secret_data
。 請注意,提供者可能會將此導出的資源屬性標記為sensitive
,並且會帶來正常的后果。
您還可以查看完整文檔以獲取更多信息。
此外,由於您將資源導入 state 以在 Terraform 配置中管理它,因此您需要在從配置中刪除它的同時將其從 state 中刪除。 您可以使用terraform state rm google_secret_manager_secret_version.pgbouncer-secret-uat-v1
最輕松地做到這一點。 然后,您可以安全地從您的配置中刪除資源,並將data
單獨包含在您的配置中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.