Skip to content

Latest commit

 

History

History
57 lines (49 loc) · 11.8 KB

File metadata and controls

57 lines (49 loc) · 11.8 KB

3-networks-hub-and-spoke/shared

The purpose of this step is to set up the global DNS Hub that will be used by all environments. This step will also create the Network Hubs that are part of the Hub and Spoke setup.

Prerequisites

  1. 0-bootstrap executed successfully.
  2. 1-org executed successfully.

Inputs

Name Description Type Default Required
access_context_manager_policy_id The id of the default Access Context Manager policy created in step 1-org. Can be obtained by running gcloud access-context-manager policies list --organization YOUR_ORGANIZATION_ID --format="value(name)". number n/a yes
base_hub_dns_enable_inbound_forwarding Toggle inbound query forwarding for Base Hub VPC DNS. bool true no
base_hub_dns_enable_logging Toggle DNS logging for Base Hub VPC DNS. bool true no
base_hub_firewall_enable_logging Toggle firewall logging for VPC Firewalls in Base Hub VPC. bool true no
base_hub_nat_bgp_asn BGP ASN for first NAT cloud routes in Base Hub. number 64514 no
base_hub_nat_enabled Toggle creation of NAT cloud router in Base Hub. bool false no
base_hub_nat_num_addresses_region1 Number of external IPs to reserve for first Cloud NAT in Base Hub. number 2 no
base_hub_nat_num_addresses_region2 Number of external IPs to reserve for second Cloud NAT in Base Hub. number 2 no
base_hub_windows_activation_enabled Enable Windows license activation for Windows workloads in Base Hub bool false no
base_vpc_flow_logs enable_logging: set to true to enable VPC flow logging for the subnetworks.
aggregation_interval: Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Possible values are: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN, INTERVAL_15_MIN.
flow_sampling: Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. The value of the field must be in [0, 1].
metadata: Configures whether metadata fields should be added to the reported VPC flow logs. Possible values are: EXCLUDE_ALL_METADATA, INCLUDE_ALL_METADATA, CUSTOM_METADATA.
metadata_fields: ist of metadata fields that should be added to reported logs. Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA.
filter_expr: Export filter used to define which VPC flow logs should be logged, as as CEL expression. See https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.
object({
enable_logging = optional(string, "true")
aggregation_interval = optional(string, "INTERVAL_5_SEC")
flow_sampling = optional(string, "0.5")
metadata = optional(string, "INCLUDE_ALL_METADATA")
metadata_fields = optional(list(string), [])
filter_expr = optional(string, "true")
})
{} no
bgp_asn_dns BGP Autonomous System Number (ASN). number 64667 no
custom_restricted_services List of custom services to be protected by the VPC-SC perimeter. If empty, all supported services (https://cloud.google.com/vpc-service-controls/docs/supported-products) will be protected. list(string) [] no
dns_enable_logging Toggle DNS logging for VPC DNS. bool true no
dns_vpc_flow_logs enable_logging: set to true to enable VPC flow logging for the subnetworks.
aggregation_interval: Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Possible values are: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN, INTERVAL_15_MIN.
flow_sampling: Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. The value of the field must be in [0, 1].
metadata: Configures whether metadata fields should be added to the reported VPC flow logs. Possible values are: EXCLUDE_ALL_METADATA, INCLUDE_ALL_METADATA, CUSTOM_METADATA.
metadata_fields: ist of metadata fields that should be added to reported logs. Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA.
filter_expr: Export filter used to define which VPC flow logs should be logged, as as CEL expression. See https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.
object({
enable_logging = optional(string, "true")
aggregation_interval = optional(string, "INTERVAL_5_SEC")
flow_sampling = optional(string, "0.5")
metadata = optional(string, "INCLUDE_ALL_METADATA")
metadata_fields = optional(list(string), [])
filter_expr = optional(string, "true")
})
{} no
domain The DNS name of forwarding managed zone, for instance 'example.com'. Must end with a period. string n/a yes
egress_policies A list of all egress policies, each list object has a from and to value that describes egress_from and egress_to.

Example: [{ from={ identities=[], identity_type="ID_TYPE" }, to={ resources=[], operations={ "SRV_NAME"={ OP_TYPE=[] }}}}]

Valid Values:
ID_TYPE = null or IDENTITY_TYPE_UNSPECIFIED (only allow indentities from list); ANY_IDENTITY; ANY_USER_ACCOUNT; ANY_SERVICE_ACCOUNT
SRV_NAME = "*" (allow all services) or Specific Services
OP_TYPE = methods or permissions
list(object({
from = any
to = any
}))
[] no
enable_dedicated_interconnect Enable Dedicated Interconnect in the environment. bool false no
enable_hub_and_spoke_transitivity Enable transitivity via gateway VMs on Hub-and-Spoke architecture. bool false no
enable_partner_interconnect Enable Partner Interconnect in the environment. bool false no
firewall_policies_enable_logging Toggle hierarchical firewall logging. bool true no
ingress_policies A list of all ingress policies, each list object has a from and to value that describes ingress_from and ingress_to.

Example: [{ from={ sources={ resources=[], access_levels=[] }, identities=[], identity_type="ID_TYPE" }, to={ resources=[], operations={ "SRV_NAME"={ OP_TYPE=[] }}}}]

Valid Values:
ID_TYPE = null or IDENTITY_TYPE_UNSPECIFIED (only allow indentities from list); ANY_IDENTITY; ANY_USER_ACCOUNT; ANY_SERVICE_ACCOUNT
SRV_NAME = "*" (allow all services) or Specific Services
OP_TYPE = methods or permissions
list(object({
from = any
to = any
}))
[] no
perimeter_additional_members The list of additional members to be added to the perimeter access level members list. To be able to see the resources protected by the VPC Service Controls in the restricted perimeter, add your user in this list. Entries must be in the standard GCP form: user:email@example.com or serviceAccount:my-service-account@example.com. list(string) n/a yes
preactivate_partner_interconnect Preactivate Partner Interconnect VLAN attachment in the environment. bool false no
remote_state_bucket Backend bucket to load Terraform Remote State Data from previous steps. string n/a yes
restricted_hub_dns_enable_inbound_forwarding Toggle inbound query forwarding for Restricted Hub VPC DNS. bool true no
restricted_hub_dns_enable_logging Toggle DNS logging for Restricted Hub VPC DNS. bool true no
restricted_hub_firewall_enable_logging Toggle firewall logging for VPC Firewalls in Restricted Hub VPC. bool true no
restricted_hub_nat_bgp_asn BGP ASN for first NAT cloud routes in Restricted Hub. number 64514 no
restricted_hub_nat_enabled Toggle creation of NAT cloud router in Restricted Hub. bool false no
restricted_hub_nat_num_addresses_region1 Number of external IPs to reserve for first Cloud NAT in Restricted Hub. number 2 no
restricted_hub_nat_num_addresses_region2 Number of external IPs to reserve for second Cloud NAT in Restricted Hub. number 2 no
restricted_hub_windows_activation_enabled Enable Windows license activation for Windows workloads in Restricted Hub. bool false no
restricted_vpc_flow_logs enable_logging: set to true to enable VPC flow logging for the subnetworks.
aggregation_interval: Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Possible values are: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN, INTERVAL_15_MIN.
flow_sampling: Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. The value of the field must be in [0, 1].
metadata: Configures whether metadata fields should be added to the reported VPC flow logs. Possible values are: EXCLUDE_ALL_METADATA, INCLUDE_ALL_METADATA, CUSTOM_METADATA.
metadata_fields: ist of metadata fields that should be added to reported logs. Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA.
filter_expr: Export filter used to define which VPC flow logs should be logged, as as CEL expression. See https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.
object({
enable_logging = optional(string, "true")
aggregation_interval = optional(string, "INTERVAL_5_SEC")
flow_sampling = optional(string, "0.5")
metadata = optional(string, "INCLUDE_ALL_METADATA")
metadata_fields = optional(list(string), [])
filter_expr = optional(string, "true")
})
{} no
target_name_server_addresses List of IPv4 address of target name servers for the forwarding zone configuration. See https://cloud.google.com/dns/docs/overview#dns-forwarding-zones for details on target name servers in the context of Cloud DNS forwarding zones. list(map(any)) n/a yes
tfc_org_name Name of the TFC organization string "" no

Outputs

Name Description
dns_hub_project_id The DNS hub project ID