11# AWS Public Security Group
2- module "public_security_group" {
3- source = " ./resources"
4- vpc_id = var. vpc_id
5- cluster_prefix = var. cluster_prefix
6- cluster_environment = var. cluster_environment
7- sg_type = " public"
8- sg_description = " Allow connections from internet"
2+ # module "public_security_group" {
3+ # source = "./resources"
4+ # count = var.cluster_architecture == "1-tier" || var.cluster_architecture == "2-tier" || var.cluster_architecture == "3-tier" ? 1 : 0
5+ # vpc_id = var.vpc_id
6+ # cluster_prefix = var.cluster_prefix
7+ # cluster_environment = var.cluster_environment
8+ # sg_type = "public"
9+ # sg_description = "Allow connections from internet"
10+ # cluster_architecture = var.cluster_architecture
11+ # }
12+
13+ resource "aws_security_group" "public_security_group" {
14+ count = var. cluster_architecture == " 1-tier" || var. cluster_architecture == " 2-tier" || var. cluster_architecture == " 3-tier" ? 1 : 0
15+ name = " ${ var . cluster_prefix } -public"
16+ description = " Allow connections from internet"
17+ vpc_id = var. vpc_id
18+ revoke_rules_on_delete = true
19+
20+ egress {
21+ description = " Allow all outbound"
22+ from_port = 0
23+ to_port = 65535
24+ protocol = " -1"
25+ cidr_blocks = [" 0.0.0.0/0" ]
26+ }
27+
28+ ingress {
29+ description = " Allow http inbound public"
30+ from_port = 80
31+ to_port = 80
32+ protocol = " tcp"
33+ cidr_blocks = [" 0.0.0.0/0" ]
34+ }
35+
36+ ingress {
37+ description = " Allow https inbound public"
38+ from_port = 443
39+ to_port = 443
40+ protocol = " tcp"
41+ cidr_blocks = [" 0.0.0.0/0" ]
42+ }
43+
44+ tags = {
45+ Name = " ${ var . cluster_prefix } -public"
46+ Environment = var.cluster_environment
47+ Type = " public"
48+ }
949}
1050
1151# AWS Public Security Group Rules
12- resource "aws_security_group_rule" "allow_http_inbound_public" {
13- type = " ingress"
14- from_port = 80
15- to_port = 80
16- protocol = " tcp"
17- cidr_blocks = [" 0.0.0.0/0" ]
18- security_group_id = module . public_security_group . security_group_id
19- }
52+ # resource "aws_security_group_rule" "allow_http_inbound_public" {
53+ # type = "ingress"
54+ # from_port = 80
55+ # to_port = 80
56+ # protocol = "tcp"
57+ # cidr_blocks = ["0.0.0.0/0"]
58+ # security_group_id = aws_security_group .public_security_group.id
59+ # }
2060
21- resource "aws_security_group_rule" "allow_https_inbound_public" {
22- type = " ingress"
23- from_port = 443
24- to_port = 443
25- protocol = " tcp"
26- cidr_blocks = [" 0.0.0.0/0" ]
27- security_group_id = module . public_security_group . security_group_id
28- }
61+ # resource "aws_security_group_rule" "allow_https_inbound_public" {
62+ # type = "ingress"
63+ # from_port = 443
64+ # to_port = 443
65+ # protocol = "tcp"
66+ # cidr_blocks = ["0.0.0.0/0"]
67+ # security_group_id = aws_security_group .public_security_group.id
68+ # }
2969
3070# AWS Private Security Group
31- module "private_security_group" {
32- source = " ./resources"
33- vpc_id = var. vpc_id
34- cluster_prefix = var. cluster_prefix
35- cluster_environment = var. cluster_environment
36- sg_type = " private"
37- sg_description = " The private security group to allows inbound traffic from public group"
71+ # module "private_security_group" {
72+ # source = "./resources"
73+ # count = var.cluster_architecture == "2-tier" || var.cluster_architecture == "3-tier" ? 1 : 0
74+ # vpc_id = var.vpc_id
75+ # cluster_prefix = var.cluster_prefix
76+ # cluster_environment = var.cluster_environment
77+ # sg_type = "private"
78+ # sg_description = "The private security group to allows inbound traffic from public group"
79+ # cluster_architecture = var.cluster_architecture
80+ # }
81+
82+ resource "aws_security_group" "private_security_group" {
83+ count = var. cluster_architecture == " 2-tier" || var. cluster_architecture == " 3-tier" ? 1 : 0
84+ name = " ${ var . cluster_prefix } -private"
85+ description = " The private security group to allows inbound traffic from public group"
86+ vpc_id = var. vpc_id
87+ revoke_rules_on_delete = true
88+
89+ egress {
90+ from_port = 0
91+ to_port = 65535
92+ protocol = " -1"
93+ cidr_blocks = [" 0.0.0.0/0" ]
94+ }
95+
96+ tags = {
97+ Name = " ${ var . cluster_prefix } -private"
98+ Environment = var.cluster_environment
99+ Type = " private"
100+ }
38101}
39102
40103# AWS Private Security Group Rules
41104resource "aws_security_group_rule" "allow_inbound_private" {
105+ count = var. cluster_architecture == " 2-tier" || var. cluster_architecture == " 3-tier" ? 1 : 0
42106 type = " ingress"
43107 from_port = 0
44108 to_port = 65535
45109 protocol = " -1"
46- source_security_group_id = module . public_security_group . security_group_id
47- security_group_id = module . private_security_group . security_group_id
110+ source_security_group_id = aws_security_group . public_security_group [ 0 ] . id
111+ security_group_id = aws_security_group . private_security_group [ 0 ] . id
48112}
49113
50114# AWS Storage Security Group
51- module "storage_security_group" {
52- source = " ./resources"
53- vpc_id = var. vpc_id
54- cluster_prefix = var. cluster_prefix
55- cluster_environment = var. cluster_environment
56- sg_type = " storage"
57- sg_description = " The storage security group to allows inbound traffic from private group"
115+ # module "storage_security_group" {
116+ # source = "./resources"
117+ # count = var.cluster_architecture == "3-tier" ? 1 : 0
118+ # vpc_id = var.vpc_id
119+ # cluster_prefix = var.cluster_prefix
120+ # cluster_environment = var.cluster_environment
121+ # sg_type = "storage"
122+ # sg_description = "The storage security group to allows inbound traffic from private group"
123+ # cluster_architecture = var.cluster_architecture
124+ # }
125+
126+ resource "aws_security_group" "storage_security_group" {
127+ count = var. cluster_architecture == " 3-tier" ? 1 : 0
128+ name = " ${ var . cluster_prefix } -storage"
129+ description = " The storage security group to allows inbound traffic from private group"
130+ vpc_id = var. vpc_id
131+ revoke_rules_on_delete = true
132+
133+ egress {
134+ from_port = 0
135+ to_port = 65535
136+ protocol = " -1"
137+ cidr_blocks = [" 0.0.0.0/0" ]
138+ }
139+
140+ tags = {
141+ Name = " ${ var . cluster_prefix } -storage"
142+ Environment = var.cluster_environment
143+ Type = " storage"
144+ }
58145}
59146
60147# AWS Storage Security Group Rules
61148resource "aws_security_group_rule" "allow_inbound_storage" {
149+ count = var. cluster_architecture == " 3-tier" ? 1 : 0
62150 type = " ingress"
63151 from_port = 0
64152 to_port = 65535
65153 protocol = " -1"
66- source_security_group_id = module . private_security_group . security_group_id
67- security_group_id = module . storage_security_group . security_group_id
154+ source_security_group_id = aws_security_group . private_security_group [ 0 ] . id
155+ security_group_id = aws_security_group . storage_security_group [ 0 ] . id
68156}
0 commit comments