Skip to content

Latest commit

 

History

History
80 lines (67 loc) · 8.09 KB

File metadata and controls

80 lines (67 loc) · 8.09 KB

Technology Stack

This page maps the lab from source code to Azure services. Use it when you want to understand which tool owns which layer, where the code lives, and which wiki page explains the behavior.

Layered security controls

Stack Summary

Layer Technology Source Primary wiki pages
Infrastructure as code Terraform main.tf, variables.tf, outputs.tf Deploy, variables
Azure provider AzureRM provider versions.tf Module map
Entra provider AzureAD provider versions.tf Entra test users
Generated lab access Random provider main.tf Key Vault secrets
Cloud target Microsoft Azure environments/lab.tfvars Architecture overview
CI/CD GitHub Actions .github/workflows/terraform-checks.yml GitHub Actions reference
Policy as code Open Policy Agent/Rego policies/security.rego Policy posture
Integration tests Terratest and Go tests/security_lab_test.go Final validation

Azure Services

Service Purpose in this lab Terraform owner Scenario
Resource groups Separate hub, test, protected, and security scopes modules/resource-group Architecture overview
Virtual Network Hub-spoke address spaces and subnets modules/networking/vnet Addressing and routing
Network security groups Subnet allow/deny controls modules/networking/nsg Security controls
Route tables Force private spoke traffic through the firewall modules/networking/route-table Firewall east-west routing
Azure Firewall Central inspection and deny evidence modules/firewall Firewall east-west routing
Windows virtual machines Test client and protected IIS target modules/windows-vm Final validation
Azure Key Vault Generated Windows admin password and lab connection values modules/keyvault Key Vault secrets
Log Analytics Firewall and Key Vault diagnostics modules/monitoring Log Analytics detection
Azure Monitor Agent Optional Windows security, PowerShell, Defender operational, heartbeat, and performance telemetry root Terraform resources SOC training platform
Azure Policy Audit-only governance controls modules/policy Policy posture
Budgets Cost alerting modules/budget Cost control
Azure Bastion Optional private admin access modules/bastion Private access with Bastion
Microsoft Entra ID Optional disposable users and groups modules/entra-test-identity Entra test users
Active Directory Domain Services Optional domain controller and identity telemetry modules/windows-vm, root Run Command resources SOC training platform
Conditional Access Optional report-only MFA policy modules/conditional-access Entra test users
Microsoft Defender for Cloud Optional Defender for Servers and MDE integration path modules/defender-for-cloud SOC training platform
Microsoft Sentinel Optional SOC workflow, detections, workbook, watchlists, queries, and playbooks modules/sentinel SOC training platform

Workstation Tools

Tool Required Used for Current run notes
Terraform Yes fmt, init, validate, plan, apply, destroy Tested with 1.12.0
Azure CLI Yes Azure authentication, resource checks, Run Command, REST queries Tested with 2.83.0
PowerShell Yes on Windows runbooks Scripting variables and cleanup Used for the June 7, 2026 validation
TFLint Optional Terraform linting Not installed in the checked workstation
Checkov Optional IaC security scanning Not installed in the checked workstation
Gitleaks Optional Secret scanning Not installed in the checked workstation
Go Optional Terratest execution Installed in the July 7, 2026 SOC run; run tests from tests/

Dependency Flow

Terraform variables
  -> locals and naming
  -> resource groups
  -> VNets, subnets, NSGs, route tables
  -> firewall, policy, monitoring, Key Vault, budget
  -> Windows VMs
  -> optional Sentinel, AMA telemetry, AD DS, Defender paths, playbooks
  -> diagnostics, secrets, outputs
  -> validation commands and KQL

The strongest source of truth is still the Terraform code. When documentation and code disagree, update the wiki after reading variables.tf, locals.tf, and the module that owns the behavior.

See Also