Skip to main content

CDK constructs for defining an AWS web WAF connected to Amazon API Gateway REST API.

Project description

aws-wafwebacl-apigateway module

---

Stability: Experimental

All classes are under active development and subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_wafwebacl_apigateway
Typescript Logo Typescript @aws-solutions-constructs/aws-wafwebacl-apigateway
Java Logo Java software.amazon.awsconstructs.services.wafwebaclapigateway

Overview

This AWS Solutions Construct implements an AWS WAF web ACL connected to Amazon API Gateway REST API.

Here is a minimal deployable pattern definition in Typescript:

# Example automatically generated from non-compiling source. May contain errors.
import * as api from '@aws-cdk/aws-apigateway';
import * as lambda from "@aws-cdk/aws-lambda";
import { ApiGatewayToLambda } from '@aws-solutions-constructs/aws-apigateway-lambda';
import { WafwebaclToApiGatewayProps, WafwebaclToApiGateway } from "@aws-solutions-constructs/aws-wafwebacl-apigateway";

const apiGatewayToLambda = new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        handler: 'index.handler',
        code: lambda.Code.fromAsset(`lambda`)
    }
});

// This construct can only be attached to a configured API Gateway.
new WafwebaclToApiGateway(this, 'test-wafwebacl-apigateway', {
    existingApiGatewayInterface: apiGatewayToLambda.apiGateway
});

Initializer

new WafwebaclToApiGateway(scope: Construct, id: string, props: WafwebaclToApiGatewayProps);

Parameters

Pattern Construct Props

Name Type Description
existingApiGatewayInterface api.IRestApi The existing API Gateway instance that will be protected with the WAF web ACL. Note that a WAF web ACL can only be added to a configured API Gateway, so this construct only accepts an existing IRestApi and does not accept apiGatewayProps.
existingWebaclObj? waf.CfnWebACL Existing instance of a WAF web ACL, an error will occur if this and props is set.
webaclProps? waf.CfnWebACLProps Optional user-provided props to override the default props for the AWS WAF web ACL. To use a different collection of managed rule sets, specify a new rules property. Use our wrapManagedRuleSet(managedGroupName: string, vendorName: string, priority: number) function from core to create an array entry from each desired managed rule set.

Pattern Properties

Name Type Description
webacl waf.CfnWebACL Returns an instance of the waf.CfnWebACL created by the construct.
apiGateway api.IRestApi Returns an instance of the API Gateway REST API created by the pattern.

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

AWS WAF

  • Deploy a WAF web ACL with 7 AWS managed rule groups.

    • AWSManagedRulesBotControlRuleSet
    • AWSManagedRulesKnownBadInputsRuleSet
    • AWSManagedRulesCommonRuleSet
    • AWSManagedRulesAnonymousIpList
    • AWSManagedRulesAmazonIpReputationList
    • AWSManagedRulesAdminProtectionRuleSet
    • AWSManagedRulesSQLiRuleSet

    Note that the default rules can be replaced by specifying the rules property of CfnWebACLProps

  • Send metrics to Amazon CloudWatch

Amazon API Gateway

  • User provided API Gateway object is used as-is

Architecture

Architecture Diagram


© Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file aws-solutions-constructs.aws-wafwebacl-apigateway-1.134.0.tar.gz.

File metadata

File hashes

Hashes for aws-solutions-constructs.aws-wafwebacl-apigateway-1.134.0.tar.gz
Algorithm Hash digest
SHA256 e9cf8b0d5cdb88a39f4ac5689dcc821083233cb43388f9318eda082589affe1c
MD5 eb1e524c79a0e81db85610904f3e42a3
BLAKE2b-256 9fd330ec0f2ab62af78d4205d0c934ea96615352b8df20c14f6f60fbcab39ba0

See more details on using hashes here.

File details

Details for the file aws_solutions_constructs.aws_wafwebacl_apigateway-1.134.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_wafwebacl_apigateway-1.134.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dbd77660c662c31587a7d0759cdd6323e3f526c6f3c131eb2fa01aa0d698b4dd
MD5 ef3db4a39cd9d5ab985527af7bb9431f
BLAKE2b-256 1e62935aacceb0ad934bea6137912f01e72b3d24f10e0c605d64af3c373303d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page