Skip to content

Commit a714407

Browse files
Add new encryption_spec field (#15068)
1 parent 59c0dba commit a714407

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

mmv1/products/privateca/CaPool.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ examples:
5858
primary_resource_id: 'default'
5959
vars:
6060
name: 'my-pool'
61+
pool_location: 'asia-east1'
62+
cloud_kms_key: 'projects/keys-project/locations/asia-east1/keyRings/key-ring/cryptoKeys/crypto-key'
63+
test_vars_overrides:
64+
'pool_location': '"asia-east1"'
65+
'cloud_kms_key': 'acctest.BootstrapKMSKeyWithPurposeInLocation(t, "ENCRYPT_DECRYPT", "asia-east1").CryptoKey.Name'
6166
- name: 'privateca_quickstart'
6267
primary_resource_id: 'default'
6368
vars:
@@ -507,3 +512,17 @@ properties:
507512
508513
An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass":
509514
"1.3kg", "count": "3" }.
515+
- name: 'encryptionSpec'
516+
type: NestedObject
517+
description: |
518+
Used when customer would like to encrypt data at rest. The customer-provided key will be used
519+
to encrypt the Subject, SubjectAltNames and PEM-encoded certificate fields. When unspecified,
520+
customer data will remain unencrypted.
521+
immutable: true
522+
properties:
523+
- name: 'cloudKmsKey'
524+
type: String
525+
description: |
526+
The resource name for an existing Cloud KMS key in the format
527+
`projects/*/locations/*/keyRings/*/cryptoKeys/*`.
528+
immutable: true

mmv1/templates/terraform/examples/privateca_capool_all_fields.tf.tmpl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
1+
resource "google_project_service_identity" "privateca_sa" {
2+
service = "privateca.googleapis.com"
3+
}
4+
5+
resource "google_kms_crypto_key_iam_member" "privateca_sa_keyuser_encrypterdecrypter" {
6+
crypto_key_id = "{{index $.Vars "cloud_kms_key"}}"
7+
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
8+
member = google_project_service_identity.privateca_sa.member
9+
}
10+
111
resource "google_privateca_ca_pool" "{{$.PrimaryResourceId}}" {
212
name = "{{index $.Vars "name"}}"
3-
location = "us-central1"
13+
location = "{{index $.Vars "pool_location"}}"
414
tier = "ENTERPRISE"
515
publishing_options {
616
publish_ca_cert = false
@@ -10,6 +20,9 @@ resource "google_privateca_ca_pool" "{{$.PrimaryResourceId}}" {
1020
labels = {
1121
foo = "bar"
1222
}
23+
encryption_spec {
24+
cloud_kms_key = "{{index $.Vars "cloud_kms_key"}}"
25+
}
1326
issuance_policy {
1427
allowed_key_types {
1528
elliptic_curve {
@@ -87,4 +100,8 @@ resource "google_privateca_ca_pool" "{{$.PrimaryResourceId}}" {
87100
}
88101
}
89102
}
103+
104+
depends_on = [
105+
google_kms_crypto_key_iam_member.privateca_sa_keyuser_encrypterdecrypter,
106+
]
90107
}

0 commit comments

Comments
 (0)