You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/fabric-net-firewall/README.md
+42-3Lines changed: 42 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,38 @@
1
-
# Google Cloud Simple VPC Firewall Creation
1
+
# Google Cloud VPC Firewall
2
2
3
-
This module allows creation of a minimal VPC firewall, supporting basic configurable rules for IP range-based intra-VPC and administrator ingress, and tag-based SSH, HTTP, and HTTPS ingress.
3
+
This module allows creation of a minimal VPC firewall, supporting basic configurable rules for IP range-based intra-VPC and administrator ingress, tag-based SSH/HTTP/HTTPS ingress, and custom rule definitions.
4
4
5
-
The HTTP and HTTPS rules use the same network tags network tags that are assigned to instances when flaggging the "Allow HTTP[S] traffic" checkbox in the Cloud Console. The SSH rule uses a generic `ssh` tag.
5
+
The HTTP and HTTPS rules use the same network tags that are assigned to instances when the "Allow HTTP[S] traffic" checkbox is flagged in the Cloud Console. The SSH rule uses a generic `ssh` tag.
6
6
7
7
All IP source ranges are configurable through variables, and are set by default to `0.0.0.0/0` for tag-based rules. Allowed protocols and/or ports for the intra-VPC rule are also configurable through a variable.
8
8
9
+
Custom rules are set through a map where keys are rule names, and values use this custom type:
10
+
11
+
```hcl
12
+
map(object({
13
+
description = string
14
+
direction = string # (INGRESS|EGRESS)
15
+
action = string # (allow|deny)
16
+
ranges = list(string) # list of IP CIDR ranges
17
+
sources = list(string) # tags or SAs (ignored for EGRESS)
18
+
targets = list(string) # tags or SAs
19
+
use_service_accounts = bool # use tags or SAs in sources/targets
20
+
rules = list(object({
21
+
protocol = string
22
+
ports = list(string)
23
+
}))
24
+
extra_attributes = map(string) # map, optional keys disabled or priority
25
+
}))
26
+
```
27
+
9
28
The resources created/managed by this module are:
10
29
11
30
- one optional ingress rule from internal CIDR ranges, only allowing ICMP by default
12
31
- one optional ingress rule from admin CIDR ranges, allowing all protocols on all ports
13
32
- one optional ingress rule for SSH on network tag `ssh`
14
33
- one optional ingress rule for HTTP on network tag `http-server`
15
34
- one optional ingress rule for HTTPS on network tag `https-server`
0 commit comments