-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: Restricting autokey module to autokey configuration use case #163
base: master
Are you sure you want to change the base?
Conversation
/gcbrun |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for my own understanding, why is it better to keep google_kms_key_handle
resource outside the terraform-google-kms
module scope?
@@ -0,0 +1,25 @@ | |||
# Autokey Example |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/autokey-setup
and /keyhandle-setup
examples are not being executed by CI because of the current folder structure (examples/autokey/autokey_...
).
The blueprint-test framework expect the examples to be directly behind examples/
folder. (At least using default configs. It's possible to override that with some changes in test files. Here's a reference.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for the info :)
moved the folders inside /examples directly and gave them relevant name.
Please take a look
@@ -0,0 +1,25 @@ | |||
# Autokey Example | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Importing Autokey Key Handles Guidance will be impacted with this PR. The migrating instructions provided there won't work anymore.
Since the changes in this PR are totally removing the Key Handle creation responsibility from terraform-google-kms
module, I would recommend deleting that guidance file, since it won't make sense to provide an importing path to a resource that the KMS terraform module won't be creating/managing anymore. (If we delete that, we should also delete the scripts folder)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sense, keeping this comment open till I have approval from all of you reviewers.
@@ -0,0 +1,25 @@ | |||
# Autokey Example | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to update the existing autokey tests in order to make CI test the changes implemented in this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know how to run the test locally to verify its working?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically, you need to run a terraform apply
in test/setup
, and then go test -v
in test/integration/autokey_example
.
Here's the blueprint-test doc part explaining with more details!
KMS has two personas
key admin should only focus on key management policies and setups AND shouldnt have access to kms keys created. The keyhandle creation and access to keys is for second persona (key users) thats why we are separating it out |
If the only motivation to cut Suggestion: we could turn To be more clear, the module's usage would be something like that: # Key admins usage example
module "autokey" {
source = "terraform-google-modules/kms/google//modules/autokey"
version = "3.1.0"
project_id = "project-bar"
autokey_configuration_folder = "123456789"
}
}
# Key users usage example
module "autokey" {
source = "terraform-google-modules/kms/google//modules/autokey"
version = "3.1.0"
autokey_handles = {
storage_bucket = {
name = "bucket-key-handle",
project = "project-foo",
resource_type_selector = "storage.googleapis.com/Bucket",
location = "us-central1"
},
compute_disk = {
name = "disk-key-handle",
project = "project-foo2",
resource_type_selector = "compute.googleapis.com/Disk",
location = "us-central1"
}
# It would be possible to create multiple Key Handles here, if desired.
}
} Some benefits of using the KMS module approach:
Let me know what you think about that! Thanks! |
@@ -0,0 +1,50 @@ | |||
/** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This example won't be successfully applied in CI since it's missing the Autokey configuration resource in this file.
For blueprint-test, each example is applied individually and must be successful applied in order to pass.
/gcbrun |
In this PR,
2.1 for enabling autokey config on a project
2.2 for creating a bucket using autokey