1+ resource "azurerm_virtual_network" "example" {
2+ name = " terragoat-vn-${ var . environment } "
3+ address_space = [" 10.0.0.0/16" ]
4+ location = azurerm_resource_group. example . location
5+ resource_group_name = azurerm_resource_group. example . name
6+ }
7+
8+ resource "azurerm_subnet" "example" {
9+ name = " terragoat-${ var . environment } "
10+ resource_group_name = azurerm_resource_group. example . name
11+ virtual_network_name = azurerm_virtual_network. example . name
12+ address_prefixes = [" 10.0.0.0/24" ]
13+ }
14+
15+ resource "azurerm_network_interface" "ni_linux" {
16+ name = " terragoat-linux-${ var . environment } "
17+ location = azurerm_resource_group. example . location
18+ resource_group_name = azurerm_resource_group. example . name
19+
20+ ip_configuration {
21+ name = " internal"
22+ subnet_id = azurerm_subnet. example . id
23+ private_ip_address_allocation = " Dynamic"
24+ }
25+ }
26+
27+ resource "azurerm_network_interface" "ni_win" {
28+ name = " terragoat-win-${ var . environment } "
29+ location = azurerm_resource_group. example . location
30+ resource_group_name = azurerm_resource_group. example . name
31+
32+ ip_configuration {
33+ name = " internal"
34+ subnet_id = azurerm_subnet. example . id
35+ private_ip_address_allocation = " Dynamic"
36+ }
37+ }
38+
39+ resource azurerm_network_security_group "bad_sg" {
40+ location = var. location
41+ name = " terragoat-${ var . environment } "
42+ resource_group_name = azurerm_resource_group. example . name
43+
44+ security_rule {
45+ access = " Allow"
46+ direction = " Inbound"
47+ name = " AllowSSH"
48+ priority = 200
49+ protocol = " TCP"
50+ source_address_prefix = " *"
51+ source_port_range = " *"
52+ destination_port_range = " 22-22"
53+ destination_address_prefix = " *"
54+ }
55+
56+ security_rule {
57+ access = " Allow"
58+ direction = " Inbound"
59+ name = " AllowRDP"
60+ priority = 300
61+ protocol = " TCP"
62+ source_address_prefix = " *"
63+ source_port_range = " *"
64+ destination_port_range = " 3389-3389"
65+ destination_address_prefix = " *"
66+ }
67+ }
68+
69+ resource azurerm_network_watcher "network_watcher" {
70+ location = var. location
71+ name = " terragoat-network-watcher-${ var . environment } "
72+ resource_group_name = azurerm_resource_group. example . name
73+ }
74+
75+ resource azurerm_network_watcher_flow_log "flow_log" {
76+ enabled = false
77+ network_security_group_id = azurerm_network_security_group. bad_sg . id
78+ network_watcher_name = azurerm_network_watcher. network_watcher . name
79+ resource_group_name = azurerm_resource_group. example . name
80+ storage_account_id = azurerm_storage_account. example . id
81+ retention_policy {
82+ enabled = false
83+ days = 10
84+ }
85+ }
0 commit comments