terraform/ecc-gcp-291-secret_manager_secret_encrypted_with_cmek/green/secret.tf (49 lines of code) (raw):

resource "random_id" "this" { byte_length = 4 } data "google_kms_key_ring" "this" { name = "keyring-${var.prefix}" location = var.region } resource "google_kms_key_ring" "this" { count = data.google_kms_key_ring.this.id != null ? 0 : 1 name = "keyring-${var.prefix}" location = var.region } resource "google_kms_crypto_key" "this" { name = "keyname-${random_id.this.hex}-${var.prefix}" key_ring = data.google_kms_key_ring.this.id != null ? data.google_kms_key_ring.this.id : google_kms_key_ring.this[0].id rotation_period = "7776001s" labels = { custodiarule = "ecc-gcp-291-secret_manager_secret_encrypted_with_cmek" compliancestatus = "green" } } data "google_project" "this" {} resource "google_kms_crypto_key_iam_binding" "this" { crypto_key_id = google_kms_crypto_key.this.id role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" members = [ "serviceAccount:service-${data.google_project.this.number}@gcp-sa-secretmanager.iam.gserviceaccount.com", ] } resource "google_secret_manager_secret" "this" { secret_id = "secret-${var.prefix}" labels = { custodiarule = "ecc-gcp-291-secret_manager_secret_encrypted_with_cmek" compliancestatus = "green" } replication { user_managed { replicas { location = var.region customer_managed_encryption { kms_key_name = google_kms_crypto_key.this.id } } } } depends_on = [ google_kms_crypto_key_iam_binding.this ] }