Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions solutions/security-enforced/README.md

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions solutions/security-enforced/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#######################################################################################################################
# Wrapper around fully-configurable variation
#######################################################################################################################

module "vpc_da" {
source = "../fully-configurable"
ibmcloud_api_key = var.ibmcloud_api_key
existing_resource_group_name = var.existing_resource_group_name
prefix = var.prefix
provider_visibility = "private"
vpc_name = var.vpc_name
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
subnets = var.subnets
network_acls = var.network_acls
security_group_rules = var.security_group_rules
clean_default_security_group_acl = var.clean_default_security_group_acl
address_prefixes = var.address_prefixes
routes = var.routes
enable_vpc_flow_logs = var.enable_vpc_flow_logs
skip_vpc_cos_iam_auth_policy = var.skip_vpc_cos_iam_auth_policy
existing_cos_instance_crn = var.existing_cos_instance_crn
flow_logs_cos_bucket_name = var.flow_logs_cos_bucket_name
kms_encryption_enabled_bucket = true
skip_cos_kms_iam_auth_policy = var.skip_cos_kms_iam_auth_policy
management_endpoint_type_for_bucket = "private"
cos_bucket_class = var.cos_bucket_class
add_bucket_name_suffix = var.add_bucket_name_suffix
flow_logs_cos_bucket_archive_days = var.flow_logs_cos_bucket_archive_days
flow_logs_cos_bucket_archive_type = var.flow_logs_cos_bucket_archive_type
flow_logs_cos_bucket_expire_days = var.flow_logs_cos_bucket_expire_days
flow_logs_cos_bucket_enable_object_versioning = var.flow_logs_cos_bucket_enable_object_versioning
flow_logs_cos_bucket_enable_retention = var.flow_logs_cos_bucket_enable_retention
flow_logs_cos_bucket_default_retention_days = var.flow_logs_cos_bucket_default_retention_days
flow_logs_cos_bucket_maximum_retention_days = var.flow_logs_cos_bucket_maximum_retention_days
flow_logs_cos_bucket_minimum_retention_days = var.flow_logs_cos_bucket_minimum_retention_days
flow_logs_cos_bucket_enable_permanent_retention = var.flow_logs_cos_bucket_enable_permanent_retention
existing_flow_logs_bucket_kms_key_crn = var.existing_flow_logs_bucket_kms_key_crn
existing_kms_instance_crn = var.existing_kms_instance_crn
kms_endpoint_type = "private"
kms_key_ring_name = var.kms_key_ring_name
kms_key_name = var.kms_key_name
ibmcloud_kms_api_key = var.ibmcloud_kms_api_key
default_network_acl_name = var.default_network_acl_name
default_security_group_name = var.default_security_group_name
default_routing_table_name = var.default_routing_table_name
vpn_gateways = var.vpn_gateways
vpe_gateway_cloud_services = var.vpe_gateway_cloud_services
vpe_gateway_cloud_service_by_crn = var.vpe_gateway_cloud_service_by_crn
vpe_gateway_service_endpoints = "private"
vpe_gateway_security_group_ids = var.vpe_gateway_security_group_ids
vpe_gateway_reserved_ips = var.vpe_gateway_reserved_ips
}
111 changes: 111 additions & 0 deletions solutions/security-enforced/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
##############################################################################
# VPC
##############################################################################

output "vpc_name" {
description = "Name of VPC created"
value = module.vpc.vpc_name
}

output "vpc_id" {
description = "ID of VPC created"
value = module.vpc.vpc_id
}

output "vpc_crn" {
description = "CRN of VPC created"
value = module.vpc.vpc_crn
}

##############################################################################
# Public Gateways
##############################################################################

output "public_gateways" {
description = "Map of public gateways by zone"
value = module.vpc.public_gateways
}

##############################################################################
# VPC flow logs
##############################################################################

output "vpc_flow_logs" {
description = "Details of VPC flow logs collector"
value = module.vpc.vpc_flow_logs
}

##############################################################################
# Network ACLs
##############################################################################

output "network_acls" {
description = "List of shortnames and IDs of network ACLs"
value = module.vpc.network_acls
}

##############################################################################
# Subnet Outputs
##############################################################################

output "subnet_ids" {
description = "The IDs of the subnets"
value = module.vpc.subnet_ids
}

output "private_path_subnet_id" {
description = "The IDs of the subnets"
value = length(module.vpc.subnet_ids) > 0 ? module.vpc.subnet_ids[0] : null
}

output "subnet_detail_list" {
description = "A list of subnets containing names, CIDR blocks, and zones."
value = module.vpc.subnet_detail_list
}

output "subnet_zone_list" {
description = "A list containing subnet IDs and subnet zones"
value = module.vpc.subnet_zone_list
}

output "subnet_detail_map" {
description = "A map of subnets containing IDs, CIDR blocks, and zones"
value = module.vpc.subnet_detail_map
}

##############################################################################
# VPN Gateways Outputs
##############################################################################

output "vpn_gateways_name" {
description = "List of names of VPN gateways."
value = module.vpc.vpn_gateways_name
}

output "vpn_gateways_data" {
description = "Details of VPN gateways data"
value = module.vpc.vpn_gateways_data
}

##############################################################################
# VPE Outputs
##############################################################################

output "vpe_ips" {
description = "The reserved IPs for endpoint gateways."
value = module.vpe_gateway.vpe_ips
}

output "vpe_crn" {
description = "The CRN of the endpoint gateway"
value = module.vpe_gateway.crn
}

##############################################################################
# Security Group Details
##############################################################################

output "security_group_details" {
description = "Details of security group."
value = module.vpc.security_group_details
}
1 change: 1 addition & 0 deletions solutions/security-enforced/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Explicit provider config not required here as provider config in fully-configurable is used
Loading