Fix failin e2e tests for Cloud Run CMEK
* create a fixture adding IAM grants to Cloud Run service agent * add to README.md information about required grant Decided to add ths as a fixture though it may not be reused so: * grant is not polluting the example * grant is fairly easy discoverable from README.md * setup_module is not burdened with additional grant which is used only for this example
This commit is contained in:
committed by
Wiktor Niesiobędzki
parent
f487b27aa9
commit
da4e5acd46
@@ -188,7 +188,7 @@ module "cloud_run" {
|
|||||||
|
|
||||||
### Using Customer-Managed Encryption Key
|
### Using Customer-Managed Encryption Key
|
||||||
|
|
||||||
Deploy a Cloud Run service with environment variables encrypted using a Customer-Managed Encryption Key. Ensure you specify the encryption_key with the full resource identifier of your Cloud KMS CryptoKey. This setup adds an extra layer of security by utilizing your own encryption keys.
|
Deploy a Cloud Run service with environment variables encrypted using a Customer-Managed Encryption Key (CMEK). Ensure you specify the encryption_key with the full resource identifier of your Cloud KMS CryptoKey and that Cloud Run Service agent (`service-<PROJECT_NUMBER>@serverless-robot-prod.iam.gserviceaccount.com`) has permission to use the key, for example `roles/cloudkms.cryptoKeyEncrypterDecrypter` IAM role. This setup adds an extra layer of security by utilizing your own encryption keys.
|
||||||
|
|
||||||
```hcl
|
```hcl
|
||||||
module "cloud_run" {
|
module "cloud_run" {
|
||||||
@@ -203,7 +203,7 @@ module "cloud_run" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# tftest modules=1 resources=1 e2e
|
# tftest modules=1 resources=2 fixtures=fixtures/cloud-run-kms-iam-grant.tf e2e
|
||||||
```
|
```
|
||||||
|
|
||||||
### Eventarc triggers
|
### Eventarc triggers
|
||||||
@@ -424,6 +424,7 @@ module "cloud_run" {
|
|||||||
|
|
||||||
## Fixtures
|
## Fixtures
|
||||||
|
|
||||||
|
- [cloud-run-kms-iam-grant.tf](../../tests/fixtures/cloud-run-kms-iam-grant.tf)
|
||||||
- [iam-service-account.tf](../../tests/fixtures/iam-service-account.tf)
|
- [iam-service-account.tf](../../tests/fixtures/iam-service-account.tf)
|
||||||
- [pubsub.tf](../../tests/fixtures/pubsub.tf)
|
- [pubsub.tf](../../tests/fixtures/pubsub.tf)
|
||||||
- [secret-credentials.tf](../../tests/fixtures/secret-credentials.tf)
|
- [secret-credentials.tf](../../tests/fixtures/secret-credentials.tf)
|
||||||
|
|||||||
23
tests/fixtures/cloud-run-kms-iam-grant.tf
vendored
Normal file
23
tests/fixtures/cloud-run-kms-iam-grant.tf
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2024 Google LLC
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
resource "google_kms_crypto_key_iam_binding" "encrypt_decrypt" {
|
||||||
|
crypto_key_id = var.kms_key.id
|
||||||
|
members = [
|
||||||
|
"serviceAccount:service-${var.project_number}@serverless-robot-prod.iam.gserviceaccount.com"
|
||||||
|
]
|
||||||
|
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user