ekm-over-vpc-onboarding/variables.tf (165 lines of code) (raw):
/**
* 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.
*/
variable "kms_project_name" {
type = string
nullable = false
description = "Name of the KMS project you would like to create"
}
variable "organization_id" {
type = string
nullable = false
description = "The ID of the existing GCP organization"
}
variable "kms_project_id" {
type = string
default = ""
nullable = false
description = "ID of the KMS project you would like to create"
}
variable "vpc_project_name" {
type = string
default = ""
description = "Name of the VPC project, default to same as KMS"
}
variable "vpc_project_id" {
type = string
default = ""
description = "ID of the VPC project, default to same as KMS"
}
variable "billing_account" {
type = string
default = ""
description = "Billing Account for the customer"
}
variable "location" {
type = string
default = "us-central1"
nullable = false
description = "Location where resources will be created"
}
variable "project_creator_member_email" {
type = string
default = ""
nullable = true
description = "Email of the user that will be granted permissions to create resources under the projects"
}
variable "folder_id" {
type = string
default = ""
description = "(Optional) The ID of the GCP folder to create the projects"
}
variable "create_kms_project" {
type = bool
default = true
description = "If true, a project for KMS will be created automatically"
}
variable "create_vpc_project" {
type = bool
default = true
description = "If true, a project for VPC will be created automatically"
}
variable "random_project_suffix" {
type = bool
default = false
description = "If true, a suffix of 4 random characters will be appended to project names. Only applies when create project flag is true."
}
variable "subnet_ip_cidr_range" {
type = string
default = "10.2.0.0/16"
nullable = false
description = "ip_cidr_range for subnet resource"
}
variable "external_key_manager_ip" {
type = string
default = "10.2.0.48"
nullable = false
description = "Private IP address of the external key manager or ip address for the load balancer pointing to the external key manager"
}
variable "external_key_manager_port" {
type = string
default = "443"
nullable = false
description = "Port of the external key manager or port for the load balancer pointing to the external key manager"
}
variable "external_provider_hostname" {
type = string
nullable = false
description = "Hostname for external key manager provider (ie. private-ekm.example.endpoints.cloud.goog)"
}
variable "external_provider_raw_der" {
type = string
nullable = false
description = "External key provider server certificate in base64 format"
}
variable "crypto_space_path" {
type = string
default = ""
description = "External key provider crypto space path (ie. v0/longlived/a1-example)"
}
variable "network_name" {
type = string
default = "vpc-network-name"
description = "Name of the Network resource"
}
variable "servicedirectory_name" {
type = string
default = "ekm-service-directory"
description = "Service Directory resource name"
}
variable "kms_name_prefix" {
type = string
default = "kms-vpc"
description = "Key management resources name prefix"
}
variable "ekmconnection_name" {
type = string
default = "ekmconnection"
description = "Name of the ekmconnection resource"
}
variable "key_management_mode" {
type = string
default = "MANUAL"
description = "Key management mode. Possible values: MANUAL and CLOUD_KMS. Defaults to MANUAL"
}
variable "ekm_connection_key_path" {
type = string
description = "Each Cloud EKM key version contains either a key URI or a key path. This is a unique identifier for the external key material that Cloud EKM uses when requesting cryptographic operations using the key. When key_management_mode is CLOUD_KMS, this variable will be equals to crypto_space_path"
}
variable "access_context_manager_policy_id" {
type = string
default = ""
description = "Access context manager access policy ID. Used only when enable_vpc_sc flag is true. If empty, a new access context manager access policy will be created."
}
variable "enable_vpc_sc" {
type = bool
default = true
description = "VPC Service Controls define a security perimeter around Google Cloud resources to constrain data within a VPC and mitigate data exfiltration risks. VPC SC structure will be created only when both create project flags (create_kms_project and create_vpc_project) are true."
}
variable "access_level_members_name" {
type = string
default = "ekm_vpc_sc_access_level_member"
description = "Description of the AccessLevel and its use. Does not affect behavior."
}
variable "access_level_members" {
type = list(string)
default = []
description = "Condition - An allowed list of members (users, service accounts). The signed-in identity originating the request must be a part of one of the provided members. If not specified, a request may come from any user (logged in/not logged in, etc.). Formats: user:{emailid}, serviceAccount:{emailid}."
}
variable "perimeter_name" {
type = string
default = "ekm_perimeter"
description = "Name of the perimeter. Should be one unified string. Must only be letters, numbers and underscores."
}