raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
96 lines (95 loc) • 4.87 kB
TypeScript
import * as cdk from 'aws-cdk-lib';
import { aws_networkfirewall as firewall } from 'aws-cdk-lib';
import * as constructs from 'constructs';
export declare enum StatelessActions {
PASS = "aws:pass",
DROP = "aws:drop",
STATEFUL = "aws:forward_to_sfe"
}
export declare enum StatefulDefaultActions {
DROP_STRICT = "aws:drop_strict",
DROP_ESTABLISHED = "aws:drop_established",
ALERT_STRICT = "aws:alert_strict",
ALERT_ESTABLISHED = "aws:alert_established"
}
export declare enum ManagedAwsFirewallRules {
ABUSED_LEGIT_MALWARE_DOMAINS_ACTION_ORDER = "AbusedLegitMalwareDomainsActionOrder",
ABUSED_LEGIT_BOTNET_COMMAND_AND_CONTROL_DOMAINS_ACTION_ORDER = "AbusedLegitBotNetCommandAndControlDomainsActionOrder",
MALWARE_DOMAINS_ACTION_ORDER = "MalwareDomainsActionOrder",
BOTNET_COMMAND_AND_CONTROL_DOMAINS_ACTION_ORDER = "BotNetCommandAndControlDomainsActionOrder",
THREAT_SIGNATURES_BOTNET_ACTION_ORDER = "ThreatSignaturesBotnetActionOrder",
THREAT_SIGNATURES_BOTNET_WEB_ACTION_ORDER = "ThreatSignaturesBotnetWebActionOrder",
THREAT_SIGNATURES_BOTNET_WINDOWS_ACTION_ODER = "ThreatSignaturesBotnetWindowsActionOrder",
THREAT_SIGNATURES_DOS_ACTION_ORDER = "ThreatSignaturesDoSActionOrder",
THREAT_SIGNATURES_EMERGING_EVENTS_ACTION_ORDER = "ThreatSignaturesEmergingEventsActionOrder",
THREAT_SIGNATURES_EXPLOITS_ACTION_ORDER = "ThreatSignaturesExploitsActionOrder",
THREAT_SIGNATURES_FUP_ACTION_ORDER = "ThreatSignaturesFUPActionOrder",
THREAT_SIGNATURES_IOC_ACTION_ORDER = "ThreatSignaturesIOCActionOrder",
THREAT_SIGNATURES_MALWARE_ACTION_ORDER = "ThreatSignaturesMalwareActionOrder",
THREAT_SIGNATURES_MALWARE_COIN_MINING_ACTION_ORDER = "ThreatSignaturesMalwareCoinminingActionOrder",
THREAT_SIGNATURES_MAWLARE_WEB_ACTION_ORDER = "ThreatSignaturesMalwareWebActionOrder",
THREAT_SIGNATURES_MALWARE_MOBILE_ACTION_ORDER = "ThreatSignaturesMalwareMobileActionOrder",
THREAT_SIGNATURES_PHISHING_ACTION_ORDER = "ThreatSignaturesPhishingActionOrder",
THREAT_SIGNATURES_SCANNERS_ACTION_ORDER = "ThreatSignaturesScannersActionOrder",
THREAT_SIGNATURES_SUSPECT_ACTION_ORDER = "ThreatSignaturesSuspectActionOrder",
THREAT_SIGNATURES_WEB_ATTACKS_ACTION_ORDER = "ThreatSignaturesWebAttacksActionOrder"
}
export interface AddStatefulRulesProps {
readonly awsManagedRules: ManagedAwsFirewallRules[];
}
export interface IFirewallPolicyProperty {
statefulDefaultActions?: string[];
statefulEngineOptions?: firewall.CfnFirewallPolicy.StatefulEngineOptionsProperty | cdk.IResolvable;
statefulRuleGroupReferences?: Array<firewall.CfnFirewallPolicy.StatefulRuleGroupReferenceProperty>;
statelessCustomActions?: Array<firewall.CfnFirewallPolicy.CustomActionProperty | cdk.IResolvable> | cdk.IResolvable;
statelessDefaultActions: string[];
statelessFragmentDefaultActions: string[];
statelessRuleGroupReferences?: Array<firewall.CfnFirewallPolicy.StatelessRuleGroupReferenceProperty | cdk.IResolvable> | cdk.IResolvable;
}
export declare enum RuleGroupType {
STATEFUL = "STATEFUL",
STATELESS = "STATELESS"
}
export declare enum Protocol {
ICMP = 1,
TCP = 6,
UDP = 17
}
export declare enum WellKnownPorts {
SSH = 22,
HTTP = 80,
HTTPS = 443,
RDP = 3389
}
export interface StatelessRuleProps {
readonly actions: StatelessActions[];
readonly priority: number;
readonly destinationPorts?: undefined | (string | number | WellKnownPorts)[];
readonly destinations?: undefined | firewall.CfnRuleGroup.AddressProperty[];
readonly protocols?: undefined | Protocol[];
readonly sourcePorts?: undefined | (string | number)[];
readonly sources?: undefined | firewall.CfnRuleGroup.AddressProperty[];
readonly tcpFlags?: undefined | firewall.CfnRuleGroup.TCPFlagFieldProperty[];
}
export interface FirewallPolicyProps {
readonly policyName: string;
readonly statelessDefaultActions: StatelessActions[];
readonly statelessFragmentDefaultActions: StatelessActions[];
readonly statefulEngineOptions?: undefined | firewall.CfnFirewallPolicy.StatefulEngineOptionsProperty;
}
export interface AddStatelessRulesProps {
readonly groupName: string;
readonly rules: firewall.CfnRuleGroup.StatelessRuleProperty[];
readonly description: string;
}
export declare class FirewallPolicy extends constructs.Construct {
policy: IFirewallPolicyProperty;
readonly firewallpolicy: firewall.CfnFirewallPolicy;
constructor(scope: constructs.Construct, id: string, props: FirewallPolicyProps);
addManagedStatefulRules(props: AddStatefulRulesProps): void;
addStatelessRuleGroup(props: AddStatelessRulesProps): void;
}
export declare class StatelessRule {
readonly statelessRuleProperty: firewall.CfnRuleGroup.StatelessRuleProperty;
constructor(props: StatelessRuleProps);
}