|
|
|
@ -10,6 +10,7 @@ When using an existing keyring be mindful about applying IAM bindings, as all bi
|
|
|
|
|
- [Using an existing keyring](#using-an-existing-keyring)
|
|
|
|
|
- [Keyring creation and crypto key rotation and IAM roles](#keyring-creation-and-crypto-key-rotation-and-iam-roles)
|
|
|
|
|
- [Crypto key purpose](#crypto-key-purpose)
|
|
|
|
|
- [Import job](#import-job)
|
|
|
|
|
- [Variables](#variables)
|
|
|
|
|
- [Outputs](#outputs)
|
|
|
|
|
<!-- END TOC -->
|
|
|
|
@ -94,28 +95,49 @@ module "kms" {
|
|
|
|
|
}
|
|
|
|
|
# tftest modules=1 resources=2 inventory=purpose.yaml
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Import job
|
|
|
|
|
|
|
|
|
|
```hcl
|
|
|
|
|
module "kms" {
|
|
|
|
|
source = "./fabric/modules/kms"
|
|
|
|
|
project_id = "my-project"
|
|
|
|
|
keyring = {
|
|
|
|
|
location = "europe-west1"
|
|
|
|
|
name = "test"
|
|
|
|
|
}
|
|
|
|
|
import_job = {
|
|
|
|
|
id = "my-import-job"
|
|
|
|
|
import_method = "RSA_OAEP_3072_SHA1_AES_256"
|
|
|
|
|
protection_level = "SOFTWARE"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
# tftest modules=1 resources=2 inventory=import-job.yaml
|
|
|
|
|
```
|
|
|
|
|
<!-- BEGIN TFDOC -->
|
|
|
|
|
## Variables
|
|
|
|
|
|
|
|
|
|
| name | description | type | required | default |
|
|
|
|
|
|---|---|:---:|:---:|:---:|
|
|
|
|
|
| [keyring](variables.tf#L54) | Keyring attributes. | <code title="object({ location = string name = string })">object({…})</code> | ✓ | |
|
|
|
|
|
| [project_id](variables.tf#L103) | Project id where the keyring will be created. | <code>string</code> | ✓ | |
|
|
|
|
|
| [keyring](variables.tf#L64) | Keyring attributes. | <code title="object({ location = string name = string })">object({…})</code> | ✓ | |
|
|
|
|
|
| [project_id](variables.tf#L113) | Project id where the keyring will be created. | <code>string</code> | ✓ | |
|
|
|
|
|
| [iam](variables.tf#L17) | Keyring IAM bindings in {ROLE => [MEMBERS]} format. | <code>map(list(string))</code> | | <code>{}</code> |
|
|
|
|
|
| [iam_bindings](variables.tf#L24) | Authoritative IAM bindings in {KEY => {role = ROLE, members = [], condition = {}}}. Keys are arbitrary. | <code title="map(object({ members = list(string) role = string condition = optional(object({ expression = string title = string description = optional(string) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
|
|
|
|
| [iam_bindings_additive](variables.tf#L39) | Keyring individual additive IAM bindings. Keys are arbitrary. | <code title="map(object({ member = string role = string condition = optional(object({ expression = string title = string description = optional(string) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
|
|
|
|
| [keyring_create](variables.tf#L62) | Set to false to manage keys and IAM bindings in an existing keyring. | <code>bool</code> | | <code>true</code> |
|
|
|
|
|
| [keys](variables.tf#L68) | Key names and base attributes. Set attributes to null if not needed. | <code title="map(object({ rotation_period = optional(string) labels = optional(map(string)) purpose = optional(string, "ENCRYPT_DECRYPT") skip_initial_version_creation = optional(bool, false) version_template = optional(object({ algorithm = string protection_level = optional(string, "SOFTWARE") })) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ members = list(string) condition = optional(object({ expression = string title = string description = optional(string) })) })), {}) iam_bindings_additive = optional(map(object({ member = string role = string condition = optional(object({ expression = string title = string description = optional(string) })) })), {}) }))">map(object({…}))</code> | | <code>{}</code> |
|
|
|
|
|
| [tag_bindings](variables.tf#L108) | Tag bindings for this keyring, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
|
|
|
|
| [import_job](variables.tf#L54) | Keyring import job attributes. | <code title="object({ id = string import_method = string protection_level = string })">object({…})</code> | | <code>null</code> |
|
|
|
|
|
| [keyring_create](variables.tf#L72) | Set to false to manage keys and IAM bindings in an existing keyring. | <code>bool</code> | | <code>true</code> |
|
|
|
|
|
| [keys](variables.tf#L78) | Key names and base attributes. Set attributes to null if not needed. | <code title="map(object({ rotation_period = optional(string) labels = optional(map(string)) purpose = optional(string, "ENCRYPT_DECRYPT") skip_initial_version_creation = optional(bool, false) version_template = optional(object({ algorithm = string protection_level = optional(string, "SOFTWARE") })) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ members = list(string) condition = optional(object({ expression = string title = string description = optional(string) })) })), {}) iam_bindings_additive = optional(map(object({ member = string role = string condition = optional(object({ expression = string title = string description = optional(string) })) })), {}) }))">map(object({…}))</code> | | <code>{}</code> |
|
|
|
|
|
| [tag_bindings](variables.tf#L118) | Tag bindings for this keyring, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
|
|
|
|
|
|
|
|
|
## Outputs
|
|
|
|
|
|
|
|
|
|
| name | description | sensitive |
|
|
|
|
|
|---|---|:---:|
|
|
|
|
|
| [id](outputs.tf#L17) | Fully qualified keyring id. | |
|
|
|
|
|
| [key_ids](outputs.tf#L26) | Fully qualified key ids. | |
|
|
|
|
|
| [keyring](outputs.tf#L38) | Keyring resource. | |
|
|
|
|
|
| [keys](outputs.tf#L47) | Key resources. | |
|
|
|
|
|
| [location](outputs.tf#L56) | Keyring location. | |
|
|
|
|
|
| [name](outputs.tf#L65) | Keyring name. | |
|
|
|
|
|
| [import_job](outputs.tf#L26) | Keyring import job resources. | |
|
|
|
|
|
| [key_ids](outputs.tf#L35) | Fully qualified key ids. | |
|
|
|
|
|
| [keyring](outputs.tf#L47) | Keyring resource. | |
|
|
|
|
|
| [keys](outputs.tf#L56) | Key resources. | |
|
|
|
|
|
| [location](outputs.tf#L65) | Keyring location. | |
|
|
|
|
|
| [name](outputs.tf#L74) | Keyring name. | |
|
|
|
|
|
<!-- END TFDOC -->
|
|
|
|
|