-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathbbb-on-aws-securitygroups.template.yaml
233 lines (205 loc) · 6.6 KB
/
bbb-on-aws-securitygroups.template.yaml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
---
AWSTemplateFormatVersion: '2010-09-09'
Description: >
This Cloudformation Template deploys the Security Groups used by all stacks.
Disclaimer: Not for production use. Demo and testing purposes only.
Author: David Surey <suredavi@amazon.com>
Parameters:
BBBVPC:
Description: Reference for the VPC
Type: String
BBBECSInstanceType:
Description: Set the ECS Cluster Type to either EC2 based or Fargate based deployments
Type: String
BBBFrontendType:
Type: String
Default: Greenlight
AllowedValues:
- Greenlight
- External
Conditions:
BBBECSFargate: !Equals [!Ref BBBECSInstanceType, fargate]
BBBECSEC2: !Not [!Equals [!Ref BBBECSInstanceType, fargate]]
BBBGreenlight: !Equals [!Ref BBBFrontendType, Greenlight]
Resources:
BBBECSTaskSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: ECS Instance Security Group
VpcId: !Ref BBBVPC
BBBECSTaskSecurityGroupPorts:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: !Ref BBBECSTaskSecurityGroup
IpProtocol: tcp
FromPort: !If [ BBBECSFargate, 80, 32768]
ToPort: !If [ BBBECSFargate, 80, 60999]
SourceSecurityGroupId: !Ref BBBScaleliteELBSecurityGroup
BBBScaleliteELBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Scalelite Security Group
VpcId: !Ref BBBVPC
BBBScaleliteELBSecurityGroupPorts:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: !Ref BBBScaleliteELBSecurityGroup
IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: 0.0.0.0/0
BBBFrontendELBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: ALB Security Group
VpcId: !Ref BBBVPC
BBBECSSecurityGroupPublicports:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: tcp
FromPort: 443
ToPort: 443
GroupId: !Ref BBBFrontendELBSecurityGroup
BBBECSSecurityGroupPublicHTTP:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: tcp
FromPort: 80
ToPort: 80
GroupId: !Ref BBBFrontendELBSecurityGroup
BBBFrontendSecurityGroupALBports:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: !Ref BBBECSTaskSecurityGroup
IpProtocol: tcp
FromPort: !If [ BBBECSFargate, 3000, 32768]
ToPort: !If [ BBBECSFargate, 3000, 60999]
SourceSecurityGroupId: !Ref BBBFrontendELBSecurityGroup
BBBDBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId:
Ref: BBBVPC
GroupDescription: Security group for the Postgres DB
BBBDBSecurityGroupPorts:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: !Ref BBBECSTaskSecurityGroup
IpProtocol: tcp
FromPort: 5432
ToPort: 5432
GroupId: !Ref BBBDBSecurityGroup
BBBCACHEDBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId:
Ref: BBBVPC
GroupDescription: Security group for the Redis Cache
BBBCACHEDBSecurityGroupPorts:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: !Ref BBBECSTaskSecurityGroup
IpProtocol: tcp
FromPort: 6379
ToPort: 6379
GroupId: !Ref BBBCACHEDBSecurityGroup
BBBApplicationSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId:
Ref: BBBVPC
GroupDescription: Security group for the BigBlueButton Application Host
BBBApplicationSecurityGroupWebSSLPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: tcp
FromPort: 443
ToPort: 443
GroupId: !Ref BBBApplicationSecurityGroup
BBBApplicationSecurityGroupWebPlainPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: tcp
FromPort: 80
ToPort: 80
GroupId: !Ref BBBApplicationSecurityGroup
BBBApplicationSecurityGroupVCPorts:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: udp
FromPort: 16384
ToPort: 32768
GroupId: !Ref BBBApplicationSecurityGroup
BBBTurnSecurityGroupWebSSLUDPPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: udp
FromPort: 443
ToPort: 443
GroupId: !Ref BBBApplicationSecurityGroup
BBBTurnSecurityGroupWebPlainUDPPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: udp
FromPort: 3478
ToPort: 3478
GroupId: !Ref BBBApplicationSecurityGroup
BBBTurnSecurityGroupWebPlainTCPPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
CidrIp: 0.0.0.0/0
IpProtocol: tcp
FromPort: 3478
ToPort: 3478
GroupId: !Ref BBBApplicationSecurityGroup
BBBSharedStorageSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId:
Ref: BBBVPC
GroupDescription: Security group for the Shared Storage
BBBSharedStorageSecurityGroupApplicationPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: !Ref BBBApplicationSecurityGroup
IpProtocol: tcp
FromPort: 2049
ToPort: 2049
GroupId: !Ref BBBSharedStorageSecurityGroup
BBBSharedStorageSecurityGroupECSPort:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: !Ref BBBECSTaskSecurityGroup
IpProtocol: tcp
FromPort: 2049
ToPort: 2049
GroupId: !Ref BBBSharedStorageSecurityGroup
Outputs:
BBBECSTaskSecurityGroup:
Description: A reference to the created Security Group for ECS
Value: !Ref BBBECSTaskSecurityGroup
BBBFrontendELBSecurityGroup:
Description: A reference to the created Security Group for ELB
Value: !Ref BBBFrontendELBSecurityGroup
BBBScaleliteELBSecurityGroup:
Description: A reference to the created Security Group for the Scalelite Load Balancer
Value: !Ref BBBScaleliteELBSecurityGroup
BBBDBSecurityGroup:
Description: A reference to the created Security Group for the Database
Value: !Ref BBBDBSecurityGroup
BBBCACHEDBSecurityGroup:
Description: A reference to the created Security Group for the Redis Cache
Value: !Ref BBBCACHEDBSecurityGroup
BBBApplicationSecurityGroup:
Description: A reference to the created Security Group for the Public Ports of the Application
Value: !Ref BBBApplicationSecurityGroup
BBBSharedStorageSecurityGroup:
Description: A reference to the created Security Group for the SharedStorage
Value: !Ref BBBSharedStorageSecurityGroup