Defined Type: aws_firewall::rule::ipset
- Defined in:
- manifests/rule/ipset.pp
Overview
Create an ipset-based rule allowing access to selected AWS services.
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 |
# File 'manifests/rule/ipset.pp', line 29
define aws_firewall::rule::ipset(
Variant[AWS_Firewall::IPSet::Name, AWS_Firewall::IPSet::Data] $ipset,
Enum['OUTPUT', 'FORWARD'] $chain,
Optional[IP::Address::V4] $source = undef,
Optional[AWS_Firewall::Auth::NameOrID] $uid = undef,
Optional[AWS_Firewall::Auth::NameOrID] $gid = undef,
Enum['accept', 'drop'] $action = 'accept',
) {
# We don't need a default case, thanks to typing.
# lint:ignore:case_without_default
case $ipset {
AWS_Firewall::IPSet::Data: {
create_resources(aws_firewall::ipset, $ipset)
$ipset_name = keys($ipset)[0]
}
AWS_Firewall::IPSet::Name: {
$ipset_name = $ipset
}
}
# lint:endignore
firewall { $title:
chain => $chain,
uid => $uid,
gid => $gid,
source => $source,
ipset => "${ipset_name} dst",
dport => 443,
proto => 'tcp',
state => 'NEW',
action => $action,
provider => 'iptables',
require => Aws_firewall::Ipset[$ipset_name],
}
}
|