Waf

AWS WAF with rate limiting, IP reputation, OWASP core rules and SQL injection protection in one line. Starts in count mode so nothing breaks.

Security · anvil:aws:Waf

Infrastructure

import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';

export default new App({
  run(ctx) {
    const waf = new anvil.aws.Waf('edge', {
      mode: 'block',
    });

    const site = new anvil.aws.SvelteKitSite('web', {
      path: 'web',
      waf: { arn: waf.arn },
    });

    ctx.export('url', site.url);
  },
});
import anvil_cloud as anvil

def infra(ctx: anvil.Context):
    waf = anvil.aws.Waf("edge",
        mode="block",
    )
    site = anvil.aws.SvelteKitSite("web",
        path="web",
        waf=anvil.aws.SiteWafArgs(arn=waf.arn),
    )
    ctx.export("url", site.url)

anvil.App(run=infra)
package main

import (
    "github.com/anvil-cloud/anvil/sdk/go/anvil"
    anvilaws "github.com/anvil-cloud/anvil/sdk/go/anvil/aws"
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
    anvil.Run(anvil.AppConfig{
        Run: func(ctx *anvil.Context) error {
            waf, err := anvilaws.NewWaf(ctx.PulumiCtx(), "edge", &anvilaws.WafArgs{
                Mode: anvilaws.WafModeBlock,
            })
            if err != nil {
                return err
            }

            site, err := anvilaws.NewSvelteKitSite(ctx.PulumiCtx(), "web", &anvilaws.SvelteKitSiteArgs{
                Path: pulumi.String("web"),
                Waf:  &anvilaws.SiteWafArgs{Arn: waf.Arn},
            })
            if err != nil {
                return err
            }

            ctx.Export("url", site.Url)
            return nil
        },
    })
}

← Back to Waf docs