Skip to content

Commit 35d91d2

Browse files
authored
Bastion SSH lockdown parameter added (#99)
added bastion sec group parameter
1 parent eee2c94 commit 35d91d2

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

environment_example.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ parameter_defaults:
3232
# Security group options
3333
control_plane_allowed_sources: <allowed cidr for inbound traffic to control plane default: 0.0.0.0/0 (any)>
3434
data_plane_allowed_sources: <allowed cidr for inbound traffic to data plane default : 0.0.0.0/0 (any)>
35+
bastion_allowed_sources: <list of allowed sources for inbound SSH to bastions. Defaults to 0.0.0.0/0>
3536
# Extra gateway options
3637
#deploy_extra_gateway: <whether to deploy an extra gateway e.g. VRF default: false>
3738
#extra_gateway_external_network: <external network extra gateway connects to>

security_groups.yaml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ parameters:
3131
type: comma_delimited_list
3232
description: ip addresses that inbound connectivity can come from
3333
default: [ "0.0.0.0/0" ]
34+
bastion_sources:
35+
type: comma_delimited_list
36+
description: ip addresses that inbound SSH connectivity can come from
3437

3538
resources:
3639
external_service_secgroup:
@@ -131,11 +134,15 @@ resources:
131134
properties:
132135
name: bastion_external_sg
133136
rules:
134-
- direction: ingress
135-
remote_ip_prefix: 0.0.0.0/0
136-
protocol: tcp
137-
port_range_min: 22
138-
port_range_max: 22
137+
repeat:
138+
for_each:
139+
<%sourceip%>: { get_param: bastion_sources }
140+
template:
141+
direction: ingress
142+
remote_ip_prefix: <%sourceip%>
143+
protocol: tcp
144+
port_range_min: 22
145+
port_range_max: 22
139146

140147
bastion_internal_ssh_secgroup:
141148
type: OS::Neutron::SecurityGroup

top-level-template.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ parameters:
121121
type: comma_delimited_list
122122
description: ip addresses that inbound connectivity can come from
123123
default: [ "0.0.0.0/0" ]
124+
bastion_allowed_sources:
125+
type: comma_delimited_list
126+
description: ip addresses that can SSH to bastions
127+
default: [ "0.0.0.0/0" ]
124128
network_config:
125129
type: json
126130
description: Network configuration for internal network
@@ -172,6 +176,7 @@ resources:
172176
data_plane_ports: "80,443"
173177
control_plane_sources: { get_param: control_plane_allowed_sources }
174178
data_plane_sources: { get_param: data_plane_allowed_sources }
179+
bastion_sources: { get_param: bastion_allowed_sources }
175180

176181
external_services_infra:
177182
type: OS::Heat::ResourceGroup

0 commit comments

Comments
 (0)