-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsecurity_group_backend.tf
129 lines (121 loc) · 3.39 KB
/
security_group_backend.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
resource "aws_security_group" "backend" {
description = "Backend security group for service ${var.service_name}"
name_prefix = "${var.service_name}-"
vpc_id = data.aws_subnet.selected.vpc_id
tags = merge(
local.default_module_tags,
{
Name : "${var.service_name} backend"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_ingress_rule" "backend_ssh_local" {
description = "SSH access from the service ${var.service_name} VPC"
security_group_id = aws_security_group.backend.id
from_port = 22
to_port = 22
ip_protocol = "tcp"
cidr_ipv4 = data.aws_vpc.service.cidr_block
tags = merge(
local.default_module_tags,
{
Name = "SSH local"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_ingress_rule" "backend_ssh_input" {
count = var.ssh_cidr_block != null ? 1 : 0
description = "SSH access from the user-specified CIDR range."
security_group_id = aws_security_group.backend.id
from_port = 22
to_port = 22
ip_protocol = "tcp"
cidr_ipv4 = var.ssh_cidr_block
tags = merge(
local.default_module_tags,
{
Name = "SSH additional"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_ingress_rule" "backend_user_traffic" {
description = "Any traffic from the Load Balancer"
security_group_id = aws_security_group.backend.id
ip_protocol = "-1"
referenced_security_group_id = aws_security_group.nlb.id
tags = merge(
local.default_module_tags,
{
Name = "Load balancer traffic"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_ingress_rule" "backend_healthcheck" {
# Add the rule only if the healthcheck port is different from the traffic port
count = var.nlb_healthcheck_port == var.target_group_port || var.nlb_healthcheck_port == "traffic-port" ? 0 : 1
description = "Health checks from the Load Balancer"
security_group_id = aws_security_group.backend.id
from_port = var.nlb_healthcheck_port
to_port = var.nlb_healthcheck_port
ip_protocol = "tcp"
cidr_ipv4 = data.aws_vpc.service.cidr_block
tags = merge(
local.default_module_tags,
{
Name = "healthcheck"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_ingress_rule" "backend_icmp" {
description = "Allow all ICMP traffic"
security_group_id = aws_security_group.backend.id
from_port = -1
to_port = -1
ip_protocol = "icmp"
cidr_ipv4 = "0.0.0.0/0"
tags = merge(
local.default_module_tags,
{
Name = "ICMP traffic"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}
resource "aws_vpc_security_group_egress_rule" "backend_outgoing" {
security_group_id = aws_security_group.backend.id
ip_protocol = "-1"
cidr_ipv4 = "0.0.0.0/0"
tags = merge(
local.default_module_tags,
{
Name = "outgoing traffic"
},
{
VantaContainsUserData : false
VantaContainsEPHI : false
}
)
}