The Managed SCCA Broker Landing Zone is designed to deploy an environment that supports Secure Cloud Computing Architecture (SCCA) standards for the US Department of Defense (DOD). This configuration guide will detail the required and available configurations needed to deploy a Managed SCCA LZ on Oracle Cloud Infrastructure which is a requirement for DOD customers in the OC3 realm. There are options of deploying a landing zone in either a single tenancy or multiple landing zones in a multitenancy configuration that supports a broker managed operational model.
This section provides step by step deployment scenarios of the Managed SCCA LZ feature on parent and child tenancies. Please follow this ordered sequence of steps:
Single Tenancy Deployment
- Deploy Managed SCCA LZ on Single Tenancy.
Multitenancy Deployment
- Deploy the Parent Baseline Template.
- Deploy the Child Baseline Template.
- Deploy the Parent Service Template.
- Deploy the Child Service Template.
Variable Name | Description | Type | Default |
---|---|---|---|
resource_label | Parent Resource Label | string |
"" |
enable_domain_replication | Enable to replicate domain to secondary region | bool |
false |
identity_domain_license_type | The license type of the identity domain(free/premium) | string |
"premium" |
realm_key | 1 for OC1 (commercial) and 3 for OC3 (government) | string |
"3" |
home_region_deployment | Set to true if deploying in home region; set to false for backup region deployment | bool |
true |
enable_logging_compartment | Set to true to enable logging compartment, to false if you already had existing buckets in another tenancy. | bool |
true |
central_vault_type | The type of the central vault: DEFAULT or VIRTUAL_PRIVATE | string |
"DEFAULT" |
enable_vault_replica | Only support for VIRTUAL_PRIVATE vault type | bool |
false |
enable_cloud_guard | To enable Cloud Guard service | bool |
false |
bastion_client_cidr_block_allow_list | Client CIDR block allow list of bastion | string |
["10.0.0.0/0"] |
enable_bastion | To enable Bastion service | bool |
false |
vdms_critical_topic_endpoints | List of email addresses for VDMS Critical notifications | list |
[] |
vdms_warning_topic_endpoints | List of email addresses for VDMS Warning notifications | list |
[] |
vdss_critical_topic_endpoints | List of email addresses for VDSS Critical notifications | list |
[] |
vdss_warning_topic_endpoints | List of email addresses for VDSS Warning notifications | list |
[] |
enable_vdss_warning_alarm | Enable warning alarms in VDSS compartment | bool |
false |
enable_vdss_critical_alarm | Enable critical alarms in VDSS compartment | bool |
false |
enable_vdms_warning_alarm | Enable warning alarms in VDMS compartment | bool |
false |
enable_vdms_critical_alarm | Enable critical alarms in VDMS compartment | bool |
false |
vdss_vcn_cidr_block | VDSS VCN CIDR block | string |
["192.168.0.0/24"] |
lb_subnet_cidr_block | Load Balancer subnet CIDR block | string |
["192.168.0.128/25"] |
lb_subnet_name | Load Balancer subnet name | string |
"OCI-SCCA-PARENT-LZ-VDSS-LB-SUBNET" |
lb_dns_label | Load Balancer DNS label | string |
"lbsubnet" |
firewall_subnet_name | Network firewall subnet name | string |
"OCI-SCCA-PARENT-LZ-VDSS-FW-SUBNET" |
firewall_subnet_cidr_block | Network firewall subnet CIDR block | string |
"15.1.2.0/24" |
firewall_dns_label | Network firewall DNS label | string |
"firewallsubnet" |
vdms_vcn_cidr_block | VDMS VCN CIDR block | string |
"16.1.0.0/16" |
vdms_subnet_cidr_block | VDMS VCN subnet CIDR block | string |
"16.1.1.0/24" |
vdms_dns_label | VDMS DNS label | string |
"vdmssubnet" |
vdms_subnet_name | VDMS subnet name | string |
"OCI-SCCA-PARENT-LZ-VDMS-SUBNET" |
enable_vtap | Enable VTAP | bool |
true |
enable_network_firewall | Enable network firewall | bool |
true |
enable_waf | Enable WAF | bool |
true |
activate_service_connectors | Activate Service Connector after deploying | bool |
true |
Variable Name | Description | Type | Expected Value |
---|---|---|---|
enable_service_deployment | Service Deployment | bool |
false |
enable_vcn_flow_logs | Enable VCN flow logs | bool |
false |
Variable Name | Description | Type | Expected Value |
---|---|---|---|
enable_service_deployment | Service Deployment | bool |
true |
enable_vcn_flow_logs | Enable VCN flow logs if needed | bool |
true |
nfw_ip_ocid | Network firewall forwarding IP OCID | string |
"OCID Value" |
child_tenancy_ocid | Child tenancy OCID | string |
"OCID Value" |
child_admin_group_ocid | Child administrator group OCID. | string |
"OCID Value" |
child_vdss_vcn_cidr | Child VDSS VCN CIDR block | string |
"" |
child_vdms_vcn_cidr | Child VDMS VCN CIDR block | string |
"" |
Variable Name | Description | Type | Default |
---|---|---|---|
resource_label | Parent Resource Label | string |
"" |
enable_domain_replication | Enable to replicate domain to secondary region | bool |
false |
identity_domain_license_type | The license type of the identity domain(free/premium) | string |
"premium" |
realm_key | 1 for OC1 (commercial) and 3 for OC3 (government). | string |
"3" |
home_region_deployment | Set to true if deploying in home region; set to false for backup region deployment | bool |
true |
enable_logging_compartment | Set to true to enable logging compartment, to false if you already had existing buckets in another tenancy | bool |
true |
central_vault_type | The type of the central vault: DEFAULT or VIRTUAL_PRIVATE | string |
"DEFAULT" |
enable_vault_replica | Only support for VIRTUAL_PRIVATE vault type | bool |
false |
enable_cloud_guard | To enable Cloud Guard service | bool |
false |
bastion_client_cidr_block_allow_list | Client CIDR block allow list of bastion | string |
["10.0.0.0/0"] |
enable_bastion | To enable Bastion service | bool |
false |
vdms_critical_topic_endpoints | List of email addresses for VDMS Critical notifications | list |
[] |
vdms_warning_topic_endpoints | List of email addresses for VDMS Warning notifications | list |
[] |
vdss_critical_topic_endpoints | List of email addresses for VDSS Critical notifications | list |
[] |
vdss_warning_topic_endpoints | List of email addresses for VDSS Warning notifications | list |
[] |
enable_vdss_warning_alarm | Enable warning alarms in VDSS compartment | bool |
false |
enable_vdss_critical_alarm | Enable critical alarms in VDSS compartment | bool |
false |
enable_vdms_warning_alarm | Enable warning alarms in VDMS compartment | bool |
false |
enable_vdms_critical_alarm | Enable critical alarms in VDMS compartment | bool |
false |
vdss_vcn_cidr_block | VDSS VCN CIDR block | string |
"11.1.0.0/16" |
lb_subnet_cidr_block | Load Balancer subnet CIDR block | string |
"11.1.1.0/24" |
lb_subnet_name | Load Balancer subnet name | string |
"OCI-SCCA-CHILD-LZ-VDSS-LB-SUBNET" |
lb_dns_label | Load Balancer DNS label | string |
"lbsubnet" |
firewall_subnet_name | Network firewall subnet name | string |
"OCI-SCCA-CHILD-LZ-VDSS-FW-SUBNET" |
firewall_subnet_cidr_block | Network firewall subnet CIDR block | string |
"11.1.2.0/24" |
firewall_dns_label | Network firewall DNS label | string |
"firewallsubnet" |
vdms_vcn_cidr_block | VDMS VCN CIDR block | string |
"12.1.0.0/16" |
vdms_subnet_cidr_block | VDMS VCN subnet CIDR block | string |
"12.1.1.0/24" |
vdms_dns_label | VDMS DNS Label. | string |
"vdmssubnet" |
vdms_subnet_name | VDMS subnet name | string |
"OCI-SCCA-CHILD-LZ-VDMS-SUBNET" |
enable_vtap | Enable VTAP. | bool |
true |
enable_network_firewall | Enable network firewall | bool |
true |
enable_waf | Enable WAF. | bool |
true |
activate_service_connectors | Activate Service Connector after deploying | bool |
true |
Variable Name | Description | Type | Expected Value |
---|---|---|---|
enable_service_deployment | Service deployment | bool |
false |
enable_vcn_flow_logs | Enable VCN flow logs | bool |
false |
Variable Name | Description | Type | Expected Value |
---|---|---|---|
enable_service_deployment | Service deployment | bool |
true |
enable_vcn_flow_logs | Enable VCN flow logs if needed | bool |
true |
nfw_ip_ocid | Network firewall forwarding IP OCID | string |
"OCID Value" |
parent_namespace | Parent template namespace | string |
"namespace Value" |
scca_parent_logging_compartment_ocid | Parent template Logging compartment OCID | string |
"OCID Value" |
parent_resource_label | Parent template resource label | string |
"" |
To Deploy Managed SCCA LZ Parent on Single Tenancy use this variable.
Variable Name | Description | Type | Expected Value |
---|---|---|---|
deployment_type | Single Tenancy deployment | string |
SINGLE |
See Parent Template for more details on the parent baseline deployment
-
Navigate to the
parent-template/examples
folder. -
Copy the
baseline_terraform.tfvars.template
file to the root of theparent-template
folder. -
Rename the file to
baseline_terraform.tfvars
. -
Customize the
baseline_terraform.tfvars
file with your environment-specific variables. See Baseline Deployment Variables for more details about the variables. -
Run the following commands from the root of this folder:
terraform plan -var-file="baseline_terraform.tfvars" terraform apply -var-file="baseline_terraform.tfvars"
-
When prompted, confirm the changes by typing "yes" and pressing Enter.
-
Ensure that the deployment successfully completes.
See Child Template for more details on the child baseline deployment
-
Navigate to the
child-template/examples
folder. -
Copy the
baseline_terraform.tfvars.template
file to the root of thechild-template
folder. -
Rename the file to
baseline_terraform.tfvars
. -
Customize the
baseline_terraform.tfvars
file with your environment-specific variables. See Baseline Deployment Variables for more details about the variables. -
Run the following commands from the root of
child-template
folder:terraform plan -var-file="baseline_terraform.tfvars" terraform apply -var-file="baseline_terraform.tfvars"
-
When prompted, confirm the changes by typing "yes" and pressing Enter.
-
Ensure that the deployment successfully completes.
See Parent Template for more details on the parent service deployment
-
Navigate to the
parent-template/examples
folder. -
Copy the
service_terraform.tfvars.template
file to the root of theparent-template
folder. -
Rename the file to
service_terraform.tfvars
. -
Customize the
service_terraform.tfvars
file with your environment-specific variables. -
Run the following commands from the root of this folder:
terraform plan -var-file="service_terraform.tfvars" terraform apply -var-file="service_terraform.tfvars"
-
When prompted, confirm the changes by typing "yes" and pressing Enter.
-
Ensure that the deployment successfully completes.
See Child Template for more details on the child service deployment
-
Navigate to the
child-template/examples
folder. -
Copy the
service_terraform.tfvars.template
file to the root of thechild-template
folder. -
Rename the file to
service_terraform.tfvars
. -
Customize the
service_terraform.tfvars
file with your environment-specific variables. -
Run the following commands from the root of the
child-template
folder:terraform plan -var-file="service_terraform.tfvars" terraform apply -var-file="service_terraform.tfvars"
-
When prompted, confirm the changes by typing "yes" and pressing Enter.
-
Ensure that the deployment successfully completes.
- Step 2.2.5.1) Go to folder workload-template/example and copy the terraform.tfvars file.
- Step 2.2.5.2) Go to folder workload-template and paste the terraform.tfvars file.
- Step 2.2.5.3) Update the terraform.tfvars file variables.
- Step 2.2.2.4) Execute the CLI command "terraform init".
- Step 2.2.2.5) Execute the CLI command "terraform plan".
- Step 2.2.2.6) Execute the CLI command "terraform apply".
- Step 2.2.2.7) Make sure the "terraform apply" command gracefully exited from the current shell.
- Step 2.2.6.1) Go to Child Template folder.
- Step 2.2.6.2) Add the Workload VCN CIDR Block in service Template workload_additionalsubnets_cidr_blocks variable.
- Step 2.2.6.3) Execute the CLI command "terraform apply -var-file="service_terraform.tfvars".
- Step 2.2.6.4) Make sure the "terraform apply" command gracefully exited from the current shell.
- Step 2.3.1.1) Go to Folder child-template/examples and copy the single_terraform.tfvars.template file.
- Step 2.3.1.2) Go to Folder child-template and paste the single_terraform.tfvars.template file.
- Step 2.3.1.3) Rename the file name from single_terraform.tfvars.template file to single_terraform.tfvars.
- Step 2.3.1.4) Set the Flag "deployment_type" to "SINGLE" on the single_terraform.tfvars file (Flag Already Set in tfvars file).
- Step 2.3.1.5) Execute the CLI command "terraform init".
- Step 2.3.1.6) Execute the CLI command "terraform plan -var-file="single_terraform.tfvars".
- Step 2.3.1.7) Make Sure the Terraform Plan Command Successfully Exited.
- Step 2.3.1.8) Execute the CLI command "terraform apply -var-file="single_terraform.tfvars".
- Step 2.3.1.9) When prompted enter "yes" and then enter.
- Step 2.3.1.10) Make sure the "terraform apply" command gracefully exited from the current shell.
Certain resources created by the Landing Zone stack can block deletion of the stack. If testing the stack, it is recommended to not enable these services.
- Enabling logging can prevent deletion of the stack as it creates logs in the object storage buckets. To delete, remove the retention rule then delete the contents of the bucket.
- The log analytics log group can also prevent deletion if there are logs present in the group. Navigate to storage in the log analytics administration page and purge the logs to delete the groups.
- The vault can be marked for deletion but not immediately deleted. This also prevents deletion of the containing compartments.
-
Attempting to onboard your tenancy to log analytics more than once will cause errors.
`Error: 409-Conflict, Error on-boarding LogAnalytics for tenant idbktv455emw as it is already on-boarded or in the process of getting on-boarded`
Avoid this error by setting the
onboard_log_analytics
variable tofalse
. -
Object storage namespace can sometimes fail in long running deployments because of Terraform provision order.
Error: Missing required argument with module.backup_bucket.oci_objectstorage_bucket.bucket, on modules/bucket/main.tf line 12, in resource "oci_objectstorage_bucket" "bucket" 12: namespace = data.oci_objectstorage_namespace.ns.namespace The argument "namespace" is required, but no definition was found.
Rerunning the deployment will remove the error.