@richkang/cdk-construct-network-firewall-textfile-rules
Version:
A simple AWS VPC Firewall with one stateless rule and one stateful rule to meet the AWS Config Network Firewall Conformance.
29 lines (28 loc) • 1.51 kB
TypeScript
import * as cdk from 'aws-cdk-lib';
import { CfnFirewall, CfnRuleGroup } from 'aws-cdk-lib/aws-networkfirewall';
import { Construct } from 'constructs';
export interface INetworkFirewallDistributedConstructProps {
readonly vpc: cdk.aws_ec2.IVpc;
readonly subnetList: Array<cdk.aws_ec2.ISubnet>;
}
export interface INetworkFirewall {
addStatelessRuleGroup(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
addStatefulRule(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
addStatefulRules(rules: Array<cdk.aws_networkfirewall.CfnRuleGroup>): INetworkFirewall;
buildFirewall(): CfnFirewall;
}
export declare class NetworkFirewallDistributedConstruct extends Construct implements INetworkFirewall {
private vpc;
private subnetList;
private statefulRuleGroups;
private statelessRulesGroups;
constructor(scope: Construct, id: string, props: INetworkFirewallDistributedConstructProps);
addStatelessRuleGroup(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
addStatefulRule(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
addStatefulRules(rules: Array<cdk.aws_networkfirewall.CfnRuleGroup>): INetworkFirewall;
buildFirewall(): CfnFirewall;
}
export declare class NetworkFirewallRulesBuilder {
static statefulRulesSourcePropertyFromFile(scope: Construct, filenameList: Array<string>): Array<CfnRuleGroup>;
static statelessRulesAllowedPorts(scope: Construct): cdk.aws_networkfirewall.CfnRuleGroup;
}