google/resource-snippets/cloudkms-v1/alternatives/tf/cloudkms.tf (35 lines of code) (raw):

variable "project_id" {} variable "deployment" {} variable "user" {} provider "google" { project = var.project_id region = "us-central1" zone = "us-central1-c" } resource "google_kms_key_ring" "default" { name = "test-keyring" location = "us-central1" } resource "google_kms_crypto_key" "default" { name = format("%s-cryptoKey", var.deployment) key_ring = google_kms_key_ring.default.id purpose = "ENCRYPT_DECRYPT" labels = { foo = var.deployment } } data "google_iam_policy" "admin" { binding { role = "roles/cloudkms.admin" members = [ var.user, ] } } resource "google_kms_crypto_key_iam_policy" "crypto_key" { crypto_key_id = google_kms_crypto_key.default.id policy_data = data.google_iam_policy.admin.policy_data } data "google_kms_crypto_key_version" "crypto-key-version" { crypto_key = google_kms_crypto_key.default.self_link }