Skip to content

Commit f8f646a

Browse files
Dataform repository kms (#11260) (#18947)
[upstream:5fee937106c7144500173590bbe6b93ff3e3b303] Signed-off-by: Modular Magician <[email protected]>
1 parent 1d33e5f commit f8f646a

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

.changelog/11260.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
dataform: added `kms_key_name` field to `google_dataform_repository` resource
3+
```

website/docs/r/dataform_repository.html.markdown

+35
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,37 @@ resource "google_secret_manager_secret_version" "secret_version" {
5050
secret_data = "secret-data"
5151
}
5252
53+
resource "google_kms_key_ring" "keyring" {
54+
provider = google-beta
55+
56+
name = "example-key-ring"
57+
location = "us-central1"
58+
}
59+
60+
resource "google_kms_crypto_key" "example_key" {
61+
provider = google-beta
62+
63+
name = "example-crypto-key-name"
64+
key_ring = google_kms_key_ring.keyring.id
65+
}
66+
67+
resource "google_kms_crypto_key_iam_binding" "crypto_key_binding" {
68+
provider = google-beta
69+
70+
crypto_key_id = google_kms_crypto_key.example_key.id
71+
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
72+
73+
members = [
74+
"serviceAccount:service-${data.google_project.project.number}@gcp-sa-dataform.iam.gserviceaccount.com",
75+
]
76+
}
77+
5378
resource "google_dataform_repository" "dataform_repository" {
5479
provider = google-beta
5580
name = "dataform_repository"
5681
display_name = "dataform_repository"
5782
npmrc_environment_variables_secret_version = google_secret_manager_secret_version.secret_version.id
83+
kms_key_name = google_kms_crypto_key.example_key.id
5884
5985
labels = {
6086
label_foo1 = "label-bar1"
@@ -71,6 +97,10 @@ resource "google_dataform_repository" "dataform_repository" {
7197
schema_suffix = "_suffix"
7298
table_prefix = "prefix_"
7399
}
100+
101+
depends_on = [
102+
google_kms_crypto_key_iam_binding.crypto_key_binding
103+
]
74104
}
75105
```
76106

@@ -109,6 +139,11 @@ The following arguments are supported:
109139
(Optional)
110140
Optional. The repository's user-friendly name.
111141

142+
* `kms_key_name` -
143+
(Optional)
144+
Optional. The reference to a KMS encryption key. If provided, it will be used to encrypt user data in the repository and all child resources.
145+
It is not possible to add or update the encryption key after the repository is created. Example projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]
146+
112147
* `labels` -
113148
(Optional)
114149
Optional. Repository user labels.

0 commit comments

Comments
 (0)